[gnome-shell] Use gdk_screen_get_primary_monitor on gtk-2.20.1+



commit 410dfb2da307d5a30976fb596f1edb7784165a54
Author: Adel Gadllah <adel gadllah gmail com>
Date:   Wed May 12 09:35:32 2010 +0200

    Use gdk_screen_get_primary_monitor on gtk-2.20.1+
    
    Starting with gtk-2.20.0 there is a gdk_screen_get_primary_monitor,
    which supports querying the primary monitor from xrandr.
    
    But due to a sorting bug and lack of heuristics in the fallback path,
    it isn't really useable.
    
    Those bugs are fixed in gtk-2.20.1, so use it when building with
    gtk-2.20.1+.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=608647

 src/shell-global.c |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)
---
diff --git a/src/shell-global.c b/src/shell-global.c
index 2228ef4..59db203 100644
--- a/src/shell-global.c
+++ b/src/shell-global.c
@@ -1117,7 +1117,14 @@ shell_global_get_primary_monitor (ShellGlobal  *global)
 {
   GdkScreen *screen = gdk_screen_get_default ();
   GdkRectangle rect;
-  gint i, primary = 0;
+  gint primary = 0;
+
+  /* gdk_screen_get_primary_monitor is only present in gtk-2.20+
+   * and is in a useable state (supports heuristics and fallback modes)
+   * starting with 2.20.1
+   */
+#if !GTK_CHECK_VERSION (2, 20, 1)
+  gint i;
   gchar *output_name = NULL;
   gint num_monitors = gdk_screen_get_n_monitors (screen);
 
@@ -1136,6 +1143,9 @@ shell_global_get_primary_monitor (ShellGlobal  *global)
             }
         }
     }
+#else
+  primary = gdk_screen_get_primary_monitor (screen);
+#endif
 
   gdk_screen_get_monitor_geometry (screen, primary, &rect);
 



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