X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fscreen.h;h=a6a3995b30a2aa3fcbbaf33ca61e73092386144c;hb=HEAD;hp=750de946b87e794af8907d62bcfbac27f999a20a;hpb=50d662681160c309ea86268c0d05794b87b75593;p=chaz%2Fopenbox diff --git a/openbox/screen.h b/openbox/screen.h index 750de946..a6a3995b 100644 --- a/openbox/screen.h +++ b/openbox/screen.h @@ -75,8 +75,12 @@ void screen_remove_desktop(gboolean current); guint screen_find_desktop(guint from, ObDirection dir, gboolean wrap, gboolean linear); -/*! Show the desktop popup/notification */ -void screen_show_desktop_popup(guint d); +/*! Show the desktop popup/notification + @permanent If TRUE, the popup will stay on the screen until you call + screen_hide_desktop_popup(). Otherwise it will hide after a + delay. + */ +void screen_show_desktop_popup(guint d, gboolean permanent); /*! Hide it */ void screen_hide_desktop_popup(void); @@ -100,15 +104,17 @@ void screen_install_colormap(struct _ObClient *client, gboolean install); void screen_update_areas(void); -Rect *screen_physical_area_all_monitors(void); +const Rect* screen_physical_area_all_monitors(void); -Rect *screen_physical_area_monitor(guint head); +/*! Returns a Rect which is owned by the screen code and should not be freed */ +const Rect* screen_physical_area_monitor(guint head); /*! Returns the monitor which contains the active window, or the one containing the pointer otherwise. */ guint screen_monitor_active(void); -Rect *screen_physical_area_active(void); +/*! Returns a Rect which is owned by the screen code and should not be freed */ +const Rect* screen_physical_area_active(void); /*! Returns the primary monitor, as specified by the config. @fixed If TRUE, then this will always return a fixed monitor, otherwise @@ -120,8 +126,9 @@ guint screen_monitor_primary(gboolean fixed); @fixed If TRUE, then this will always use a fixed monitor as primary, otherwise it may change based on where focus is, or other heuristics. See screen_monitor_primary(). + @return A Rect which is owned by the screen code and should not be freed */ -Rect *screen_physical_area_primary(gboolean fixed); +const Rect* screen_physical_area_primary(gboolean fixed); /* doesn't include struts which the search area is already outside of when 'search' is not NULL */ @@ -131,6 +138,7 @@ Rect *screen_physical_area_primary(gboolean fixed); /*! @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) + @return A Rect allocated with g_slice_new() */ Rect* screen_area(guint desktop, guint head, Rect *search); @@ -140,7 +148,7 @@ gboolean screen_physical_area_monitor_contains(guint head, Rect *search); area of the part of the rectable on each monitor. The number of the monitor containing the greatest area of the rectangle is returned. */ -guint screen_find_monitor(Rect *search); +guint screen_find_monitor(const Rect *search); /*! Finds the monitor which contains the point @x, @y */ guint screen_find_monitor_point(guint x, guint y); @@ -156,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