diff --git a/gdk/Makefile.am b/gdk/Makefile.am index c3c8afa4bc..9dc9d6e564 100644 --- a/gdk/Makefile.am +++ b/gdk/Makefile.am @@ -269,11 +269,11 @@ gdkenumtypes.c: @REBUILD@ $(gdk_public_h_sources) gdkenumtypes.c.template # Marshaller generation # gdkmarshalers.h: @REBUILD@ gdkmarshalers.list - $(GLIB_GENMARSHAL) --prefix=gdk_marshal $(srcdir)/gdkmarshalers.list --header > gdkmarshalers-h.tmp \ + $(GLIB_GENMARSHAL) --prefix=_gdk_marshal $(srcdir)/gdkmarshalers.list --header > gdkmarshalers-h.tmp \ && mv gdkmarshalers-h.tmp gdkmarshalers.h \ || ( rm -f gdkmarshalers-h.tmp && exit 1) gdkmarshalers.c: @REBUILD@ gdkmarshalers.list - (echo "#include \"gdkalias.h\""; $(GLIB_GENMARSHAL) --prefix=gdk_marshal $(srcdir)/gdkmarshalers.list --body) > gdkmarshalers-c.tmp \ + (echo "#include \"gdkalias.h\""; $(GLIB_GENMARSHAL) --prefix=_gdk_marshal $(srcdir)/gdkmarshalers.list --body) > gdkmarshalers-c.tmp \ && mv gdkmarshalers-c.tmp gdkmarshalers.c \ || ( rm -f gdkmarshalers-c.tmp && exit 1 ) diff --git a/gdk/gdk.symbols b/gdk/gdk.symbols index 002013194a..8247f99773 100644 --- a/gdk/gdk.symbols +++ b/gdk/gdk.symbols @@ -730,6 +730,12 @@ gdk_offscreen_window_get_embedder #endif #endif +#if IN_HEADER(__GDK_INTERNALS_H__) +#if IN_FILE(__GDK_OFFSCREEN_WINDOW_C__) +gdk_offscreen_window_get_type G_GNUC_CONST +#endif +#endif + #if IN_HEADER(__GDK_WINDOW_H__) #if IN_FILE(__GDK_DND_X11_C__) gdk_window_register_dnd @@ -957,6 +963,7 @@ gdk_region_copy gdk_region_destroy gdk_region_empty gdk_region_equal +gdk_region_rect_equal gdk_region_get_clipbox gdk_region_get_rectangles gdk_region_intersect diff --git a/gdk/gdkdisplay.c b/gdk/gdkdisplay.c index 54f1bf667a..d599ba7338 100644 --- a/gdk/gdkdisplay.c +++ b/gdk/gdkdisplay.c @@ -120,7 +120,7 @@ gdk_display_class_init (GdkDisplayClass *class) G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GdkDisplayClass, closed), NULL, NULL, - gdk_marshal_VOID__BOOLEAN, + _gdk_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN); @@ -1070,34 +1070,6 @@ _gdk_display_pointer_grab_update (GdkDisplay *display, } } -/* Gets the toplevel for a window as used for events, - i.e. including offscreen parents */ -static GdkWindowObject * -get_event_parent (GdkWindowObject *window) -{ - if (window->window_type == GDK_WINDOW_OFFSCREEN) - return (GdkWindowObject *)gdk_offscreen_window_get_embedder ((GdkWindow *)window); - else - return window->parent; -} - -is_event_parent_of (GdkWindow *parent, - GdkWindow *child) -{ - GdkWindow *w; - - w = child; - while (w != NULL) - { - if (w == parent) - return TRUE; - - w = (GdkWindow *)get_event_parent ((GdkWindowObject *)w); - } - - return FALSE; -} - static GList * find_pointer_grab (GdkDisplay *display, gulong serial) @@ -1149,7 +1121,7 @@ _gdk_display_end_pointer_grab (GdkDisplay *display, grab = l->data; if (grab && (if_child == NULL || - is_event_parent_of (grab->window, if_child))) + _gdk_window_event_parent_of (grab->window, if_child))) { grab->serial_end = serial; grab->implicit_ungrab = implicit; diff --git a/gdk/gdkdisplaymanager.c b/gdk/gdkdisplaymanager.c index 72755a1b3f..0f9a094eb9 100644 --- a/gdk/gdkdisplaymanager.c +++ b/gdk/gdkdisplaymanager.c @@ -92,7 +92,7 @@ gdk_display_manager_class_init (GdkDisplayManagerClass *klass) G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GdkDisplayManagerClass, display_opened), NULL, NULL, - gdk_marshal_VOID__OBJECT, + _gdk_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GDK_TYPE_DISPLAY); diff --git a/gdk/gdkprivate.h b/gdk/gdkprivate.h index 031fe9ae7f..e35f30c2bf 100644 --- a/gdk/gdkprivate.h +++ b/gdk/gdkprivate.h @@ -43,6 +43,9 @@ void gdk_synthesize_window_state (GdkWindow *window, GdkWindowState unset_flags, GdkWindowState set_flags); +gboolean _gdk_window_event_parent_of (GdkWindow *parent, + GdkWindow *child); + /* Tests whether a pair of x,y may cause overflows when converted to Pango * units (multiplied by PANGO_SCALE). We don't allow the entire range, leave * some space for additions afterwards, to be safe... diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index f9b94cf114..ae42c2d002 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -313,8 +313,6 @@ static void do_move_region_bits_on_impl (GdkWindowObject *private, static void gdk_window_invalidate_in_parent (GdkWindowObject *private); static void move_native_children (GdkWindowObject *private); static void update_cursor (GdkDisplay *display); -static gboolean is_event_parent_of (GdkWindow *parent, - GdkWindow *child); static guint signals[LAST_SIGNAL] = { 0 }; @@ -465,7 +463,7 @@ gdk_window_class_init (GdkWindowObjectClass *klass) G_SIGNAL_RUN_LAST, 0, accumulate_get_window, NULL, - gdk_marshal_OBJECT__DOUBLE_DOUBLE, + _gdk_marshal_OBJECT__DOUBLE_DOUBLE, GDK_TYPE_WINDOW, 2, G_TYPE_DOUBLE, @@ -490,7 +488,7 @@ gdk_window_class_init (GdkWindowObjectClass *klass) G_SIGNAL_RUN_LAST, 0, NULL, NULL, - gdk_marshal_VOID__DOUBLE_DOUBLE_POINTER_POINTER, + _gdk_marshal_VOID__DOUBLE_DOUBLE_POINTER_POINTER, G_TYPE_NONE, 4, G_TYPE_DOUBLE, @@ -517,7 +515,7 @@ gdk_window_class_init (GdkWindowObjectClass *klass) G_SIGNAL_RUN_LAST, 0, NULL, NULL, - gdk_marshal_VOID__DOUBLE_DOUBLE_POINTER_POINTER, + _gdk_marshal_VOID__DOUBLE_DOUBLE_POINTER_POINTER, G_TYPE_NONE, 4, G_TYPE_DOUBLE, @@ -6919,7 +6917,7 @@ gdk_window_set_cursor (GdkWindow *window, if (cursor) private->cursor = gdk_cursor_ref (cursor); - if (is_event_parent_of (window, display->pointer_info.window_under_pointer)) + if (gdk_window_event_parent_of (window, display->pointer_info.window_under_pointer)) update_cursor (display); } } @@ -7906,9 +7904,9 @@ get_event_toplevel (GdkWindow *w) return GDK_WINDOW (private); } -static gboolean -is_event_parent_of (GdkWindow *parent, - GdkWindow *child) +gboolean +_gdk_window_event_parent_of (GdkWindow *parent, + GdkWindow *child) { GdkWindow *w; @@ -7942,7 +7940,7 @@ update_cursor (GdkDisplay *display) we've sent, as that would shortly be used anyway. */ grab = _gdk_display_get_last_pointer_grab (display); if (grab != NULL && - !is_event_parent_of (grab->window, (GdkWindow *)cursor_window)) + !gdk_window_event_parent_of (grab->window, (GdkWindow *)cursor_window)) cursor_window = (GdkWindowObject *)grab->window; /* Set all cursors on toplevel, otherwise its tricky to keep track of