[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