阻止 GTK 在被背景抓取时拖动 window

Stop GTK from dragging the window when grabbed by background

我在 Linux 上使用 GTK。 (GTK2 和 GTK3 都表现出这种行为。)

当您在某些免费 space 或菜单栏上抓住 window 时,window 本身会被拖动。

我将 window 用作一个巨大的 OpenGL canvas,这可以防止按下主鼠标按钮到达 window。双击和按下辅助按钮就可以了。

如何禁用或解决此行为?我也试过将 GtkDrawingArea 添加到 window,但它仍然被拖拽。

这是不可能的。 GTK 无条件地覆盖主鼠标按钮的功能。然而,简单地向 window 添加一个空的 GtkLabel 对我来说效果很好。

编辑: 最后我只用了一个 GtkDrawingArea,因为我也想要一个 scroll/menubar。这同样有效。

Gtk 会无条件抓取,但您可以完全控制特定 "click" 将执行的操作。 从任何 "button-xxx" 方法返回 True 将停止 Gtk 的进一步处理。参见 "Return type" here