From 4290ffdeebb590c2caff34162f7a5694e66aa629 Mon Sep 17 00:00:00 2001 From: JoeAllen <2494136784@qq.com> Date: Tue, 29 Sep 2026 17:00:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=A0=87=E9=A2=98=E6=A0=8F=E6=8B=96?= =?UTF-8?q?=E6=8B=BD=E5=8C=BA=E5=90=9E=E6=8E=89=E9=A1=B6=E6=A0=8F=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E7=9A=84=E9=BC=A0=E6=A0=87=E7=82=B9=E5=87=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gpui-component 把整条 TitleBar 标记为 WindowControlArea::Drag (WM_NCHITTEST 返回 HTCAPTION),其上的「新建连接/钉子/主题/菜单」 按钮点击全部被系统当作拖拽标题栏处理。 给右侧按钮簇加 occlude()(HitboxBehavior::BlockMouse):hit_test 收集到 BlockMouse hitbox 即截断,父级 Drag 区不再进入命中列表。 WM_NCHITTEST 探针验证按钮区由 HTCAPTION 变为 HTCLIENT。 --- gpui-app/src/ui/app.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gpui-app/src/ui/app.rs b/gpui-app/src/ui/app.rs index 174e484..38e640c 100644 --- a/gpui-app/src/ui/app.rs +++ b/gpui-app/src/ui/app.rs @@ -1043,6 +1043,11 @@ impl MqttXApp { .gap_1() .pr_2() .items_center() + // 整条标题栏被 gpui-component 标记为 WindowControlArea::Drag + // (WM_NCHITTEST 返回 HTCAPTION),点击会变成拖动窗口。 + // 按钮簇必须遮挡鼠标:hit_test 收集到 BlockMouse hitbox + // 即截断,父级 Drag 区不再命中,按钮才能收到点击。 + .occlude() .child( Button::new("new-connection") .icon(IconName::Plus)