+ GdkWindowState state;
+
+ guint guffaw_gravity : 1;
+ guint input_only : 1;
+ guint modal_hint : 1;
+ guint composited : 1;
+
+ guint destroyed : 2;
+
+ guint accept_focus : 1;
+ guint focus_on_map : 1;
+ guint shaped : 1;
+ guint support_multidevice : 1;
+
+ GdkEventMask event_mask;
+
+ guint update_and_descendants_freeze_count;
+
+ GdkWindowRedirect *redirect;
+
+ /* The GdkWindowObject that has the impl, ref:ed if another window.
+ * This ref is required to keep the wrapper of the impl window alive
+ * for as long as any GdkWindow references the impl. */
+ GdkWindowObject *impl_window;
+ int abs_x, abs_y; /* Absolute offset in impl */
+ gint width, height;
+ guint32 clip_tag;
+ cairo_region_t *clip_region; /* Clip region (wrt toplevel) in window coords */
+ cairo_region_t *clip_region_with_children; /* Clip region in window coords */
+ GdkCursor *cursor;
+ GHashTable *device_cursor;
+ gint8 toplevel_window_type;
+ guint synthesize_crossing_event_queued : 1;
+ guint effective_visibility : 2;
+ guint visibility : 2; /* The visibility wrt the toplevel (i.e. based on clip_region) */
+ guint native_visibility : 2; /* the native visibility of a impl windows */
+ guint viewable : 1; /* mapped and all parents mapped */
+ guint applied_shape : 1;
+
+ guint num_offscreen_children;
+ GdkWindowPaint *implicit_paint;
+ GdkInputWindow *input_window; /* only set for impl windows */
+
+ GList *outstanding_moves;
+
+ cairo_region_t *shape;
+ cairo_region_t *input_shape;
+
+ cairo_surface_t *cairo_surface;
+ guint outstanding_surfaces; /* only set on impl window */
+
+ GList *devices_inside;
+ GHashTable *device_events;
+};
+
+#define GDK_WINDOW_TYPE(d) (((GdkWindowObject*)(GDK_WINDOW (d)))->window_type)
+#define GDK_WINDOW_DESTROYED(d) (((GdkWindowObject*)(GDK_WINDOW (d)))->destroyed)