eufon

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit a43acd458f842cbe9b80c34edab82d72de1a26d5
parent bbb9d40c69098e1b19bc3691fa8d7f88f74d671e
Author: Daniel Barlow <dan@telent.net>
Date:   Sat, 23 Apr 2022 23:29:01 +0100

add output:set_mode, allows setting width/height of backend window

handy when running under wayland
probably not very useful on a hardware device

Diffstat:
Mkiwmi/kiwmi/luak/kiwmi_output.c | 27+++++++++++++++++++++++++++
1 file changed, 27 insertions(+), 0 deletions(-)

diff --git a/kiwmi/kiwmi/luak/kiwmi_output.c b/kiwmi/kiwmi/luak/kiwmi_output.c @@ -9,6 +9,7 @@ #include <lauxlib.h> #include <wlr/types/wlr_output.h> +#include <wlr/interfaces/wlr_output.h> #include <wlr/types/wlr_output_layout.h> #include <wlr/util/box.h> #include <wlr/util/log.h> @@ -60,6 +61,31 @@ l_kiwmi_output_move(lua_State *L) } static int +l_kiwmi_output_set_mode(lua_State *L) +{ + struct kiwmi_object *obj = + *(struct kiwmi_object **)luaL_checkudata(L, 1, "kiwmi_output"); + luaL_checktype(L, 2, LUA_TNUMBER); // w + luaL_checktype(L, 3, LUA_TNUMBER); // h + luaL_checktype(L, 4, LUA_TNUMBER); // refresh + + if (!obj->valid) { + return luaL_error(L, "kiwmi_output no longer valid"); + } + + struct kiwmi_output *output = obj->object; + // struct wlr_output_layout *output_layout = output->desktop->output_layout; + + int w = lua_tonumber(L, 2); + int h = lua_tonumber(L, 3); + int refresh = lua_tonumber(L, 4); + + wlr_output_update_custom_mode(output->wlr_output, w, h, refresh); + + return 0; +} + +static int l_kiwmi_output_name(lua_State *L) { struct kiwmi_object *obj = @@ -170,6 +196,7 @@ static const luaL_Reg kiwmi_output_methods[] = { {"pos", l_kiwmi_output_pos}, {"redraw", l_kiwmi_output_redraw}, {"size", l_kiwmi_output_size}, + {"set_mode", l_kiwmi_output_set_mode}, {"usable_area", l_kiwmi_output_usable_area}, {NULL, NULL}, };