From e563da2b3b565ff428cc56cea9024dfb13830771 Mon Sep 17 00:00:00 2001 From: Hibryda Date: Wed, 25 Mar 2026 16:12:15 +0100 Subject: [PATCH] fix(electrobun): re-enable CSS resize handles + GTK button-press only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Motion handler crashes in Bun's JSCallback FFI bridge — disabled. CSS handles provide cursor feedback. GTK button-press-event handles actual resize via begin_resize_drag with real event timestamp. Bundler issue resolved: syntax error in /* */ comment was preventing Electrobun's bundler from compiling gtk-resize.ts. --- ui-electrobun/src/bun/gtk-resize.ts | 8 +++----- ui-electrobun/src/mainview/App.svelte | 6 +++++- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ui-electrobun/src/bun/gtk-resize.ts b/ui-electrobun/src/bun/gtk-resize.ts index 42e5e33..581aee7 100644 --- a/ui-electrobun/src/bun/gtk-resize.ts +++ b/ui-electrobun/src/bun/gtk-resize.ts @@ -76,8 +76,8 @@ export function installNativeResize(windowPtr: number | bigint) { // Add event masks lib.symbols.gtk_widget_add_events(windowPtr as any, (1<<2) | (1<<8) | (1<<5)); - // Motion handler disabled — isolating button-press resize first - // TODO: re-enable cursor change on hover once resize works + // Motion handler skipped — cursor feedback provided by CSS resize handles instead. + // The FFI motion callback causes crashes in Bun's JSCallback bridge. // Button press — initiate resize if in border zone buttonCb = new JSCallback( @@ -111,9 +111,7 @@ export function installNativeResize(windowPtr: number | bigint) { const sigBP = Buffer.from("button-press-event\0"); lib.symbols.g_signal_connect_data(windowPtr as any, ptr(sigBP) as any, buttonCb.ptr as any, null, null, 0); - // Motion handler disabled for now — isolating button-press resize - // const sigMN = Buffer.from("motion-notify-event\0"); - // lib.symbols.g_signal_connect_data(windowPtr as any, ptr(sigMN) as any, motionCb.ptr as any, null, null, 0); + // Motion signal NOT connected — cursor feedback via CSS handles instead console.log("[gtk-resize] Native resize handlers installed (border=" + BORDER + "px)"); } diff --git a/ui-electrobun/src/mainview/App.svelte b/ui-electrobun/src/mainview/App.svelte index bb2f19b..440971e 100644 --- a/ui-electrobun/src/mainview/App.svelte +++ b/ui-electrobun/src/mainview/App.svelte @@ -322,7 +322,11 @@ onClose={() => setNotifDrawerOpen(false)} /> - + +
+
+
+