]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkdnd.c
texthandles: Keep state internally to avoid X overhead
[~andy/gtk] / gtk / gtkdnd.c
index 27a615ec43658d8306f3f7c01078b01d595df60a..4b974a5ee95c60a1939a5880ec649f5388aabf50 100644 (file)
@@ -360,7 +360,7 @@ gtk_drag_get_ipc_widget_for_screen (GdkScreen *screen)
       result = gtk_window_new (GTK_WINDOW_POPUP);
       gtk_window_set_screen (GTK_WINDOW (result), screen);
       gtk_window_resize (GTK_WINDOW (result), 1, 1);
-      gtk_window_move (GTK_WINDOW (result), -100, -100);
+      gtk_window_move (GTK_WINDOW (result), -99, -99);
       gtk_widget_show (result);
     }  
 
@@ -411,6 +411,18 @@ root_key_filter (GdkXEvent *xevent,
   if ((ev->type == KeyPress || ev->type == KeyRelease) &&
       ev->xkey.root == ev->xkey.window)
     ev->xkey.window = (Window)data;
+  else if (ev->type == GenericEvent)
+    {
+      XGenericEventCookie *cookie;
+      XIDeviceEvent *dev;
+
+      cookie = &ev->xcookie;
+      dev = (XIDeviceEvent *) cookie->data;
+
+      if (dev->evtype == XI_KeyPress ||
+          dev->evtype == XI_KeyRelease)
+        dev->event = (Window)data;
+    }
 
   return GDK_FILTER_CONTINUE;
 }