X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fscreen.h;h=0c1dc4692c578a7215dc3577ca381b3b298379a6;hb=d179d6428ae585a3b8a13479bfe4586e41de2ff9;hp=11915f11a78e4cc7d420a0bee1c79211af432365;hpb=ec328fc04fe6e8d8c3d1ee386d4964963eb2ee17;p=chaz%2Fopenbox diff --git a/openbox/screen.h b/openbox/screen.h index 11915f11..0c1dc469 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,11 +104,31 @@ void screen_install_colormap(struct _ObClient *client, gboolean install); void screen_update_areas(void); -Rect *screen_physical_area_all_monitors(void); +Rect const* screen_physical_area_all_monitors(void); + +/*! Returns a Rect which is owned by the screen code and should not be freed */ +Rect const* 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); + +/*! Returns a Rect which is owned by the screen code and should not be freed */ +Rect const* screen_physical_area_active(void); -Rect *screen_physical_area_monitor(guint head); +/*! Returns the primary monitor, as specified by the config. + @fixed If TRUE, then this will always return a fixed monitor, otherwise + it may change based on where focus is, or other heuristics. + */ +guint screen_monitor_primary(gboolean fixed); -Rect *screen_physical_area_active(void); +/*! Returns physical area for the primary monitor, as specified by the config. + @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 const *screen_physical_area_primary(gboolean fixed); /* doesn't include struts which the search area is already outside of when 'search' is not NULL */ @@ -114,6 +138,7 @@ Rect *screen_physical_area_active(void); /*! @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); @@ -125,6 +150,9 @@ gboolean screen_physical_area_monitor_contains(guint head, Rect *search); */ guint screen_find_monitor(Rect *search); +/*! Finds the monitor which contains the point @x, @y */ +guint screen_find_monitor_point(guint x, guint y); + /*! Sets the root cursor. This function decides which cursor to use, but you gotta call it to let it know it should change. */ void screen_set_root_cursor(void); @@ -133,4 +161,7 @@ void screen_set_root_cursor(void); is on this screen and FALSE if it is on another screen. */ gboolean screen_pointer_pos(gint *x, gint *y); +/*! Returns the monitor which contains the pointer device */ +guint screen_monitor_pointer(void); + #endif