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



commit 08fdf959361f1e66a9e2311053f87d9ffa2d48ad
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 0e00964..18f85c8 100644
--- a/plugins/wacom/gsd-wacom-osd-window.c
+++ b/plugins/wacom/gsd-wacom-osd-window.c
@@ -1628,20 +1628,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]