单击桌面使 GTK3 窗口消失

标签 c gtk gtk3

以下代码生成一个 GTK3 窗口,该窗口避开任务栏和寻呼​​机并设置类型提示 GDK_WINDOW_TYPE_HINT_DESKTOP。

执行代码时,单击我的桌面会使窗口消失。删除类型提示可以解决问题,但“显示桌面”操作也会使窗口永远消失。

这是 GTK3 的预期行为吗?如果是,如何获得一个永久窗口,避免任务栏和寻呼​​机,并且不会在“显示桌面”或单击桌面时消失?

#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;
}

最佳答案

我需要使用 GDK_WINDOW_TYPE_HINT_DOCK 来获得所需的行为。

即:

  • “显示桌面”不会使窗口消失。
  • 单击桌面不会使窗口消失。

关于单击桌面使 GTK3 窗口消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36942321/

相关文章:

C 编程 : EOF as a character

c++ - 对原子变量的非原子操作,反之亦然

c - gtk+ 关闭第二个窗口

c - gtkSourceView - 查询工具提示文本的使用

python - 如何将多个项目设置到 GtkSelection 中以进行 Treeview 拖放

c - 如何使用 c 中的套接字 api 一次性发送 .bmp 文件?

android - 使用 Android NDK 为 x86 编译 FFmpeg 3.1.1

c - 使用 GTK+ 的 C 语言 GUI,第一步

C GTK通过ESC关闭后无法再次打开Dialog

c - GTK+ 代码的这种简化是否正确?