]> Pileus Git - ~andy/gtk/blobdiff - gdk/gdkdisplay.c
win32: Fix build
[~andy/gtk] / gdk / gdkdisplay.c
index 63bb316f8e209e846be393ed08238b34ecac25d2..79d162b2a9df6261ac18b4612e2b8904ab82646a 100644 (file)
@@ -307,7 +307,11 @@ gdk_display_get_event (GdkDisplay *display)
 {
   g_return_val_if_fail (GDK_IS_DISPLAY (display), NULL);
 
+  if (display->event_pause_count > 0)
+    return NULL;
+
   GDK_DISPLAY_GET_CLASS (display)->queue_events (display);
+
   return _gdk_event_unqueue (display);
 }
 
@@ -970,8 +974,7 @@ switch_to_pointer_grab (GdkDisplay        *display,
            * synthesized when needed.
            */
           if (source_device &&
-              (gdk_device_get_source (source_device) == GDK_SOURCE_TOUCHSCREEN ||
-               gdk_device_get_source (source_device) == GDK_SOURCE_TOUCHPAD))
+              (gdk_device_get_source (source_device) == GDK_SOURCE_TOUCHSCREEN))
             info->need_touch_press_enter = TRUE;
 
           pointer_window = NULL;
@@ -986,7 +989,8 @@ switch_to_pointer_grab (GdkDisplay        *display,
                                                 NULL, NULL);
             }
 
-         if (pointer_window != last_grab->window)
+         if (!info->need_touch_press_enter &&
+             pointer_window != last_grab->window)
             synthesize_crossing_events (display, device, source_device,
                                         last_grab->window, pointer_window,
                                         GDK_CROSSING_UNGRAB, time, serial);
@@ -1603,7 +1607,7 @@ gdk_display_request_selection_notification (GdkDisplay *display,
 }
 
 /**
- * gdk_display_supports_clipboard_persistence
+ * gdk_display_supports_clipboard_persistence:
  * @display: a #GdkDisplay
  *
  * Returns whether the speicifed display supports clipboard
@@ -1624,7 +1628,7 @@ gdk_display_supports_clipboard_persistence (GdkDisplay *display)
 }
 
 /**
- * gdk_display_store_clipboard
+ * gdk_display_store_clipboard:
  * @display:          a #GdkDisplay
  * @clipboard_window: a #GdkWindow belonging to the clipboard owner
  * @time_:            a timestamp
@@ -2003,6 +2007,38 @@ gdk_display_notify_startup_complete (GdkDisplay  *display,
   GDK_DISPLAY_GET_CLASS (display)->notify_startup_complete (display, startup_id);
 }
 
+void
+_gdk_display_pause_events (GdkDisplay *display)
+{
+  display->event_pause_count++;
+}
+
+void
+_gdk_display_unpause_events (GdkDisplay *display)
+{
+  g_return_if_fail (display->event_pause_count > 0);
+
+  display->event_pause_count--;
+}
+
+void
+_gdk_display_flush_events (GdkDisplay *display)
+{
+  display->flushing_events = TRUE;
+
+  while (TRUE)
+    {
+      GdkEvent *event = _gdk_event_unqueue (display);
+      if (event == NULL)
+        break;
+
+      _gdk_event_emit (event);
+      gdk_event_free (event);
+    }
+
+  display->flushing_events = FALSE;
+}
+
 void
 _gdk_display_event_data_copy (GdkDisplay     *display,
                               const GdkEvent *event,