From 76ae19924d79326892f0b851db740d7207e4e158 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Thu, 14 Oct 2010 19:39:34 -0400 Subject: [PATCH] add function screen_compare_desktops() tells if two windows' current desktops are considered logically on the same desktop (taking "all desktops" into account) if a window is on "all desktops" it is considered to be on the current desktop only - windows can only be in one place at a time. --- openbox/screen.c | 9 +++++++++ openbox/screen.h | 8 ++++++++ 2 files changed, 17 insertions(+) diff --git a/openbox/screen.c b/openbox/screen.c index a94347ed..e0277ede 100644 --- a/openbox/screen.c +++ b/openbox/screen.c @@ -1753,3 +1753,12 @@ gboolean screen_pointer_pos(gint *x, gint *y) } return ret; } + +gboolean screen_compare_desktops(guint a, guint b) +{ + if (a == DESKTOP_ALL) + a = screen_desktop; + if (b == DESKTOP_ALL) + b = screen_desktop; + return a == b; +} diff --git a/openbox/screen.h b/openbox/screen.h index d15b352c..a6a3995b 100644 --- a/openbox/screen.h +++ b/openbox/screen.h @@ -164,4 +164,12 @@ gboolean screen_pointer_pos(gint *x, gint *y); /*! Returns the monitor which contains the pointer device */ guint screen_monitor_pointer(void); +/*! Compare the desktop for two windows to see if they are considered on the + same desktop. + Windows that are on "all desktops" are treated like they are only on the + current desktop, so they are only in one place at a time. + @return TRUE if they are on the same desktop, FALSE otherwise. +*/ +gboolean screen_compare_desktops(guint a, guint b); + #endif -- 2.44.0