Fix a reference to window_private->destroyed.
Sun Oct 3 18:13:44 1999 Owen Taylor <otaylor@redhat.com> * gtk/gtkwidget.c (gtk_reset_shapes_recurse): Fix a reference to window_private->destroyed. * gtk/gtkplug.c (gtk_plug_realize): Fix up a direct (ugly) setting of an internal GdkWindow member to use a _slightly_ cleaner macro. * gdk/gdkprivate.h: Split GdkWindowPrivate into GdkDrawablePrivate and GdkWindowPrivate. Add extra macros for accessing GDK_DRAWABLE_ components. * *.[ch]: Massive adjustments for the above, use the new macros in a lot of places.
This commit is contained in:
@ -286,11 +286,7 @@ graphics_expose_predicate (Display *display,
|
||||
XEvent *xevent,
|
||||
XPointer arg)
|
||||
{
|
||||
GdkWindowPrivate *private = (GdkWindowPrivate*) arg;
|
||||
|
||||
g_return_val_if_fail (private != NULL, False);
|
||||
|
||||
if (xevent->xany.window == private->xwindow &&
|
||||
if (xevent->xany.window == GDK_DRAWABLE_XID (arg) &&
|
||||
(xevent->xany.type == GraphicsExpose ||
|
||||
xevent->xany.type == NoExpose))
|
||||
return True;
|
||||
@ -1009,6 +1005,8 @@ gdk_event_translate (GdkEvent *event,
|
||||
}
|
||||
|
||||
window = gdk_window_lookup (xevent->xany.window);
|
||||
/* FIXME: window might be a GdkPixmap!!! */
|
||||
|
||||
window_private = (GdkWindowPrivate *) window;
|
||||
|
||||
if (window != NULL)
|
||||
@ -1017,7 +1015,7 @@ gdk_event_translate (GdkEvent *event,
|
||||
event->any.window = window;
|
||||
event->any.send_event = xevent->xany.send_event ? TRUE : FALSE;
|
||||
|
||||
if (window_private && window_private->destroyed)
|
||||
if (window_private && GDK_DRAWABLE_DESTROYED (window))
|
||||
{
|
||||
if (xevent->type != DestroyNotify)
|
||||
return FALSE;
|
||||
@ -1040,7 +1038,7 @@ gdk_event_translate (GdkEvent *event,
|
||||
|
||||
#ifdef USE_XIM
|
||||
if (window == NULL && gdk_xim_window && xevent->type == KeyPress &&
|
||||
!((GdkWindowPrivate *) gdk_xim_window)->destroyed)
|
||||
!GDK_DRAWABLE_DESTROYED (gdk_xim_window))
|
||||
{
|
||||
/*
|
||||
* If user presses a key in Preedit or Status window, keypress event
|
||||
@ -1340,7 +1338,7 @@ gdk_event_translate (GdkEvent *event,
|
||||
|
||||
/* Tell XInput stuff about it if appropriate */
|
||||
if (window_private &&
|
||||
!window_private->destroyed &&
|
||||
!GDK_DRAWABLE_DESTROYED (window) &&
|
||||
(window_private->extension_events != 0) &&
|
||||
gdk_input_vtable.enter_event)
|
||||
gdk_input_vtable.enter_event (&xevent->xcrossing, window);
|
||||
@ -1635,9 +1633,9 @@ gdk_event_translate (GdkEvent *event,
|
||||
event->any.type = GDK_DESTROY;
|
||||
event->any.window = window;
|
||||
|
||||
return_val = window_private && !window_private->destroyed;
|
||||
return_val = window_private && !GDK_DRAWABLE_DESTROYED (window);
|
||||
|
||||
if (window && window_private->xwindow != GDK_ROOT_WINDOW())
|
||||
if (window && GDK_DRAWABLE_XID (window) != GDK_ROOT_WINDOW())
|
||||
gdk_window_destroy_notify (window);
|
||||
break;
|
||||
|
||||
@ -1698,16 +1696,16 @@ gdk_event_translate (GdkEvent *event,
|
||||
xevent->xconfigure.override_redirect,
|
||||
!window
|
||||
? " (discarding)"
|
||||
: window_private->window_type == GDK_WINDOW_CHILD
|
||||
: GDK_DRAWABLE_TYPE (window) == GDK_WINDOW_CHILD
|
||||
? " (discarding child)"
|
||||
: ""));
|
||||
if (window &&
|
||||
!window_private->destroyed &&
|
||||
!GDK_DRAWABLE_DESTROYED (window) &&
|
||||
(window_private->extension_events != 0) &&
|
||||
gdk_input_vtable.configure_event)
|
||||
gdk_input_vtable.configure_event (&xevent->xconfigure, window);
|
||||
|
||||
if (!window || window_private->window_type == GDK_WINDOW_CHILD)
|
||||
if (!window || GDK_DRAWABLE_TYPE (window) == GDK_WINDOW_CHILD)
|
||||
return_val = FALSE;
|
||||
else
|
||||
{
|
||||
@ -1718,15 +1716,15 @@ gdk_event_translate (GdkEvent *event,
|
||||
|
||||
if (!xevent->xconfigure.x &&
|
||||
!xevent->xconfigure.y &&
|
||||
!window_private->destroyed)
|
||||
!GDK_DRAWABLE_DESTROYED (window))
|
||||
{
|
||||
gint tx = 0;
|
||||
gint ty = 0;
|
||||
Window child_window = 0;
|
||||
|
||||
gdk_error_trap_push ();
|
||||
if (XTranslateCoordinates (window_private->xdisplay,
|
||||
window_private->xwindow,
|
||||
if (XTranslateCoordinates (GDK_DRAWABLE_XDISPLAY (window),
|
||||
GDK_DRAWABLE_XID (window),
|
||||
gdk_root_window,
|
||||
0, 0,
|
||||
&tx, &ty,
|
||||
@ -1748,8 +1746,8 @@ gdk_event_translate (GdkEvent *event,
|
||||
}
|
||||
window_private->x = event->configure.x;
|
||||
window_private->y = event->configure.y;
|
||||
window_private->width = xevent->xconfigure.width;
|
||||
window_private->height = xevent->xconfigure.height;
|
||||
window_private->drawable.width = xevent->xconfigure.width;
|
||||
window_private->drawable.height = xevent->xconfigure.height;
|
||||
if (window_private->resize_count > 1)
|
||||
window_private->resize_count -= 1;
|
||||
}
|
||||
@ -1891,7 +1889,7 @@ gdk_event_translate (GdkEvent *event,
|
||||
/* something else - (e.g., a Xinput event) */
|
||||
|
||||
if (window_private &&
|
||||
!window_private->destroyed &&
|
||||
!window_private->drawable.destroyed &&
|
||||
(window_private->extension_events != 0) &&
|
||||
gdk_input_vtable.other_event)
|
||||
return_val = gdk_input_vtable.other_event(event, xevent, window);
|
||||
|
||||
Reference in New Issue
Block a user