summaryrefslogtreecommitdiff
path: root/applets/wncklet
diff options
context:
space:
mode:
authorBalló György <[email protected]>2026-10-24 03:26:51 +0200
committerLuke from DC <[email protected]>2026-10-24 16:40:08 +0000
commite33eab7048a97994e4288bc9644f2854ec127db2 (patch)
treeebaa34bcae5b84393d882026aaa53008e0e704f2 /applets/wncklet
parent58ac6c101bdf2e2975c0395723ad16e9c9764f5c (diff)
downloadmate-panel-master.tar.bz2
mate-panel-master.tar.xz
Don't use gtk_show_about_dialogHEADmaster
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.c10
-rw-r--r--applets/wncklet/window-list.c10
-rw-r--r--applets/wncklet/window-menu.c10
-rw-r--r--applets/wncklet/workspace-switcher.c10
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)