set x cursor type in lua

This commit is contained in:
Harrison DiAmbrosio 2026-01-07 21:43:49 -05:00
parent 42204bc4d2
commit 22e3553580
3 changed files with 23 additions and 3 deletions

View file

@ -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

View file

@ -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");
}
}
}

View file

@ -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;
}