]> Pileus Git - ~andy/gtk/commitdiff
Fix get_nearest_monitor
authorMatthias Clasen <matthiasc@src.gnome.org>
Tue, 24 Mar 2009 05:57:53 +0000 (05:57 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Tue, 24 Mar 2009 05:57:53 +0000 (05:57 +0000)
svn path=/trunk/; revision=22582

ChangeLog
gdk/gdkscreen.c

index 3ec2493cbf6cafe5fe1d805606cd0c16fd0cd488..3f58176e03cf506d0b0beda4ddcf8169e48a12b6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2009-03-24  Matthias Clasen  <mclasen@redhat.com>
+
+       Bug 576306 – gdkscreen.c: get_nearest_monitor too simple, gives wrong
+       result, mispositioning tooltips
+
+       * gdk/gdkscreen.c (get_nearest_monitor): Make this function work.
+       Problem reported by Dave Gilbert.
+
 2009-03-23  Hiroyuki Ikezoe  <poincare@ikezoe.net>
 
        Bug 576254 - <object> requires attribute "id"
index 468aaec8b7782710e6e8674b6de6a20fce053b7a..17c09f92365c5d18651fb7ec175ad7fd3e5f89e9 100644 (file)
@@ -213,7 +213,7 @@ get_nearest_monitor (GdkScreen *screen,
   gint num_monitors, i;
   gint nearest_dist = G_MAXINT;
   gint nearest_monitor = 0;
-  
+
   g_return_val_if_fail (GDK_IS_SCREEN (screen), -1);
 
   num_monitors = gdk_screen_get_n_monitors (screen);
@@ -221,7 +221,7 @@ get_nearest_monitor (GdkScreen *screen,
   for (i = 0; i < num_monitors; i++)
     {
       GdkRectangle monitor;
-      gint dist_x, dist_y;
+      gint dist_x, dist_y, dist;
       
       gdk_screen_get_monitor_geometry (screen, i, &monitor);
 
@@ -239,9 +239,10 @@ get_nearest_monitor (GdkScreen *screen,
       else
        dist_y = 0;
 
-      if (MIN (dist_x, dist_y) < nearest_dist)
+      dist = dist_x + dist_y;
+      if (dist < nearest_dist)
        {
-         nearest_dist = MIN (dist_x, dist_y);
+         nearest_dist = dist;
          nearest_monitor = i;
        }
     }