fix: store button click locations as signed values

This commit is contained in:
CJ van den Berg 2025-10-10 16:05:50 +02:00
parent e6cc1c35f9
commit 25a719382f
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9
22 changed files with 36 additions and 36 deletions

View file

@ -197,7 +197,7 @@ fn update_scrollbar(self: *Self) void {
scrollbar.set(@intCast(self.entries.items.len), @intCast(self.view_rows), @intCast(self.view_pos));
}
fn mouse_click_button4(menu: **MenuType, _: *ButtonType, _: Button.Cursor) void {
fn mouse_click_button4(menu: **MenuType, _: *ButtonType, _: Widget.Pos) void {
const self = &menu.*.opts.ctx.*;
self.selected = if (self.menu.selected) |sel_| sel_ + self.view_pos else self.selected;
if (self.view_pos < Menu.scroll_lines) {
@ -209,7 +209,7 @@ fn mouse_click_button4(menu: **MenuType, _: *ButtonType, _: Button.Cursor) void
self.update_scrollbar();
}
fn mouse_click_button5(menu: **MenuType, _: *ButtonType, _: Button.Cursor) void {
fn mouse_click_button5(menu: **MenuType, _: *ButtonType, _: Widget.Pos) void {
const self = &menu.*.opts.ctx.*;
self.selected = if (self.menu.selected) |sel_| sel_ + self.view_pos else self.selected;
if (self.view_pos < @max(self.entries.items.len, self.view_rows) - self.view_rows)
@ -228,7 +228,7 @@ fn update_selected(self: *Self) void {
}
}
fn handle_menu_action(menu: **MenuType, button: *ButtonType, _: Button.Cursor) void {
fn handle_menu_action(menu: **MenuType, button: *ButtonType, _: Widget.Pos) void {
const self = menu.*.opts.ctx;
var idx: usize = undefined;
var iter = button.opts.label;