首页 > 解决方案 > 带有“桌面”类型提示的可移动 GtkWindow

问题描述

我目前正在尝试在背景中制作一个窗口而不是图标。我的窗口没有装饰,但有一个自定义标题,所以它仍然可以拖动和调整大小。

此行为是使用以下代码实现的:

win.SetKeepBelow(true)

win.Connect("window-state-event", func(window *gtk.Window, event *gdk.Event) {
    windowEvent := gdk.EventWindowStateNewFromEvent(event)
    newWindowState := windowEvent.NewWindowState()

    if (newWindowState & gdk.WINDOW_STATE_ICONIFIED) == gdk.WINDOW_STATE_ICONIFIED {
        window.Present()
    }
})

但是,这种做法非常不可靠。

实现这种行为的正确方法似乎是:

win.SetTypeHint(gdk.WINDOW_TYPE_HINT_DESKTOP)

这种方法的问题是,窗口变得不可调整大小且不可移动。

那么,我怎样才能让窗口重新调整大小和可移动,或者至少改进我自己不可靠的方法?

标签: resizewindowgtkmovegtk3

解决方案


推荐阅读