[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