2016-04-29 15 views
0

次のコードは、タスクバーとページャーを回避し、タイプヒントGDK_WINDOW_TYPE_HINT_DESKTOPを設定するGTK3ウィンドウを生成します。デスクトップをクリックするとGTK3ウィンドウが消える

コードを実行すると、デスクトップをクリックするとウィンドウが消えます。タイプヒントを削除すると問題は解決しますが、「デスクトップ表示」操作でもウィンドウが永久に消えます。

これは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; 
} 

答えて

1

GDK_WINDOW_TYPE_HINT_DOCKを使用して、必要な動作をさせる必要がありました。

です:

  • "デスクトップの表示" は、ウィンドウが消えことはありません。
  • デスクトップをクリックしてもウィンドウが消えません。
0

https://developer.gnome.org/gdk3/stable/gdk3-Windows.html#GdkWindowTypeHint

GDK_WINDOW_TYPE_HINT_DESKTOP - デスクトップの背景のウィンドウを作成するために使用します。 (デスクトップの背景アプリケーションを作成している場合を除き、これを使用しないでください)

GDK_WINDOW_TYPE_HINT_SPLASHSCREEN - これは機能しますか?

GDK_WINDOW_TYPE_HINT_DIALOG - またはこれは多分ですか?

+0

質問に要求されたものはありませんでした –

関連する問題