diff options
| author | Balló György <[email protected]> | 2026-10-24 03:26:51 +0200 |
|---|---|---|
| committer | Luke from DC <[email protected]> | 2026-10-24 16:40:08 +0000 |
| commit | e33eab7048a97994e4288bc9644f2854ec127db2 (patch) | |
| tree | ebaa34bcae5b84393d882026aaa53008e0e704f2 /applets/wncklet | |
| parent | 58ac6c101bdf2e2975c0395723ad16e9c9764f5c (diff) | |
| download | mate-panel-master.tar.bz2 mate-panel-master.tar.xz | |
gtk_show_about_dialog() sets its values only on first invocation, and
cannot be used to display the about dialog with different content.
This fixes the problem that wrong content is shown, when the about dialog
is opened from multiple applets, and the applets are built as in-process.
Diffstat (limited to 'applets/wncklet')
| -rw-r--r-- | applets/wncklet/showdesktop.c | 10 | ||||
| -rw-r--r-- | applets/wncklet/window-list.c | 10 | ||||
| -rw-r--r-- | applets/wncklet/window-menu.c | 10 | ||||
| -rw-r--r-- | applets/wncklet/workspace-switcher.c | 10 |
4 files changed, 20 insertions, 20 deletions
diff --git a/applets/wncklet/showdesktop.c b/applets/wncklet/showdesktop.c index d393d6c3..fd66a203 100644 --- a/applets/wncklet/showdesktop.c +++ b/applets/wncklet/showdesktop.c @@ -574,11 +574,7 @@ static void display_about_dialog(GtkAction* action, ShowDesktopData* sdd) NULL }; - GtkWidget* toplevel = gtk_widget_get_toplevel (sdd->applet); - if (!GTK_IS_WINDOW (toplevel)) - toplevel = NULL; - - gtk_show_about_dialog(toplevel ? GTK_WINDOW(toplevel) : NULL, + GtkWidget *about = g_object_new (GTK_TYPE_ABOUT_DIALOG, "program-name", _("Show Desktop Button"), "title", _("About Show Desktop Button"), "authors", authors, @@ -593,6 +589,10 @@ static void display_about_dialog(GtkAction* action, ShowDesktopData* sdd) "version", VERSION, "website", PACKAGE_URL, NULL); + + g_signal_connect_swapped (about, "response", + G_CALLBACK (gtk_widget_destroy), about); + gtk_widget_show (about); } static void button_toggled_callback(GtkWidget* button, ShowDesktopData* sdd) diff --git a/applets/wncklet/window-list.c b/applets/wncklet/window-list.c index cc09c417..79e80ed2 100644 --- a/applets/wncklet/window-list.c +++ b/applets/wncklet/window-list.c @@ -1055,11 +1055,7 @@ static void display_about_dialog(GtkAction* action, TasklistData* tasklist) NULL }; - GtkWidget* toplevel = gtk_widget_get_toplevel (tasklist->applet); - if (!GTK_IS_WINDOW (toplevel)) - toplevel = NULL; - - gtk_show_about_dialog(toplevel ? GTK_WINDOW(toplevel) : NULL, + GtkWidget *about = g_object_new (GTK_TYPE_ABOUT_DIALOG, "program-name", _("Window List"), "title", _("About Window List"), "authors", authors, @@ -1074,6 +1070,10 @@ static void display_about_dialog(GtkAction* action, TasklistData* tasklist) "version", VERSION, "website", PACKAGE_URL, NULL); + + g_signal_connect_swapped (about, "response", + G_CALLBACK (gtk_widget_destroy), about); + gtk_widget_show (about); } static void group_windows_toggled(GtkToggleButton* button, TasklistData* tasklist) diff --git a/applets/wncklet/window-menu.c b/applets/wncklet/window-menu.c index 21d2117f..c75bcc27 100644 --- a/applets/wncklet/window-menu.c +++ b/applets/wncklet/window-menu.c @@ -87,11 +87,7 @@ static void window_menu_about(GtkAction* action, WindowMenu* window_menu) NULL }; - GtkWidget* toplevel = gtk_widget_get_toplevel (window_menu->applet); - if (!GTK_IS_WINDOW (toplevel)) - toplevel = NULL; - - gtk_show_about_dialog(toplevel ? GTK_WINDOW(toplevel) : NULL, + GtkWidget *about = g_object_new (GTK_TYPE_ABOUT_DIALOG, "program-name", _("Window Selector"), "title", _("About Window Selector"), "authors", authors, @@ -108,6 +104,10 @@ static void window_menu_about(GtkAction* action, WindowMenu* window_menu) "version", VERSION, "website", PACKAGE_URL, NULL); + + g_signal_connect_swapped (about, "response", + G_CALLBACK (gtk_widget_destroy), about); + gtk_widget_show (about); } static const GtkActionEntry window_menu_actions[] = { diff --git a/applets/wncklet/workspace-switcher.c b/applets/wncklet/workspace-switcher.c index b4ae493d..caf59bfa 100644 --- a/applets/wncklet/workspace-switcher.c +++ b/applets/wncklet/workspace-switcher.c @@ -990,11 +990,7 @@ static void display_about_dialog(GtkAction* action, PagerData* pager) NULL }; - GtkWidget* toplevel = gtk_widget_get_toplevel (pager->applet); - if (!GTK_IS_WINDOW (toplevel)) - toplevel = NULL; - - gtk_show_about_dialog(toplevel ? GTK_WINDOW(toplevel) : NULL, + GtkWidget *about = g_object_new (GTK_TYPE_ABOUT_DIALOG, "program-name", _("Workspace Switcher"), "title", _("About Workspace Switcher"), "authors", authors, @@ -1009,6 +1005,10 @@ static void display_about_dialog(GtkAction* action, PagerData* pager) "version", VERSION, "website", PACKAGE_URL, NULL); + + g_signal_connect_swapped (about, "response", + G_CALLBACK (gtk_widget_destroy), about); + gtk_widget_show (about); } static void wrap_workspaces_toggled(GtkToggleButton* button, PagerData* pager) |
