void screen_update_areas();
-Rect *screen_physical_area();
+Rect *screen_physical_area_all_monitors();
Rect *screen_physical_area_monitor(guint head);
-Rect *screen_physical_area_monitor_active();
+Rect *screen_physical_area_active();
-Rect *screen_area(guint desktop, Rect *search);
+/* doesn't include struts which the search area is already outside of when
+ 'search' is not NULL */
+#define SCREEN_AREA_ALL_MONITORS ((unsigned)-1)
+#define SCREEN_AREA_ONE_MONITOR ((unsigned)-2)
-Rect *screen_area_monitor(guint desktop, guint head, Rect *search);
+/*! @param head is the number of the head or one of SCREEN_AREA_ALL_MONITORS,
+ SCREEN_AREA_ONE_MONITOR
+ @param search NULL or the whole monitor(s)
+ */
+Rect* screen_area(guint desktop, guint head, Rect *search);
+
+gboolean screen_physical_area_monitor_contains(guint head, Rect *search);
/*! Determines which physical monitor a rectangle is on by calculating the
area of the part of the rectable on each monitor. The number of the