summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Kareh <[email protected]>2025-09-04 11:14:18 -0400
committerVictor Kareh <[email protected]>2025-09-04 17:16:06 +0000
commitd0d0a9a99ce69ed2f636222ded96b2260ee0cad3 (patch)
treea248ad6e16463eebbb717b38f61ee351bc2a4c9e
parentbc73e87a7f1431ec7711b70a2fb6ae647af9a251 (diff)
downloadmate-notification-daemon-d0d0a9a99ce69ed2f636222ded96b2260ee0cad3.tar.bz2
mate-notification-daemon-d0d0a9a99ce69ed2f636222ded96b2260ee0cad3.tar.xz
daemon: Bump libwnck to 43.0
Recent versions of libwnck introduced a WnckHandler object to be used as the main entry point into the library.
-rw-r--r--configure.ac2
-rw-r--r--src/daemon/daemon.c22
2 files changed, 17 insertions, 7 deletions
diff --git a/configure.ac b/configure.ac
index a2a2ee7..ea75f7b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -179,7 +179,7 @@ fi
dnl Check if we have the X development libraries
have_x11=no
if test "x$enable_x11" != "xno"; then
- x11_pkg_modules="libwnck-3.0, x11"
+ x11_pkg_modules="libwnck-3.0 >= 43.0, x11"
PKG_CHECK_MODULES(NOTIFICATION_DAEMON_X11, $x11_pkg_modules, [
have_x11=yes
AC_DEFINE(HAVE_X11, 1, [Have the X11 development library])
diff --git a/src/daemon/daemon.c b/src/daemon/daemon.c
index cc38e0f..814a5d8 100644
--- a/src/daemon/daemon.c
+++ b/src/daemon/daemon.c
@@ -1192,22 +1192,29 @@ static gboolean screensaver_active(GtkWidget* nw)
#ifdef HAVE_X11
static gboolean fullscreen_window_exists(GtkWidget* nw)
{
+ WnckHandle* wnck_handle;
WnckScreen* wnck_screen;
WnckWorkspace* wnck_workspace;
GList* l;
+ gboolean retval = FALSE;
g_return_val_if_fail (GDK_IS_X11_DISPLAY (gdk_display_get_default ()), FALSE);
- wnck_screen = wnck_screen_get (GDK_SCREEN_XNUMBER (gdk_window_get_screen (gtk_widget_get_window (nw))));
+ wnck_handle = wnck_handle_new (WNCK_CLIENT_TYPE_APPLICATION);
+
+ g_return_val_if_fail (WNCK_IS_HANDLE (wnck_handle), FALSE);
+
+ wnck_screen = wnck_handle_get_screen (wnck_handle, GDK_SCREEN_XNUMBER (gdk_window_get_screen (gtk_widget_get_window (nw))));
+
+ if (!wnck_screen)
+ goto cleanup;
wnck_screen_force_update (wnck_screen);
wnck_workspace = wnck_screen_get_active_workspace (wnck_screen);
if (!wnck_workspace)
- {
- return FALSE;
- }
+ goto cleanup;
for (l = wnck_screen_get_windows_stacked (wnck_screen); l != NULL; l = l->next)
{
@@ -1228,12 +1235,15 @@ static gboolean fullscreen_window_exists(GtkWidget* nw)
if (sw == w && sh == h)
{
- return TRUE;
+ retval = TRUE;
+ goto cleanup;
}
}
}
- return FALSE;
+cleanup:
+ g_clear_object (&wnck_handle);
+ return retval;
}
static Window get_window_parent(GdkDisplay* display, Window window, Window* root)