]> Pileus Git - ~andy/gtk/blobdiff - gdk/x11/gdkevents-x11.c
Merge branch 'master' into client-side-windows
[~andy/gtk] / gdk / x11 / gdkevents-x11.c
index 18a9b6d89141ddc1634e7f925f48bb48a18da00b..8d3141a8ee2b79b0b0c96942d24e7b9be8cb80fb 100644 (file)
@@ -902,9 +902,6 @@ gdk_event_translate (GdkDisplay *display,
   GdkToplevelX11 *toplevel = NULL;
   GdkDisplayX11 *display_x11 = GDK_DISPLAY_X11 (display);
   Window xwindow, filter_xwindow;
-  int exposure_x_offset = 0;
-  int exposure_y_offset = 0;
-  GdkWindow *unref_pixmap = NULL;
   
   return_val = FALSE;
 
@@ -932,31 +929,13 @@ gdk_event_translate (GdkDisplay *display,
    * are reported same as structure events
    */
   get_real_window (display, xevent, &xwindow, &filter_xwindow);
-
-  window = gdk_window_lookup_for_display (display, xwindow);
   
+  window = gdk_window_lookup_for_display (display, xwindow);
   /* We may receive events such as NoExpose/GraphicsExpose
    * and ShmCompletion for pixmaps
    */
   if (window && !GDK_IS_WINDOW (window))
-    {
-      GdkPixmapObject *pixmap = (GdkPixmapObject *)window;
-      if ((xevent->type == GraphicsExpose ||
-          xevent->type == NoExpose) &&
-         GDK_IS_PIXMAP (window) &&
-         pixmap->backing_for != NULL)
-       {
-         /* Unref the pixmap once for each finished set of GraphicsExposes */
-         if (xevent->type == NoExpose ||
-             xevent->xgraphicsexpose.count == 0)
-           unref_pixmap = window;
-         window = g_object_ref (pixmap->backing_for);
-         exposure_x_offset = pixmap->backing_x_offset;
-         exposure_y_offset = pixmap->backing_y_offset;
-       }
-      else
-       window = NULL;
-    }
+    window = NULL;
   window_private = (GdkWindowObject *) window;
 
   /* We always run the filters for the window where the event
@@ -1213,15 +1192,6 @@ gdk_event_translate (GdkDisplay *display,
 
       set_user_time (window, event);
 
-      /* We treat button presses as scroll wheel events, so don't expose
-       * this grab to gtk, as it will be immediately released. If we do
-       * expose it there is a short time before we receive the Release
-       * where a client-side generated pointer motion event could be handled
-       * as if the grab was effect.
-       */
-      if (!(xevent->xbutton.button == 4 || xevent->xbutton.button == 5 ||
-           xevent->xbutton.button == 6 || xevent->xbutton.button == 7))
-       _gdk_xgrab_check_button_event (window, xevent);
       break;
       
     case ButtonRelease:
@@ -1262,8 +1232,6 @@ gdk_event_translate (GdkDisplay *display,
       if (!set_screen_from_root (display, event, xevent->xbutton.root))
        return_val = FALSE;
       
-      _gdk_xgrab_check_button_event (window, xevent);
-      
       break;
       
     case MotionNotify:
@@ -1686,8 +1654,8 @@ gdk_event_translate (GdkDisplay *display,
             break;
           }
         
-       expose_rect.x = xevent->xgraphicsexpose.x + exposure_x_offset;
-       expose_rect.y = xevent->xgraphicsexpose.y + exposure_y_offset;
+       expose_rect.x = xevent->xgraphicsexpose.x;
+       expose_rect.y = xevent->xgraphicsexpose.y;
        expose_rect.width = xevent->xgraphicsexpose.width;
        expose_rect.height = xevent->xgraphicsexpose.height;
            
@@ -1897,7 +1865,7 @@ gdk_event_translate (GdkDisplay *display,
        }
 #endif
 
-    if (!window ||
+      if (!window ||
          xevent->xconfigure.event != xevent->xconfigure.window ||
           GDK_WINDOW_TYPE (window) == GDK_WINDOW_CHILD ||
           GDK_WINDOW_TYPE (window) == GDK_WINDOW_ROOT)
@@ -2036,7 +2004,10 @@ gdk_event_translate (GdkDisplay *display,
       event->selection.window = window;
       event->selection.selection = gdk_x11_xatom_to_atom_for_display (display, xevent->xselection.selection);
       event->selection.target = gdk_x11_xatom_to_atom_for_display (display, xevent->xselection.target);
-      event->selection.property = gdk_x11_xatom_to_atom_for_display (display, xevent->xselection.property);
+      if (xevent->xselection.property == None)
+        event->selection.property = GDK_NONE;
+      else
+        event->selection.property = gdk_x11_xatom_to_atom_for_display (display, xevent->xselection.property);
       event->selection.time = xevent->xselection.time;
       
       break;
@@ -2229,9 +2200,6 @@ gdk_event_translate (GdkDisplay *display,
   if (window)
     g_object_unref (window);
 
-  if (unref_pixmap)
-    g_object_unref (unref_pixmap);
-  
   return return_val;
 }