This is an automated email from the git hooks/post-receive script. a n d r e p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository xfce/libxfce4ui.
commit 0e121db6f9ccb4ceb2a53f6d63b01da8a8b16f90 Author: Andre Miranda <andre...@xfce.org> Date: Sun Apr 21 18:04:34 2019 -0300 Add xfce_gdk_screen_get_geometry --- docs/libxfce4ui-sections.txt | 1 + libxfce4ui/libxfce4ui.symbols | 1 + libxfce4ui/xfce-gdk-extensions.c | 46 ++++++++++++++++++++++++++++++++++++++++ libxfce4ui/xfce-gdk-extensions.h | 4 +++- 4 files changed, 51 insertions(+), 1 deletion(-) diff --git a/docs/libxfce4ui-sections.txt b/docs/libxfce4ui-sections.txt index f59e8b7..74871fb 100644 --- a/docs/libxfce4ui-sections.txt +++ b/docs/libxfce4ui-sections.txt @@ -23,6 +23,7 @@ xfce_spawn_command_line_on_screen <SECTION> <FILE>xfce-gdk-extensions</FILE> xfce_gdk_screen_get_active +xfce_gdk_screen_get_geometry </SECTION> <SECTION> diff --git a/libxfce4ui/libxfce4ui.symbols b/libxfce4ui/libxfce4ui.symbols index bd87d5f..df86081 100644 --- a/libxfce4ui/libxfce4ui.symbols +++ b/libxfce4ui/libxfce4ui.symbols @@ -73,6 +73,7 @@ xfce_message_dialog G_GNUC_NULL_TERMINATED #if IN_HEADER(__XFCE_GDK_EXTENSIONS_H__) #if IN_SOURCE(__XFCE_GDK_EXTENSIONS_C__) xfce_gdk_screen_get_active +xfce_gdk_screen_get_geometry #endif #endif diff --git a/libxfce4ui/xfce-gdk-extensions.c b/libxfce4ui/xfce-gdk-extensions.c index 69dc7bf..d60aa8d 100644 --- a/libxfce4ui/xfce-gdk-extensions.c +++ b/libxfce4ui/xfce-gdk-extensions.c @@ -98,6 +98,52 @@ xfce_gdk_screen_get_active (gint *monitor_return) } +/** + * xfce_gdk_screen_get_geometry: + * @geometry : (out): Address to store the monitor number to or %NULL. + * + * Sets the width and height of the default #GdkScreen into @geometry. + * This is a replacement for gdk_screen_width/gdk_screen_height. + **/ +void +xfce_gdk_screen_get_geometry (GdkRectangle *geometry) +{ +#if GTK_CHECK_VERSION (3, 22, 0) + gint x, y, w, h; + int num_monitors; + GdkDisplay *display; + GdkRectangle rect; + GdkMonitor *monitor; + + g_return_if_fail (geometry != NULL); + + display = gdk_display_get_default (); + num_monitors = gdk_display_get_n_monitors (display); + + x = y = G_MAXINT; + w = h = G_MININT; + + for (int i = 0; i < num_monitors; i++) + { + monitor = gdk_display_get_monitor (display, i); + gdk_monitor_get_geometry (monitor, &rect); + + x = MIN (x, rect.x); + y = MIN (y, rect.y); + w = MAX (w, rect.x + rect.width); + h = MAX (h, rect.y + rect.height); + } + + geometry->width = w - x; + geometry->height = h - y; +#else + g_return_if_fail (geometry != NULL); + + geometry->width = gdk_screen_width (); + geometry->height = gdk_screen_height (); +#endif +} + #define __XFCE_GDK_EXTENSIONS_C__ #include <libxfce4ui/libxfce4ui-aliasdef.c> diff --git a/libxfce4ui/xfce-gdk-extensions.h b/libxfce4ui/xfce-gdk-extensions.h index df336e4..07e4b1f 100644 --- a/libxfce4ui/xfce-gdk-extensions.h +++ b/libxfce4ui/xfce-gdk-extensions.h @@ -29,7 +29,9 @@ G_BEGIN_DECLS -GdkScreen *xfce_gdk_screen_get_active (gint *monitor_return); +GdkScreen *xfce_gdk_screen_get_active (gint *monitor_return); + +void xfce_gdk_screen_get_geometry (GdkRectangle *geometry); G_END_DECLS -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits