diff options
author | Matthias Clasen <matthiasc@src.gnome.org> | 2009-03-24 05:57:53 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2009-03-24 05:57:53 +0000 |
commit | 7dfb01937d119c17c160fff912f99fb53fbf8de3 (patch) | |
tree | ee699553dc815f502d38437a9656e4a9430806e8 | |
parent | e0045d59c7fb7bc6df3606b90f72ebc340700db4 (diff) | |
download | gtk+-7dfb01937d119c17c160fff912f99fb53fbf8de3.tar.gz |
Fix get_nearest_monitor
svn path=/trunk/; revision=22582
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | gdk/gdkscreen.c | 9 |
2 files changed, 13 insertions, 4 deletions
@@ -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" diff --git a/gdk/gdkscreen.c b/gdk/gdkscreen.c index 468aaec8b7..17c09f9236 100644 --- a/gdk/gdkscreen.c +++ b/gdk/gdkscreen.c @@ -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; } } |