单击桌面使 GTK3 window 消失
Clicking on desktop makes GTK3 window disappear
以下代码生成一个 GTK3 window,它避开任务栏和寻呼机并设置类型提示 GDK_WINDOW_TYPE_HINT_DESKTOP。
执行代码时,单击我的桌面会使 window 消失。删除类型提示可以解决问题,但是 "Show desktop" 操作也会使 window 永远消失。
这是 GTK3 的预期行为吗?如果是,我怎样才能获得一个持久的 window 来避免任务栏和寻呼机并且不会在 "show desktop" 或点击桌面时消失?
#include <gtk/gtk.h>
static void activate(GtkApplication *app) {
GtkWidget *window=gtk_application_window_new(app);
gtk_window_set_skip_taskbar_hint(GTK_WINDOW(window),1);
gtk_window_set_skip_pager_hint(GTK_WINDOW(window),1);
gtk_window_set_type_hint(GTK_WINDOW(window),GDK_WINDOW_TYPE_HINT_DESKTOP);
gtk_widget_show_all(window);
}
int main(int argc, char** argv) {
GtkApplication *app=gtk_application_new(NULL,G_APPLICATION_FLAGS_NONE);
g_signal_connect(app,"activate",G_CALLBACK(activate),NULL);
int status=g_application_run(G_APPLICATION(app),argc,argv);
g_object_unref(app);
return status;
}
https://developer.gnome.org/gdk3/stable/gdk3-Windows.html#GdkWindowTypeHint
GDK_WINDOW_TYPE_HINT_DESKTOP - 用于创建桌面背景 window。 (不要用这个,除非你做的是桌面后台应用)
GDK_WINDOW_TYPE_HINT_SPLASHSCREEN - 这对你有用吗?
GDK_WINDOW_TYPE_HINT_DIALOG - 或者可能是这个?
我需要使用 GDK_WINDOW_TYPE_HINT_DOCK 才能获得所需的行为。
即:
- "Show desktop" 不会使 window 消失。
- 点击桌面不会使 window 消失。
以下代码生成一个 GTK3 window,它避开任务栏和寻呼机并设置类型提示 GDK_WINDOW_TYPE_HINT_DESKTOP。
执行代码时,单击我的桌面会使 window 消失。删除类型提示可以解决问题,但是 "Show desktop" 操作也会使 window 永远消失。
这是 GTK3 的预期行为吗?如果是,我怎样才能获得一个持久的 window 来避免任务栏和寻呼机并且不会在 "show desktop" 或点击桌面时消失?
#include <gtk/gtk.h>
static void activate(GtkApplication *app) {
GtkWidget *window=gtk_application_window_new(app);
gtk_window_set_skip_taskbar_hint(GTK_WINDOW(window),1);
gtk_window_set_skip_pager_hint(GTK_WINDOW(window),1);
gtk_window_set_type_hint(GTK_WINDOW(window),GDK_WINDOW_TYPE_HINT_DESKTOP);
gtk_widget_show_all(window);
}
int main(int argc, char** argv) {
GtkApplication *app=gtk_application_new(NULL,G_APPLICATION_FLAGS_NONE);
g_signal_connect(app,"activate",G_CALLBACK(activate),NULL);
int status=g_application_run(G_APPLICATION(app),argc,argv);
g_object_unref(app);
return status;
}
https://developer.gnome.org/gdk3/stable/gdk3-Windows.html#GdkWindowTypeHint
GDK_WINDOW_TYPE_HINT_DESKTOP - 用于创建桌面背景 window。 (不要用这个,除非你做的是桌面后台应用)
GDK_WINDOW_TYPE_HINT_SPLASHSCREEN - 这对你有用吗?
GDK_WINDOW_TYPE_HINT_DIALOG - 或者可能是这个?
我需要使用 GDK_WINDOW_TYPE_HINT_DOCK 才能获得所需的行为。
即:
- "Show desktop" 不会使 window 消失。
- 点击桌面不会使 window 消失。