summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2010-10-14 19:39:34 -0400
committerDana Jansens <danakj@orodu.net>2011-01-24 14:19:22 -0500
commit76ae19924d79326892f0b851db740d7207e4e158 (patch)
treeb7d3c4c882612a27c9c89007714cad7fb52c3317
parent4ce98ecf02fc227c4ac286b4cc40e3a82fc8acff (diff)
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.
-rw-r--r--openbox/screen.c9
-rw-r--r--openbox/screen.h8
2 files changed, 17 insertions, 0 deletions
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