From 22e35535802d5efdcc862255196fa10db6d71fdd Mon Sep 17 00:00:00 2001 From: Harrison DiAmbrosio Date: Wed, 7 Jan 2026 21:43:49 -0500 Subject: [PATCH] set x cursor type in lua --- runtime/share/mezzaluna/master.lua | 15 +++++++++++++-- src/Cursor.zig | 3 ++- src/lua/Input.zig | 8 ++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/runtime/share/mezzaluna/master.lua b/runtime/share/mezzaluna/master.lua index 8cf9e20..168d233 100644 --- a/runtime/share/mezzaluna/master.lua +++ b/runtime/share/mezzaluna/master.lua @@ -275,17 +275,26 @@ local master = function() end mez.input.add_mousemap("alt", "BTN_LEFT", { + press = function() + mez.input.set_cursor_type("pointer") + end, drag = function(pos, drag) if drag.view ~= nil then mez.view.set_position(drag.view.id, pos.x - drag.view.offset.x, pos.y - drag.view.offset.y) end end, + release = function() + mez.input.set_cursor_type("default") + end, }, {}) mez.input.add_mousemap("alt", "BTN_RIGHT", { - press = function() return false end, + press = function() + mez.input.set_cursor_type("cross") + end, drag = function(pos, drag) if drag.view ~= nil then + -- mez.input.set_cursor_type("pointer") mez.view.set_size( drag.view.id, (pos.x - drag.start.x) + drag.view.offset.x + (drag.view.dims.width - drag.view.offset.x), @@ -293,7 +302,9 @@ local master = function() ) end end, - release = function() return false end + release = function() + mez.input.set_cursor_type("default") + end }) end diff --git a/src/Cursor.zig b/src/Cursor.zig index 29b6925..ef5ba74 100644 --- a/src/Cursor.zig +++ b/src/Cursor.zig @@ -78,7 +78,7 @@ pub fn deinit(self: *Cursor) void { } pub fn processCursorMotion(self: *Cursor, time_msec: u32) void { - self.wlr_cursor.setXcursor(self.x_cursor_manager, "default"); + // TODO: allow acces via lua var handled = false; @@ -129,6 +129,7 @@ pub fn processCursorMotion(self: *Cursor, time_msec: u32) void { } else { // This may not be necessary, remove if no bugs server.seat.wlr_seat.pointerClearFocus(); + self.wlr_cursor.setXcursor(self.x_cursor_manager, "default"); } } } diff --git a/src/lua/Input.zig b/src/lua/Input.zig index e296cfe..88ffb77 100644 --- a/src/lua/Input.zig +++ b/src/lua/Input.zig @@ -171,3 +171,11 @@ pub fn set_repeat_info(L: *zlua.Lua) i32 { return 0; } +/// ---Set the cursor type +/// ---@param string cursor name +pub fn set_cursor_type(L: *zlua.Lua) i32 { + const name = L.checkString(1); + server.cursor.wlr_cursor.setXcursor(server.cursor.x_cursor_manager, name); + + return 0; +}