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:
Owen Taylor
1999-10-03 22:12:41 +00:00
committed by Owen Taylor
parent 344e8000a2
commit f903bdf1a7
43 changed files with 1355 additions and 1500 deletions

View File

@ -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);