summaryrefslogtreecommitdiff
path: root/applets/wncklet/showdesktop.c
diff options
context:
space:
mode:
authorVictor Kareh <[email protected]>2025-08-08 13:08:41 -0400
committerVictor Kareh <[email protected]>2025-08-08 13:12:24 -0400
commit6d9ddd1048111d1341566f16b30df085ce85eb7d (patch)
tree43aa0e1a8d382ea39980154856bd617a0dd18ef0 /applets/wncklet/showdesktop.c
parent20cb96dfb5f4b79d2bac212edcde8cdda9f3283c (diff)
downloadmate-panel-bump-libwnck-version.tar.bz2
mate-panel-bump-libwnck-version.tar.xz
wncklet: Bump libwnck to 43.0bump-libwnck-version
Recent versions of libwnck introduced a WnckHandler object to be used as the main entry point into the library.
Diffstat (limited to 'applets/wncklet/showdesktop.c')
-rw-r--r--applets/wncklet/showdesktop.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/applets/wncklet/showdesktop.c b/applets/wncklet/showdesktop.c
index 190077f1..28a140b6 100644
--- a/applets/wncklet/showdesktop.c
+++ b/applets/wncklet/showdesktop.c
@@ -52,6 +52,9 @@ typedef struct {
GtkOrientation orient;
int size;
+#ifdef HAVE_X11
+ WnckHandle* wnck_handle;
+#endif
WnckScreen* wnck_screen;
guint showing_desktop: 1;
@@ -308,6 +311,10 @@ static void applet_destroyed(GtkWidget* applet, ShowDesktopData* sdd)
sdd->icon_theme = NULL;
}
+#ifdef HAVE_X11
+ g_clear_object(&sdd->wnck_handle);
+#endif
+
g_free (sdd);
}
@@ -371,7 +378,7 @@ static void show_desktop_applet_realized(MatePanelApplet* applet, gpointer data)
#ifdef HAVE_X11
if (GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
{
- sdd->wnck_screen = wnck_screen_get (gdk_x11_screen_get_screen_number (screen));
+ sdd->wnck_screen = wncklet_get_screen (sdd->wnck_handle, sdd->applet);
if (sdd->wnck_screen != NULL)
wncklet_connect_while_alive (sdd->wnck_screen,
"showing_desktop_changed",
@@ -426,6 +433,13 @@ gboolean show_desktop_applet_fill(MatePanelApplet* applet)
sdd->size = mate_panel_applet_get_size(MATE_PANEL_APPLET(sdd->applet));
+#ifdef HAVE_X11
+ if (GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
+ {
+ sdd->wnck_handle = wnck_handle_new(WNCK_CLIENT_TYPE_PAGER);
+ }
+#endif
+
g_signal_connect (sdd->applet, "realize",
G_CALLBACK (show_desktop_applet_realized),
sdd);