Index: app/display/gimpdisplayshell-callbacks.c
===================================================================
RCS file: /cvs/gnome/gimp/app/display/gimpdisplayshell-callbacks.c,v
retrieving revision 1.269.2.1
diff -u -r1.269.2.1 gimpdisplayshell-callbacks.c
--- app/display/gimpdisplayshell-callbacks.c	22 Feb 2005 21:42:05 -0000	1.269.2.1
+++ app/display/gimpdisplayshell-callbacks.c	23 Feb 2005 20:55:23 -0000
@@ -1068,7 +1068,18 @@
                                                               &device_coords);
 
                         if (device_coords.x == mevent->x &&
-                            device_coords.y == mevent->y)
+                            device_coords.y == mevent->y
+#ifdef G_OS_WIN32
+                            /* The Win32 backend for GDK just returns the
+                             * coordinates from the last motion/button event
+                             * for extended input devices, so if the event is
+                             * put back in the queue, this will keep scrolling
+                             * until the edge of the image is reached (bug
+                             * #167960) */
+                            && mevent->device == gdk_display_get_core_pointer (
+                              gdk_display_get_default ())
+#endif /* G_OS_WIN32 */
+                           )
                           {
                             /*  Put this event back on the queue
                              *  so it keeps scrolling
