From 8f4ec379ee60d32096846499cabf59dd7d991f71 Mon Sep 17 00:00:00 2001 From: Hibryda Date: Wed, 25 Mar 2026 18:06:06 +0100 Subject: [PATCH] fix(electrobun): clear min-size in configure handler during resize (prevents GTK bounce-back) --- agor-pty/native/agor_resize.c | 11 +++++++---- agor-pty/native/libagor-resize.so | Bin 17352 -> 17352 bytes 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/agor-pty/native/agor_resize.c b/agor-pty/native/agor_resize.c index 33ac41c..b63ae8f 100644 --- a/agor-pty/native/agor_resize.c +++ b/agor-pty/native/agor_resize.c @@ -175,11 +175,14 @@ static gboolean reenable_webview(gpointer data) */ static gboolean on_configure(GtkWidget *widget, GdkEventConfigure *event, gpointer data) { - fprintf(stderr, "[agor-resize] CONFIGURE size=%dx%d pos=%d,%d\n", - event->width, event->height, event->x, event->y); - - /* If resize is active, reset the re-enable timer */ if (resize_active) { + /* CRITICAL: During active resize, re-clear min-size on EVERY configure. + * GTK's layout cycle re-asserts the WebView's preferred size after each + * WM resize step, sending a conflicting ConfigureRequest that cancels the drag. */ + clear_min_size(GTK_WIDGET(stored_window), 0); + GdkGeometry geom = { .min_width = 400, .min_height = 300, .max_width = 32767, .max_height = 32767 }; + gtk_window_set_geometry_hints(stored_window, NULL, &geom, GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE); + if (reenable_timer_id) g_source_remove(reenable_timer_id); reenable_timer_id = g_timeout_add(500, reenable_webview, NULL); } diff --git a/agor-pty/native/libagor-resize.so b/agor-pty/native/libagor-resize.so index 659fbb857d5591d41f9c6d1e8ceb11c5bd29cab6..7f222df763479c4bdeacd5a5dd8334ee9fead64a 100755 GIT binary patch delta 1221 zcmYLJZAesE7{2G`v8I}|-J(ooY{qKsOQ|%1ppm+D`+$vL7NUtQ62qShO&`121U1#= zHl-Z;`cWwq7*bf5V3ftCb!s&FS}M07b|=HRYDV81Tx_|0x*}#jcKRf3g zuUyyQ{l^NbD@Ktcte*Z#j#(tL<;U%|@nw3q?Zw0u6f9Jr(J6<36Ov1fRVg1h2QLn4JVr zo>glYK4_Qp(2Fw^+nW&JTtu@tj&l+J z3+ECo75WLsJmYhYY20jC4uP$x4hl>M(I?`b1`*r6SW=2wNZ(FLdQ&&&)8H`L45ajE z=>#f4PKEv!QIOJ_0ZKvD$Ij>FW}p26ceGS-LhVxF44)d5PJ1}%SU~O22lx!pLytrf zN4g?YC(E0mQYn{-D^}+bj;3dFD@_rfw4i;pj1P4jk>gjF;@nL!@2cME2bEi7kY zaZdWXA;`qo1+=QTm4vl*;m-u0i>r&K;B(Qj$TN;~vDeFrU5R`rGQp<%SCMn9%3thC Uv(&MA|6-Sd>ypEI;eVxm1HL!&=Kufz delta 1165 zcmYLIZERCj7{2GSJ62e61PEK#+OAzELq-XMEf|emX4wG}$5#^)MhIaj3sFdLVH$BN zsmsY-lPzZ@DlsyM2_FH05(4`%HU}&H0}DSu6wC~u7gl9_6sI&EpL1_lPtv~Uyyy9N z?|aU<(m}3tkghLnF}q@pSa)y0){|!~db)32oH^pP7P-iel5c14IJ>{Qq3`bDYs25v zR=>8s`<<#mN4!aWYYJ)Pz1n6Hj+6YpS?wOm_D)dNI!;;Gpn7OrZ!0##uGwaw9y6?V zQe8{?6@}_b9s9eEjnnATs;OAB#Cd6NZ2wCLU3*xeD3O5=YIN{|Z)UD2Z&d-&uY}b%vq1$@sc4XkC$h-KWG16s`G@JD4d6un3 zds3eBaZ9OXq0!cP_^RtZ5Os>f$>)~LW ze2N@H546JnYhT7)E=T*BjI|ZjUN#xSMh0Nr)o+%Ap5O*h&Fj09|>^~ zA&Dq8e;ya&N5rq52$4bTM};c4%y>PU)veHA4e{uH7B zq{-pLqzOM8-{NztFCOvFeO?md-}&6+YknF3mHfWX?fn$TbwG0JW)yv)*4y*d{e@GZ z<3Y*;j~8iPQSMdmOvG1~*Vy=}sy5OYuUweOBM127#jlVqUQ!(>nSB3JNRB;Vs)}9d zjBlxKBzX3xm(0bpPcCs!C&&4NHv_g#mxb))Wx)n=mA3=~wn>!{-W#m7EyAJ7u_*p) H@OSk;P>|SV