.dotfiles/.config/ags/modules/.widgetutils/cursorhover.js
2026-01-18 21:08:16 -07:00

37 lines
1.2 KiB
JavaScript

// Cursor names reference: https://docs.gtk.org/gdk4/ctor.Cursor.new_from_name.html
const { Gdk } = imports.gi;
export function setupCursorHover(button, cursorName = 'pointer') { // Hand pointing cursor on hover
const display = Gdk.Display.get_default();
button.connect('enter-notify-event', () => {
const cursor = Gdk.Cursor.new_from_name(display, cursorName);
button.get_window().set_cursor(cursor);
});
button.connect('leave-notify-event', () => {
const cursor = Gdk.Cursor.new_from_name(display, 'default');
button.get_window().set_cursor(cursor);
});
}
export function setupCursorHoverAim(button) { // Crosshair cursor on hover
setupCursorHover(button, 'crosshair');
}
export function setupCursorHoverGrab(button) { // Hand ready to grab on hover
setupCursorHover(button, 'grab');
}
export function setupCursorHoverInfo(button) { // "?" mark cursor on hover
setupCursorHover(button, 'help');
}
export function setupCursorHoverHResize(button) { // Resize left right
setupCursorHover(button, 'ew-resize');
}
export function setupCursorHoverVResize(button) { // Resize up down
setupCursorHover(button, 'ns-resize');
}