feat(electrobun): native GTK drag/resize via gtk_window_begin_resize_drag

- gtk-window.ts: FFI wrapper calling libgtk-3.so.0 directly via bun:ffi
- begin_resize_drag: delegates resize to window manager (zero CPU, smooth)
- begin_move_drag: delegates move to window manager (replaces JS drag)
- Removed all JavaScript-based drag/resize logic (no mousemove/mouseup)
- RPC: window.beginResize + window.beginMove
- Resize handles: 4px edges + 8px corners with proper cursors
This commit is contained in:
Hibryda 2026-03-25 02:23:24 +01:00
parent 48d32f6f28
commit 9da9d96ebd
4 changed files with 149 additions and 72 deletions

View file

@ -343,6 +343,17 @@ export type PtyRPCRequests = {
response: { ok: boolean };
};
/** Begin native GTK resize drag — delegates to window manager. */
"window.beginResize": {
params: { edge: string; button: number; rootX: number; rootY: number };
response: { ok: boolean; error?: string };
};
/** Begin native GTK move drag — delegates to window manager. */
"window.beginMove": {
params: { button: number; rootX: number; rootY: number };
response: { ok: boolean };
};
// ── Keybindings RPC ────────────────────────────────────────────────────────
/** Return all persisted custom keybindings (overrides only). */