[Xfce4-commits] [apps/xfce4-terminal] 01/01: Calculate screen dimensions properly when having multiple monitors

noreply at xfce.org noreply at xfce.org
Thu Mar 2 19:41:09 CET 2017


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

f2404 pushed a commit to branch master
in repository apps/xfce4-terminal.

commit 0de18ba7acb80a4bc7408ae807e32f29eeafbce9
Author: Igor <f2404 at yandex.ru>
Date:   Thu Mar 2 21:41:04 2017 +0300

    Calculate screen dimensions properly when having multiple monitors
---
 terminal/terminal-app.c             | 15 ++--------
 terminal/terminal-window-dropdown.c | 60 +++++++++++++------------------------
 2 files changed, 23 insertions(+), 52 deletions(-)

diff --git a/terminal/terminal-app.c b/terminal/terminal-app.c
index b5a5ab2..0355ce8 100644
--- a/terminal/terminal-app.c
+++ b/terminal/terminal-app.c
@@ -693,11 +693,6 @@ terminal_app_open_window (TerminalApp        *app,
   gint             screen_width = 0, screen_height = 0;
   gint             window_width, window_height;
 #endif
-#if GTK_CHECK_VERSION (3, 22, 0) && defined (GDK_WINDOWING_X11)
-  GdkMonitor      *monitor;
-  GdkRectangle     monitor_geo;
-  gint             i, n;
-#endif
 
   terminal_return_if_fail (TERMINAL_IS_APP (app));
   terminal_return_if_fail (attr != NULL);
@@ -857,14 +852,8 @@ terminal_app_open_window (TerminalApp        *app,
             {
               screen = gtk_window_get_screen (GTK_WINDOW (window));
   #if GTK_CHECK_VERSION (3, 22, 0)
-              n = gdk_display_get_n_monitors (gdk_screen_get_display (screen));
-              for (i = 0; i < n; ++i)
-                {
-                  monitor = gdk_display_get_monitor (gdk_screen_get_display (screen), i);
-                  gdk_monitor_get_geometry (monitor, &monitor_geo);
-                  screen_width += monitor_geo.width;
-                  screen_height += monitor_geo.height;
-                }
+              gdk_window_get_geometry (gdk_screen_get_root_window (screen), NULL, NULL,
+                                       &screen_width, &screen_height);
   #else
               screen_width = gdk_screen_get_width (screen);
               screen_height = gdk_screen_get_height (screen);
diff --git a/terminal/terminal-window-dropdown.c b/terminal/terminal-window-dropdown.c
index 25e279f..651ebd0 100644
--- a/terminal/terminal-window-dropdown.c
+++ b/terminal/terminal-window-dropdown.c
@@ -576,6 +576,23 @@ G_GNUC_END_IGNORE_DEPRECATIONS
 
 
 
+static void
+terminal_window_dropdown_get_monitor_geometry (GdkScreen    *screen,
+                                               gint          monitor_num,
+                                               GtkWidget    *widget,
+                                               GdkRectangle *geometry)
+{
+#if GTK_CHECK_VERSION (3, 22, 0)
+  GdkDisplay *display = gdk_screen_get_display (screen);
+  GdkMonitor *monitor = gdk_display_get_monitor_at_window (display, gtk_widget_get_window (widget));
+  gdk_monitor_get_geometry (monitor, geometry);
+#else
+  gdk_screen_get_monitor_geometry (screen, monitor_num, geometry);
+#endif
+}
+
+
+
 static gboolean
 terminal_window_dropdown_animate_down (gpointer data)
 {
@@ -587,14 +604,7 @@ terminal_window_dropdown_animate_down (gpointer data)
   gboolean                fullscreen;
 
   /* get window size */
-#if GTK_CHECK_VERSION (3, 22, 0)
-  GdkDisplay *display = gdk_screen_get_display (dropdown->screen);
-  GdkMonitor *monitor =
-      gdk_display_get_monitor_at_window (display, gtk_widget_get_window (GTK_WIDGET (data)));
-  gdk_monitor_get_geometry (monitor, &rect);
-#else
-  gdk_screen_get_monitor_geometry (dropdown->screen, dropdown->monitor_num, &rect);
-#endif
+  terminal_window_dropdown_get_monitor_geometry (dropdown->screen, dropdown->monitor_num, GTK_WIDGET (data), &rect);
 
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
   fullscreen = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (terminal_window_get_action (window, "fullscreen")));
@@ -646,14 +656,7 @@ terminal_window_dropdown_animate_up (gpointer data)
   gboolean                fullscreen;
 
   /* get window size */
-#if GTK_CHECK_VERSION (3, 22, 0)
-  GdkDisplay *display = gdk_screen_get_display (dropdown->screen);
-  GdkMonitor *monitor =
-      gdk_display_get_monitor_at_window (display, gtk_widget_get_window (GTK_WIDGET (data)));
-  gdk_monitor_get_geometry (monitor, &rect);
-#else
-  gdk_screen_get_monitor_geometry (dropdown->screen, dropdown->monitor_num, &rect);
-#endif
+  terminal_window_dropdown_get_monitor_geometry (dropdown->screen, dropdown->monitor_num, GTK_WIDGET (data), &rect);
 
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
   fullscreen = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (terminal_window_get_action (window, "fullscreen")));
@@ -743,10 +746,6 @@ terminal_window_dropdown_show (TerminalWindowDropdown *dropdown,
   gint               vbox_h;
   TerminalDirection  old_animation_dir = ANIMATION_DIR_NONE;
   gboolean           fullscreen;
-#if GTK_CHECK_VERSION (3, 22, 0)
-  GdkDisplay        *display;
-  GdkMonitor        *monitor;
-#endif
 
   visible = gdk_window_is_visible (gtk_widget_get_window (GTK_WIDGET (dropdown)));
 
@@ -778,13 +777,7 @@ terminal_window_dropdown_show (TerminalWindowDropdown *dropdown,
     }
 
   /* get the active monitor size */
-#if GTK_CHECK_VERSION (3, 22, 0)
-  display = gdk_screen_get_display (dropdown->screen);
-  monitor = gdk_display_get_monitor (display, dropdown->monitor_num);
-  gdk_monitor_get_geometry (monitor, &monitor_geo);
-#else
-  gdk_screen_get_monitor_geometry (dropdown->screen, dropdown->monitor_num, &monitor_geo);
-#endif
+  terminal_window_dropdown_get_monitor_geometry (dropdown->screen, dropdown->monitor_num, GTK_WIDGET (dropdown), &monitor_geo);
 
   /* move window to correct screen */
   gtk_window_set_screen (GTK_WINDOW (dropdown), dropdown->screen);
@@ -1049,21 +1042,10 @@ terminal_window_dropdown_get_size (TerminalWindowDropdown *dropdown,
   gint            xpad, ypad;
   glong           char_width, char_height;
   GtkRequisition  req;
-#if GTK_CHECK_VERSION (3, 22, 0)
-  GdkDisplay     *display;
-  GdkMonitor     *monitor;
-#endif
 
   /* get the active monitor size */
   gdkscreen = xfce_gdk_screen_get_active (&monitor_num);
-#if GTK_CHECK_VERSION (3, 22, 0)
-  display = gdk_screen_get_display (gdkscreen);
-  monitor = gdk_display_get_monitor_at_window (display,
-                                               gtk_widget_get_window (GTK_WIDGET (dropdown)));
-  gdk_monitor_get_geometry (monitor, &monitor_geo);
-#else
-  gdk_screen_get_monitor_geometry (gdkscreen, monitor_num, &monitor_geo);
-#endif
+  terminal_window_dropdown_get_monitor_geometry (gdkscreen, monitor_num, GTK_WIDGET (dropdown), &monitor_geo);
 
   /* get terminal size */
   terminal_screen_get_geometry (screen, &char_width, &char_height, &xpad, &ypad);

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


More information about the Xfce4-commits mailing list