[gnome-settings-daemon/gnome-3-12] wacom: Make OSD always appear on a single monitor



commit e8be1295d565aac3b2149f261d3e3bff592f7286
Author: Carlos Garnacho <carlosg gnome org>
Date:   Mon Jun 23 17:44:39 2014 +0200

    wacom: Make OSD always appear on a single monitor
    
    If the tablet has no monitor assigned, the button mapping OSD would cover
    the whole span of monitors, which looks somewhat broken on multimonitor
    (edit button in the middle of virtual space, svg image spread across both
    monitors, etc...).
    
    Change this behavior to always pick the primary monitor if no monitor is
    assigned to the device, this makes the OSD look less broken.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=732110

 plugins/wacom/gsd-wacom-osd-window.c |   18 +++++++-----------
 1 files changed, 7 insertions(+), 11 deletions(-)
---
diff --git a/plugins/wacom/gsd-wacom-osd-window.c b/plugins/wacom/gsd-wacom-osd-window.c
index 5311fac..7cc4d1b 100644
--- a/plugins/wacom/gsd-wacom-osd-window.c
+++ b/plugins/wacom/gsd-wacom-osd-window.c
@@ -1626,20 +1626,16 @@ gsd_wacom_osd_window_realized (GtkWidget *widget,
 
        /* Determine the monitor for that device and set appropriate fullscreen mode*/
        monitor = gsd_wacom_device_get_display_monitor (osd_window->priv->pad);
+
        if (monitor == GSD_WACOM_SET_ALL_MONITORS) {
-               /* Covers the entire screen */
-               osd_window->priv->screen_area.x = 0;
-               osd_window->priv->screen_area.y = 0;
-               osd_window->priv->screen_area.width = gdk_screen_get_width (screen);
-               osd_window->priv->screen_area.height = gdk_screen_get_height (screen);
-               gdk_screen_get_monitor_geometry (screen, 0, &osd_window->priv->monitor_area);
-               gdk_window_set_fullscreen_mode (gdk_window, GDK_FULLSCREEN_ON_ALL_MONITORS);
-       } else {
-               gdk_screen_get_monitor_geometry (screen, monitor, &osd_window->priv->screen_area);
-               osd_window->priv->monitor_area = osd_window->priv->screen_area;
-               gdk_window_set_fullscreen_mode (gdk_window, GDK_FULLSCREEN_ON_CURRENT_MONITOR);
+               /* Pick a monitor for the OSD to appear */
+               monitor = gdk_screen_get_primary_monitor (screen);
        }
 
+       gdk_screen_get_monitor_geometry (screen, monitor, &osd_window->priv->screen_area);
+       osd_window->priv->monitor_area = osd_window->priv->screen_area;
+       gdk_window_set_fullscreen_mode (gdk_window, GDK_FULLSCREEN_ON_CURRENT_MONITOR);
+
        gtk_window_set_default_size (GTK_WINDOW (osd_window),
                                     osd_window->priv->screen_area.width,
                                     osd_window->priv->screen_area.height);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]