[Xfce4-commits] [xfce/exo] 01/01: ExoIconView: Ensure popup search stays on screen for maximized windows

noreply at xfce.org noreply at xfce.org
Sat Jan 19 15:42:55 CET 2019


This is an automated email from the git hooks/post-receive script.

b   l   u   e   s   a   b   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/exo.

commit f8404bb974b66c72d4036913015bbca41e9c8c73
Author: Sean Davis <smd.seandavis at gmail.com>
Date:   Sat Jan 19 09:42:47 2019 -0500

    ExoIconView: Ensure popup search stays on screen for maximized windows
---
 exo/exo-icon-view.c | 31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/exo/exo-icon-view.c b/exo/exo-icon-view.c
index 2dc2c65..058d79e 100644
--- a/exo/exo-icon-view.c
+++ b/exo/exo-icon-view.c
@@ -9230,6 +9230,14 @@ exo_icon_view_search_position_func (ExoIconView *icon_view,
   gint           view_width, view_height;
   gint           view_x, view_y;
   gint           x, y;
+  GdkDisplay    *display;
+  GdkRectangle   monitor_dimensions;
+#if GTK_CHECK_VERSION (3, 22, 0)
+  GdkMonitor    *monitor;
+#else
+  GdkScreen     *screen;
+  gint           monitor_num;
+#endif
 
   /* make sure the search dialog is realized */
   gtk_widget_realize (search_dialog);
@@ -9261,6 +9269,29 @@ exo_icon_view_search_position_func (ExoIconView *icon_view,
   else
     y = view_y + view_height;
 
+  display = gdk_window_get_display (view_window);
+  if (display)
+    {
+#if GTK_CHECK_VERSION (3, 22, 0)
+      monitor = gdk_display_get_monitor_at_window (display, view_window);
+      if (monitor)
+        {
+          gdk_monitor_get_geometry (monitor, &monitor_dimensions);
+          if (y + requisition.height > monitor_dimensions.height)
+            y = monitor_dimensions.height - requisition.height;
+        }
+#else
+      screen = gdk_display_get_default_screen (display);
+      monitor_num = gdk_screen_get_monitor_at_window (screen, view_window);
+      if (monitor_num >= 0)
+        {
+          gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor_dimensions);
+          if (y + requisition.height > monitor_dimensions.height)
+            y = monitor_dimensions.height - requisition.height;
+        }
+#endif
+    }
+
   gtk_window_move (GTK_WINDOW (search_dialog), x, y);
 }
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list