diff options
author | Victor Kareh <[email protected]> | 2025-09-04 11:14:18 -0400 |
---|---|---|
committer | Victor Kareh <[email protected]> | 2025-09-04 17:16:06 +0000 |
commit | d0d0a9a99ce69ed2f636222ded96b2260ee0cad3 (patch) | |
tree | a248ad6e16463eebbb717b38f61ee351bc2a4c9e | |
parent | bc73e87a7f1431ec7711b70a2fb6ae647af9a251 (diff) | |
download | mate-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.ac | 2 | ||||
-rw-r--r-- | src/daemon/daemon.c | 22 |
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) |