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;
* 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_x_offset;
- }
- else
- window = NULL;
- }
+ window = NULL;
window_private = (GdkWindowObject *) window;
/* We always run the filters for the window where the event
if (/* Is key event */
(xevent->type == KeyPress || xevent->type == KeyRelease) &&
/* And we have a grab */
- display_x11->keyboard_xgrab_window != NULL &&
+ display->keyboard_grab.window != NULL &&
(
/* The window is not a descendant of the grabbed window */
- !is_parent_of ((GdkWindow *)display_x11->keyboard_xgrab_window, window) ||
+ !is_parent_of ((GdkWindow *)display->keyboard_grab.window, window) ||
/* Or owner event is false */
- !display_x11->keyboard_xgrab_owner_events
+ !display->keyboard_grab.owner_events
)
)
{
/* Report key event against grab window */
- window_private = display_x11->keyboard_xgrab_window;
- window = (GdkWindow *) window_private;
+ window = display->keyboard_grab.window;;
+ window_private = (GdkWindowObject *) window;
}
window_impl = GDK_WINDOW_IMPL_X11 (window_private->impl);
set_user_time (window, event);
- _gdk_xgrab_check_button_event (window, xevent);
break;
case ButtonRelease:
xevent->xbutton.button == 6 || xevent->xbutton.button ==7)
{
return_val = FALSE;
- goto release_out;
+ break;
}
event->button.type = GDK_BUTTON_RELEASE;
event->button.device = display->core_pointer;
if (!set_screen_from_root (display, event, xevent->xbutton.root))
- {
- return_val = FALSE;
- goto release_out;
- }
+ return_val = FALSE;
- release_out:
- _gdk_xgrab_check_button_event (window, xevent);
break;
case MotionNotify:
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;
}
#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)
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;
if (window)
g_object_unref (window);
- if (unref_pixmap)
- g_object_unref (unref_pixmap);
-
return return_val;
}
if (gdk_event_translate (display, event, &xevent, FALSE))
{
((GdkEventPrivate *)event)->flags &= ~GDK_EVENT_PENDING;
- _gdk_windowing_got_event (display, node, event);
+ _gdk_windowing_got_event (display, node, event, xevent.xany.serial);
}
else
{