diff --git a/demos/gtk-demo/application.c b/demos/gtk-demo/application.c index 740e64ef40..7ed8ef6e1d 100644 --- a/demos/gtk-demo/application.c +++ b/demos/gtk-demo/application.c @@ -477,7 +477,7 @@ surface_state_changed (GtkWidget *widget) DemoApplicationWindow *window = (DemoApplicationWindow *)widget; GdkSurfaceState new_state; - new_state = gdk_surface_get_state (gtk_widget_get_surface (widget)); + new_state = gdk_surface_get_state (gtk_native_get_surface (GTK_NATIVE (widget))); window->maximized = (new_state & GDK_SURFACE_STATE_MAXIMIZED) != 0; window->fullscreen = (new_state & GDK_SURFACE_STATE_FULLSCREEN) != 0; } @@ -487,14 +487,14 @@ demo_application_window_realize (GtkWidget *widget) { GTK_WIDGET_CLASS (demo_application_window_parent_class)->realize (widget); - g_signal_connect_swapped (gtk_widget_get_surface (widget), "notify::state", + g_signal_connect_swapped (gtk_native_get_surface (GTK_NATIVE (widget)), "notify::state", G_CALLBACK (surface_state_changed), widget); } static void demo_application_window_unrealize (GtkWidget *widget) { - g_signal_handlers_disconnect_by_func (gtk_widget_get_surface (widget), + g_signal_handlers_disconnect_by_func (gtk_native_get_surface (GTK_NATIVE (widget)), surface_state_changed, widget); GTK_WIDGET_CLASS (demo_application_window_parent_class)->unrealize (widget); diff --git a/demos/gtk-demo/changedisplay.c b/demos/gtk-demo/changedisplay.c index 1ef592b21f..3b8f894371 100644 --- a/demos/gtk-demo/changedisplay.c +++ b/demos/gtk-demo/changedisplay.c @@ -120,7 +120,7 @@ query_for_toplevel (GdkDisplay *display, device = gtk_get_current_event_device (); if (gdk_seat_grab (gdk_device_get_seat (device), - gtk_widget_get_surface (popup), + gtk_native_get_surface (GTK_NATIVE (popup)), GDK_SEAT_CAPABILITY_ALL_POINTING, FALSE, cursor, NULL, NULL, NULL) == GDK_GRAB_SUCCESS) { diff --git a/demos/gtk-demo/dnd.c b/demos/gtk-demo/dnd.c index e8c184cdcc..3e862e8175 100644 --- a/demos/gtk-demo/dnd.c +++ b/demos/gtk-demo/dnd.c @@ -299,7 +299,7 @@ pressed_cb (GtkGesture *gesture, rect.height = 0; gtk_menu_popup_at_rect (GTK_MENU (menu), - gtk_widget_get_surface (widget), + gtk_native_get_surface (gtk_widget_get_native (widget)), &rect, GDK_GRAVITY_NORTH_WEST, GDK_GRAVITY_NORTH_WEST, diff --git a/demos/node-editor/node-editor-window.c b/demos/node-editor/node-editor-window.c index ac34aa1719..21b985de46 100644 --- a/demos/node-editor/node-editor-window.c +++ b/demos/node-editor/node-editor-window.c @@ -547,7 +547,7 @@ node_editor_window_add_renderer (NodeEditorWindow *self, GdkSurface *surface; GdkPaintable *paintable; - surface = gtk_widget_get_surface (GTK_WIDGET (self)); + surface = gtk_native_get_surface (GTK_NATIVE (self)); g_assert (surface != NULL); if (renderer != NULL && !gsk_renderer_realize (renderer, surface, NULL)) diff --git a/demos/widget-factory/widget-factory.c b/demos/widget-factory/widget-factory.c index ad3b480ed4..f2878a0613 100644 --- a/demos/widget-factory/widget-factory.c +++ b/demos/widget-factory/widget-factory.c @@ -64,7 +64,7 @@ get_idle (gpointer data) GtkApplication *app = gtk_window_get_application (GTK_WINDOW (window)); gtk_widget_set_sensitive (window, TRUE); - gdk_surface_set_cursor (gtk_widget_get_surface (window), NULL); + gdk_surface_set_cursor (gtk_native_get_surface (GTK_NATIVE (window)), NULL); g_application_unmark_busy (G_APPLICATION (app)); return G_SOURCE_REMOVE; @@ -81,7 +81,7 @@ get_busy (GSimpleAction *action, g_application_mark_busy (G_APPLICATION (app)); cursor = gdk_cursor_new_from_name ("wait", NULL); - gdk_surface_set_cursor (gtk_widget_get_surface (window), cursor); + gdk_surface_set_cursor (gtk_native_get_surface (GTK_NATIVE (window)), cursor); g_object_unref (cursor); g_timeout_add (5000, get_idle, window); diff --git a/docs/tools/shooter.c b/docs/tools/shooter.c index 2269b3fddf..6bbaccf19a 100644 --- a/docs/tools/shooter.c +++ b/docs/tools/shooter.c @@ -235,7 +235,7 @@ shoot_one (WidgetInfo *info) gtk_main_quit (); } - window = gtk_widget_get_surface (info->window); + window = gtk_native_get_surface (GTK_NATIVE (info->window)); id = gdk_x11_surface_get_xid (window); if (window_is_csd (window)) decor = (info->include_decorations) ? DECOR_NONE : DECOR_WINDOW_FRAME; diff --git a/examples/drawing.c b/examples/drawing.c index 08f2872105..da3eeabe73 100644 --- a/examples/drawing.c +++ b/examples/drawing.c @@ -29,9 +29,9 @@ size_allocate_cb (GtkWidget *widget, surface = NULL; } - if (gtk_widget_get_surface (widget)) + if (gtk_native_get_surface (gtk_widget_get_native (widget))) { - surface = gdk_surface_create_similar_surface (gtk_widget_get_surface (widget), + surface = gdk_surface_create_similar_surface (gtk_native_get_surface (gtk_widget_get_native (widget)), CAIRO_CONTENT_COLOR, gtk_widget_get_width (widget), gtk_widget_get_height (widget)); diff --git a/gtk/a11y/gtktextcellaccessible.c b/gtk/a11y/gtktextcellaccessible.c index c35ba285b5..2d84b3064e 100644 --- a/gtk/a11y/gtktextcellaccessible.c +++ b/gtk/a11y/gtktextcellaccessible.c @@ -487,7 +487,7 @@ get_origins (GtkWidget *widget, { GdkSurface *surface; - surface = gtk_widget_get_surface (widget); + surface = gtk_native_get_surface (gtk_widget_get_native (widget)); gdk_surface_get_origin (surface, x_surface, y_surface); gdk_surface_get_origin (surface, x_toplevel, y_toplevel); diff --git a/gtk/a11y/gtktreeviewaccessible.c b/gtk/a11y/gtktreeviewaccessible.c index ac17d40860..1878c19cfc 100644 --- a/gtk/a11y/gtktreeviewaccessible.c +++ b/gtk/a11y/gtktreeviewaccessible.c @@ -1161,17 +1161,9 @@ gtk_tree_view_accessible_grab_cell_focus (GtkCellAccessibleParent *parent, toplevel = gtk_widget_get_toplevel (widget); if (gtk_widget_is_toplevel (toplevel)) { -#ifdef GDK_WINDOWING_X11 - if (GDK_IS_X11_DISPLAY (gtk_widget_get_display (toplevel))) - gtk_window_present_with_time (GTK_WINDOW (toplevel), - gdk_x11_get_server_time (gtk_widget_get_surface (widget))); - else -#endif - { - G_GNUC_BEGIN_IGNORE_DEPRECATIONS - gtk_window_present (GTK_WINDOW (toplevel)); - G_GNUC_END_IGNORE_DEPRECATIONS - } + G_GNUC_BEGIN_IGNORE_DEPRECATIONS + gtk_window_present (GTK_WINDOW (toplevel)); + G_GNUC_END_IGNORE_DEPRECATIONS } return TRUE; diff --git a/gtk/a11y/gtkwidgetaccessible.c b/gtk/a11y/gtkwidgetaccessible.c index 05e1376c6e..2957dfeff6 100644 --- a/gtk/a11y/gtkwidgetaccessible.c +++ b/gtk/a11y/gtkwidgetaccessible.c @@ -587,14 +587,9 @@ gtk_widget_accessible_grab_focus (AtkComponent *component) toplevel = gtk_widget_get_toplevel (widget); if (gtk_widget_is_toplevel (toplevel)) { -#ifdef GDK_WINDOWING_X11 - gtk_window_present_with_time (GTK_WINDOW (toplevel), - gdk_x11_get_server_time (gtk_widget_get_surface (widget))); -#else G_GNUC_BEGIN_IGNORE_DEPRECATIONS gtk_window_present (GTK_WINDOW (toplevel)); G_GNUC_END_IGNORE_DEPRECATIONS -#endif } return TRUE; diff --git a/gtk/a11y/gtkwindowaccessible.c b/gtk/a11y/gtkwindowaccessible.c index 268f5b0c60..284c132281 100644 --- a/gtk/a11y/gtkwindowaccessible.c +++ b/gtk/a11y/gtkwindowaccessible.c @@ -27,6 +27,7 @@ #include "gtklabel.h" #include "gtkwidgetprivate.h" #include "gtkwindowprivate.h" +#include "gtknative.h" /* atkcomponent.h */ @@ -243,7 +244,7 @@ gtk_window_accessible_ref_state_set (AtkObject *accessible) if (gtk_window_is_active (window)) atk_state_set_add_state (state_set, ATK_STATE_ACTIVE); - gdk_surface = gtk_widget_get_surface (widget); + gdk_surface = gtk_native_get_surface (GTK_NATIVE (window)); if (gdk_surface) { state = gdk_surface_get_state (gdk_surface); @@ -388,7 +389,7 @@ gtk_window_accessible_get_extents (AtkComponent *component, return; } - surface = gtk_widget_get_surface (widget); + surface = gtk_native_get_surface (GTK_NATIVE (widget)); if (surface == NULL) return; @@ -435,7 +436,7 @@ gtk_window_accessible_get_size (AtkComponent *component, return; } - surface = gtk_widget_get_surface (widget); + surface = gtk_native_get_surface (GTK_NATIVE (widget)); if (surface == NULL) return; diff --git a/gtk/gtkapplication-wayland.c b/gtk/gtkapplication-wayland.c index a5f48df251..34d85e31bb 100644 --- a/gtk/gtkapplication-wayland.c +++ b/gtk/gtkapplication-wayland.c @@ -21,6 +21,7 @@ #include "config.h" #include "gtkapplicationprivate.h" +#include "gtknative.h" #include @@ -44,7 +45,7 @@ gtk_application_impl_wayland_handle_window_realize (GtkApplicationImpl *impl, GdkSurface *gdk_surface; gchar *window_path; - gdk_surface = gtk_widget_get_surface (GTK_WIDGET (window)); + gdk_surface = gtk_native_get_surface (GTK_NATIVE (window)); if (!GDK_IS_WAYLAND_SURFACE (gdk_surface)) return; diff --git a/gtk/gtkapplication-x11.c b/gtk/gtkapplication-x11.c index 989e9c3380..933b160b25 100644 --- a/gtk/gtkapplication-x11.c +++ b/gtk/gtkapplication-x11.c @@ -21,6 +21,7 @@ #include "config.h" #include "gtkapplicationprivate.h" +#include "gtknative.h" #include @@ -42,7 +43,7 @@ gtk_application_impl_x11_handle_window_realize (GtkApplicationImpl *impl, GdkSurface *gdk_surface; gchar *window_path; - gdk_surface = gtk_widget_get_surface (GTK_WIDGET (window)); + gdk_surface = gtk_native_get_surface (GTK_NATIVE (window)); if (!GDK_IS_X11_SURFACE (gdk_surface)) return; @@ -65,7 +66,7 @@ gtk_application_impl_x11_get_window_system_id (GtkApplicationImplDBus *dbus, { GdkSurface *gdk_surface; - gdk_surface = gtk_widget_get_surface (GTK_WIDGET (window)); + gdk_surface = gtk_native_get_surface (GTK_NATIVE (window)); if (GDK_IS_X11_SURFACE (gdk_surface)) return g_variant_new_uint32 (GDK_SURFACE_XID (gdk_surface)); diff --git a/gtk/gtkcellrendereraccel.c b/gtk/gtkcellrendereraccel.c index e2c50df40d..4f0f1b2bf1 100644 --- a/gtk/gtkcellrendereraccel.c +++ b/gtk/gtkcellrendereraccel.c @@ -28,6 +28,7 @@ #include "gtktypebuiltins.h" #include "gtkprivate.h" #include "gtkeventcontrollerkey.h" +#include "gtknative.h" /** @@ -475,7 +476,7 @@ gtk_cell_renderer_accel_start_editing (GtkCellRenderer *cell, if (!is_editable) return NULL; - surface = gtk_widget_get_surface (widget); + surface = gtk_native_get_surface (gtk_widget_get_native (widget)); if (event) seat = gdk_event_get_seat (event); diff --git a/gtk/gtkdnd.c b/gtk/gtkdnd.c index 89d8f9625d..8b35cef978 100644 --- a/gtk/gtkdnd.c +++ b/gtk/gtkdnd.c @@ -38,6 +38,7 @@ #include "gtkwidgetprivate.h" #include "gtkwindowgroup.h" #include "gtkwindowprivate.h" +#include "gtknative.h" #include "gdk/gdkcontentformatsprivate.h" #include "gdk/gdktextureprivate.h" @@ -880,7 +881,7 @@ gtk_drag_begin_internal (GtkWidget *widget, int y) { GtkDragSourceInfo *info; - GtkRoot *root; + GtkNative *native; GdkDrag *drag; double px, py; int dx, dy; @@ -889,9 +890,9 @@ gtk_drag_begin_internal (GtkWidget *widget, if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD) device = gdk_device_get_associated_device (device); - root = gtk_widget_get_root (widget); - gtk_widget_translate_coordinates (widget, GTK_WIDGET (root), x, y, &x, &y); - gdk_surface_get_device_position (gtk_widget_get_surface (widget), + native = gtk_widget_get_native (widget); + gtk_widget_translate_coordinates (widget, GTK_WIDGET (native), x, y, &x, &y); + gdk_surface_get_device_position (gtk_native_get_surface (native), device, &px, &py, NULL); @@ -902,7 +903,7 @@ gtk_drag_begin_internal (GtkWidget *widget, content->widget = g_object_ref (widget); content->formats = gdk_content_formats_ref (target_list); - drag = gdk_drag_begin (gtk_widget_get_surface (GTK_WIDGET (root)), device, GDK_CONTENT_PROVIDER (content), actions, dx, dy); + drag = gdk_drag_begin (gtk_native_get_surface (native), device, GDK_CONTENT_PROVIDER (content), actions, dx, dy); if (drag == NULL) { g_object_unref (content); diff --git a/gtk/gtkdragdest.c b/gtk/gtkdragdest.c index 5ce9f1e441..da2205e09d 100644 --- a/gtk/gtkdragdest.c +++ b/gtk/gtkdragdest.c @@ -29,14 +29,15 @@ #include "gtkdnd.h" #include "gtkdndprivate.h" #include "gtkintl.h" +#include "gtknative.h" static void gtk_drag_dest_realized (GtkWidget *widget) { - GtkRoot *root = gtk_widget_get_root (widget); + GtkNative *native = gtk_widget_get_native (widget); - gdk_surface_register_dnd (gtk_widget_get_surface (GTK_WIDGET (root))); + gdk_surface_register_dnd (gtk_native_get_surface (native)); } static void @@ -44,10 +45,10 @@ gtk_drag_dest_hierarchy_changed (GtkWidget *widget, GParamSpec *pspec, gpointer data) { - GtkRoot *root = gtk_widget_get_root (widget); + GtkNative *native = gtk_widget_get_native (widget); - if (root && gtk_widget_get_realized (GTK_WIDGET (root))) - gdk_surface_register_dnd (gtk_widget_get_surface (GTK_WIDGET (root))); + if (native && gtk_widget_get_realized (GTK_WIDGET (native))) + gdk_surface_register_dnd (gtk_native_get_surface (native)); } static void @@ -132,7 +133,7 @@ gtk_drag_dest_set_internal (GtkWidget *widget, * { * GdkModifierType mask; * - * gdk_surface_get_pointer (gtk_widget_get_surface (widget), + * gdk_surface_get_pointer (gtk_native_get_surface (gtk_widget_get_native (widget)), * NULL, NULL, &mask); * if (mask & GDK_CONTROL_MASK) * gdk_drag_status (context, GDK_ACTION_COPY, time); diff --git a/gtk/gtkentrycompletion.c b/gtk/gtkentrycompletion.c index 068a6b271c..4ec99e8f89 100644 --- a/gtk/gtkentrycompletion.c +++ b/gtk/gtkentrycompletion.c @@ -89,6 +89,7 @@ #include "gtkprivate.h" #include "gtkwindowprivate.h" #include "gtkwidgetprivate.h" +#include "gtknative.h" #include @@ -1345,7 +1346,7 @@ _gtk_entry_completion_resize_popup (GtkEntryCompletion *completion) GtkTreeViewColumn *action_column; gint action_height; - surface = gtk_widget_get_surface (completion->priv->entry); + surface = gtk_native_get_surface (gtk_widget_get_native (completion->priv->entry)); if (!surface) return; diff --git a/gtk/gtkfilechoosernativequartz.c b/gtk/gtkfilechoosernativequartz.c index 08c7a74d2c..89fad7b3af 100644 --- a/gtk/gtkfilechoosernativequartz.c +++ b/gtk/gtkfilechoosernativequartz.c @@ -529,7 +529,7 @@ gtk_file_chooser_native_quartz_show (GtkFileChooserNative *self) if (transient_for) { gtk_widget_realize (GTK_WIDGET (transient_for)); - data->parent = gdk_quartz_surface_get_nswindow (gtk_widget_get_surface (GTK_WIDGET (transient_for))); + data->parent = gdk_quartz_surface_get_nswindow (gtk_native_get_surface (GTK_NATIVE (transient_for))); if (gtk_native_dialog_get_modal (GTK_NATIVE_DIALOG (self))) data->modal = TRUE; diff --git a/gtk/gtkfilechoosernativewin32.c b/gtk/gtkfilechoosernativewin32.c index eb1dc1b5a5..c8df701fc7 100644 --- a/gtk/gtkfilechoosernativewin32.c +++ b/gtk/gtkfilechoosernativewin32.c @@ -46,6 +46,7 @@ #include "gtklabel.h" #include "gtkfilechooserentry.h" #include "gtkfilefilterprivate.h" +#include "gtknative.h" #include "win32/gdkwin32.h" #include @@ -790,7 +791,7 @@ gtk_file_chooser_native_win32_show (GtkFileChooserNative *self) if (transient_for) { gtk_widget_realize (GTK_WIDGET (transient_for)); - data->parent = gdk_win32_surface_get_handle (gtk_widget_get_surface (GTK_WIDGET (transient_for))); + data->parent = gdk_win32_surface_get_handle (gtk_native_get_surface (GTK_NATIVE (transient_for))); if (gtk_native_dialog_get_modal (GTK_NATIVE_DIALOG (self))) data->modal = TRUE; diff --git a/gtk/gtkgesture.c b/gtk/gtkgesture.c index 6296ba3444..466a097a86 100644 --- a/gtk/gtkgesture.c +++ b/gtk/gtkgesture.c @@ -123,6 +123,7 @@ #include "gtkprivate.h" #include "gtkmain.h" #include "gtkintl.h" +#include "gtknative.h" typedef struct _GtkGesturePrivate GtkGesturePrivate; typedef struct _PointData PointData; @@ -605,7 +606,7 @@ gesture_within_surface (GtkGesture *gesture, GtkWidget *widget; widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (gesture)); - return surface == gtk_widget_get_surface (widget); + return surface == gtk_native_get_surface (gtk_widget_get_native (widget)); } static gboolean diff --git a/gtk/gtkglarea.c b/gtk/gtkglarea.c index 3d5e47d6d9..5f91f32fef 100644 --- a/gtk/gtkglarea.c +++ b/gtk/gtkglarea.c @@ -28,6 +28,7 @@ #include "gtkprivate.h" #include "gtkrender.h" #include "gtksnapshot.h" +#include "gtknative.h" #include @@ -312,7 +313,7 @@ gtk_gl_area_real_create_context (GtkGLArea *area) GError *error = NULL; GdkGLContext *context; - context = gdk_surface_create_gl_context (gtk_widget_get_surface (widget), &error); + context = gdk_surface_create_gl_context (gtk_native_get_surface (gtk_widget_get_native (widget)), &error); if (error != NULL) { gtk_gl_area_set_error (area, error); diff --git a/gtk/gtkheaderbar.c b/gtk/gtkheaderbar.c index 0a01a1ee1a..03a5453229 100644 --- a/gtk/gtkheaderbar.c +++ b/gtk/gtkheaderbar.c @@ -36,6 +36,7 @@ #include "gtktypebuiltins.h" #include "gtkwidgetprivate.h" #include "gtkwindowprivate.h" +#include "gtknative.h" #include "a11y/gtkcontaineraccessible.h" @@ -1694,7 +1695,7 @@ gtk_header_bar_realize (GtkWidget *widget) G_CALLBACK (_gtk_header_bar_update_window_buttons), widget); g_signal_connect_swapped (settings, "notify::gtk-decoration-layout", G_CALLBACK (_gtk_header_bar_update_window_buttons), widget); - g_signal_connect_swapped (_gtk_widget_get_surface (widget), "notify::state", + g_signal_connect_swapped (gtk_native_get_surface (gtk_widget_get_native (widget)), "notify::state", G_CALLBACK (surface_state_changed), widget); _gtk_header_bar_update_window_buttons (GTK_HEADER_BAR (widget)); } @@ -1707,7 +1708,7 @@ gtk_header_bar_unrealize (GtkWidget *widget) settings = gtk_widget_get_settings (widget); g_signal_handlers_disconnect_by_func (settings, _gtk_header_bar_update_window_buttons, widget); - g_signal_handlers_disconnect_by_func (_gtk_widget_get_surface (widget), surface_state_changed, widget); + g_signal_handlers_disconnect_by_func (gtk_native_get_surface (gtk_widget_get_native (widget)), surface_state_changed, widget); GTK_WIDGET_CLASS (gtk_header_bar_parent_class)->unrealize (widget); } @@ -1719,7 +1720,7 @@ surface_state_changed (GtkWidget *widget) GtkHeaderBarPrivate *priv = gtk_header_bar_get_instance_private (bar); GdkSurfaceState changed, new_state; - new_state = gdk_surface_get_state (_gtk_widget_get_surface (widget)); + new_state = gdk_surface_get_state (gtk_native_get_surface (gtk_widget_get_native (widget))); changed = new_state ^ priv->state; priv->state = new_state; diff --git a/gtk/gtkimcontextime.c b/gtk/gtkimcontextime.c index d436bfd778..70f54ed1be 100644 --- a/gtk/gtkimcontextime.c +++ b/gtk/gtkimcontextime.c @@ -251,13 +251,11 @@ gtk_im_context_ime_set_client_widget (GtkIMContext *context, GtkWidget *widget) { GtkIMContextIME *context_ime; - GtkWidget *toplevel; GdkSurface *client_surface; g_return_if_fail (GTK_IS_IM_CONTEXT_IME (context)); context_ime = GTK_IM_CONTEXT_IME (context); - toplevel = gtk_widget_get_toplevel (widget); - client_surface = gtk_widget_get_surface (toplevel); + client_surface = gtk_native_get_surface (gtk_widget_get_native (widget)); if (client_surface) { diff --git a/gtk/gtkimcontextxim.c b/gtk/gtkimcontextxim.c index fe5f59e8eb..203bc6205b 100644 --- a/gtk/gtkimcontextxim.c +++ b/gtk/gtkimcontextxim.c @@ -576,7 +576,7 @@ gtk_im_context_xim_set_client_widget (GtkIMContext *context, GdkSurface *surface = NULL; if (widget != NULL) - surface = gtk_widget_get_surface (gtk_widget_get_toplevel (widget)); + surface = gtk_native_get_surface (gtk_widget_get_native (widget)); set_ic_client_surface (context_xim, surface); } diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index 77ea24d6c0..64ad80b6bd 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -1471,7 +1471,12 @@ synth_crossing (GtkWidget *widget, gdouble x, y; event = gdk_event_new (enter ? GDK_ENTER_NOTIFY : GDK_LEAVE_NOTIFY); if (related_target) - event->crossing.child_surface = g_object_ref (gtk_widget_get_surface (related_target)); + { + GdkSurface *surface; + + surface = gtk_native_get_surface (gtk_widget_get_native (related_target)); + event->crossing.child_surface = g_object_ref (surface); + } gdk_event_get_coords (source, &x, &y); event->crossing.x = x; event->crossing.y = y; @@ -1486,7 +1491,7 @@ synth_crossing (GtkWidget *widget, gdk_event_set_device (event, gdk_event_get_device (source)); gdk_event_set_source_device (event, gdk_event_get_source_device (source)); - event->any.surface = gtk_widget_get_surface (toplevel); + event->any.surface = gtk_native_get_surface (gtk_widget_get_native (toplevel)); if (event->any.surface) g_object_ref (event->any.surface); diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c index c856ae546c..f99126c864 100644 --- a/gtk/gtkmenu.c +++ b/gtk/gtkmenu.c @@ -116,6 +116,7 @@ #include "gtkwindowgroup.h" #include "gtkwindowprivate.h" #include "gtkeventcontrollerkey.h" +#include "gtknative.h" #include "a11y/gtkmenuaccessible.h" @@ -1283,7 +1284,7 @@ associate_menu_grab_transfer_surface (GtkMenu *menu) GdkSurface *toplevel_surface; GdkSurface *transfer_surface; - toplevel_surface = gtk_widget_get_surface (priv->toplevel); + toplevel_surface = gtk_native_get_surface (GTK_NATIVE (priv->toplevel)); transfer_surface = g_object_get_data (G_OBJECT (menu), "gtk-menu-transfer-surface"); if (toplevel_surface == NULL || transfer_surface == NULL) @@ -1388,7 +1389,7 @@ gtk_menu_popup_internal (GtkMenu *menu, if (xgrab_shell && xgrab_shell != widget) { - if (popup_grab_on_surface (gtk_widget_get_surface (xgrab_shell), pointer)) + if (popup_grab_on_surface (gtk_native_get_surface (gtk_widget_get_native (xgrab_shell)), pointer)) { _gtk_menu_shell_set_grab_device (GTK_MENU_SHELL (xgrab_shell), pointer); GTK_MENU_SHELL (xgrab_shell)->priv->have_xgrab = TRUE; @@ -1483,7 +1484,7 @@ gtk_menu_popup_internal (GtkMenu *menu, gtk_widget_show (priv->toplevel); if (xgrab_shell == widget) - popup_grab_on_surface (gtk_widget_get_surface (widget), pointer); /* Should always succeed */ + popup_grab_on_surface (gtk_native_get_surface (gtk_widget_get_native (widget)), pointer); /* Should always succeed */ gtk_grab_add (GTK_WIDGET (menu)); @@ -2221,7 +2222,7 @@ menu_grab_transfer_surface_destroy (GtkMenu *menu) gdk_surface_destroy (surface); g_object_set_data (G_OBJECT (menu), I_("gtk-menu-transfer-surface"), NULL); - widget_surface = gtk_widget_get_surface (GTK_WIDGET (menu)); + widget_surface = gtk_native_get_surface (gtk_widget_get_native (GTK_WIDGET (menu))); g_object_set_data (G_OBJECT (widget_surface), I_("gdk-attached-grab-surface"), surface); } } @@ -2600,7 +2601,7 @@ pointer_in_menu_surface (GtkWidget *widget, GtkMenuShell *menu_shell; gint surface_x, surface_y; - gdk_surface_get_position (gtk_widget_get_surface (priv->toplevel), + gdk_surface_get_position (gtk_native_get_surface (GTK_NATIVE (priv->toplevel)), &surface_x, &surface_y); gtk_widget_get_allocation (widget, &allocation); @@ -2825,7 +2826,7 @@ gtk_menu_scroll_by (GtkMenu *menu, if ((priv->scroll_offset >= 0) && (offset < 0)) offset = 0; - view_height = gdk_surface_get_height (gtk_widget_get_surface (widget)); + view_height = gdk_surface_get_height (gtk_native_get_surface (gtk_widget_get_native (widget))); if (priv->scroll_offset == 0 && view_height >= priv->requested_height) @@ -2891,7 +2892,7 @@ get_arrows_sensitive_area (GtkMenu *menu, &bottom_arrow_height, NULL, NULL, NULL); - surface = gtk_widget_get_surface (widget); + surface = gtk_native_get_surface (gtk_widget_get_native (widget)); width = gdk_surface_get_width (surface); height = gdk_surface_get_height (surface); @@ -2929,7 +2930,7 @@ gtk_menu_handle_scrolling (GtkMenu *menu, menu_shell = GTK_MENU_SHELL (menu); - gdk_surface_get_position (gtk_widget_get_surface (priv->toplevel), + gdk_surface_get_position (gtk_native_get_surface (GTK_NATIVE (priv->toplevel)), &top_x, &top_y); x -= top_x; y -= top_y; @@ -3146,7 +3147,7 @@ pointer_on_menu_widget (GtkMenu *menu, gint surface_x, surface_y; gtk_widget_get_allocation (GTK_WIDGET (menu), &allocation); - gdk_surface_get_position (gtk_widget_get_surface (priv->toplevel), + gdk_surface_get_position (gtk_native_get_surface (GTK_NATIVE (priv->toplevel)), &surface_x, &surface_y); if (x_root >= surface_x && x_root < surface_x + allocation.width && @@ -3237,7 +3238,7 @@ gtk_menu_captured_event (GtkWidget *widget, y_diff = y_root - priv->drag_start_y; offset = priv->initial_drag_offset - y_diff; - view_height = gdk_surface_get_height (gtk_widget_get_surface (widget)); + view_height = gdk_surface_get_height (gtk_native_get_surface (gtk_widget_get_native (widget))); get_arrows_border (menu, &arrow_border); if (gtk_widget_get_child_visible (priv->top_arrow_widget)) @@ -3414,7 +3415,7 @@ gtk_menu_position (GtkMenu *menu, } else if (priv->widget) { - rect_surface = gtk_widget_get_surface (priv->widget); + rect_surface = gtk_native_get_surface (gtk_widget_get_native (priv->widget)); gtk_widget_get_surface_allocation (priv->widget, &rect); text_direction = gtk_widget_get_direction (priv->widget); } @@ -3440,7 +3441,7 @@ gtk_menu_position (GtkMenu *menu, menu_anchor = get_horizontally_flipped_anchor (menu_anchor); } - toplevel = gtk_widget_get_surface (priv->toplevel); + toplevel = gtk_native_get_surface (GTK_NATIVE (priv->toplevel)); gdk_surface_set_transient_for (toplevel, rect_surface); @@ -3565,7 +3566,7 @@ gtk_menu_scroll_item_visible (GtkMenuShell *menu_shell, if (compute_child_offset (menu, menu_item, &child_offset, &child_height)) { y = priv->scroll_offset; - height = gdk_surface_get_height (gtk_widget_get_surface (widget)); + height = gdk_surface_get_height (gtk_native_get_surface (gtk_widget_get_native (widget))); if (child_offset < y) { diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c index 07f9dea4ff..3daa0c2dd0 100644 --- a/gtk/gtkmenuitem.c +++ b/gtk/gtkmenuitem.c @@ -46,6 +46,7 @@ #include "gtkstylecontextprivate.h" #include "gtkcssstylepropertyprivate.h" #include "gtkiconprivate.h" +#include "gtknative.h" #define MENU_POPUP_DELAY 225 @@ -1398,7 +1399,7 @@ gtk_menu_item_real_popup_submenu (GtkWidget *widget, /* Position the submenu at the menu item if it is mapped. * Otherwise, position the submenu at the pointer device. */ - if (gtk_widget_get_surface (widget)) + if (gtk_native_get_surface (gtk_widget_get_native (widget))) { switch (priv->submenu_placement) { diff --git a/gtk/gtkmnemonichash.c b/gtk/gtkmnemonichash.c index 03488e2887..e6504842e1 100644 --- a/gtk/gtkmnemonichash.c +++ b/gtk/gtkmnemonichash.c @@ -17,7 +17,10 @@ * License along with this library. If not, see . */ +#include "config.h" + #include "gtkmnemonichash.h" +#include "gtknative.h" struct _GtkMnemnonicHash { @@ -124,7 +127,7 @@ _gtk_mnemonic_hash_activate (GtkMnemonicHash *mnemonic_hash, for (list = targets; list; list = list->next) { widget = GTK_WIDGET (list->data); - surface = gtk_widget_get_surface (widget); + surface = gtk_native_get_surface (gtk_widget_get_native (widget)); if (gtk_widget_is_sensitive (widget) && gtk_widget_get_mapped (widget) && diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c index 16c033a553..6cc52fd6fe 100644 --- a/gtk/gtknotebook.c +++ b/gtk/gtknotebook.c @@ -4205,7 +4205,7 @@ gtk_notebook_remove_tab_label (GtkNotebook *notebook, page->mnemonic_activate_signal); page->mnemonic_activate_signal = 0; - if (gtk_widget_get_surface (page->tab_label) != gtk_widget_get_surface (GTK_WIDGET (notebook)) || + if (gtk_widget_get_native (page->tab_label) != gtk_widget_get_native (GTK_WIDGET (notebook)) || !NOTEBOOK_IS_TAB_LABEL_PARENT (notebook, page)) { GtkWidget *parent; diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c index eed7c0624c..aaac8a1b95 100644 --- a/gtk/gtkpopover.c +++ b/gtk/gtkpopover.c @@ -347,7 +347,7 @@ surface_state_changed (GtkWidget *widget) GdkSurfaceState new_surface_state; GdkSurfaceState changed_mask; - new_surface_state = gdk_surface_get_state (_gtk_widget_get_surface (widget)); + new_surface_state = gdk_surface_get_state (priv->surface); changed_mask = new_surface_state ^ priv->state; priv->state = new_surface_state; @@ -548,12 +548,14 @@ gtk_popover_realize (GtkWidget *widget) GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover); GdkRectangle parent_rect; GdkDisplay *display; + GdkSurface *parent; gtk_widget_get_surface_allocation (priv->relative_to, &parent_rect); display = gtk_widget_get_display (priv->relative_to); - priv->surface = gdk_surface_new_popup (display, gtk_widget_get_surface (priv->relative_to), priv->autohide); + parent = gtk_native_get_surface (gtk_widget_get_native (priv->relative_to)); + priv->surface = gdk_surface_new_popup (display, parent, priv->autohide); gdk_surface_set_widget (priv->surface, widget); @@ -960,23 +962,22 @@ gtk_popover_fill_border_path (GtkPopover *popover, static void gtk_popover_update_shape (GtkPopover *popover) { + GtkPopoverPrivate *priv = gtk_popover_get_instance_private (popover); GtkWidget *widget = GTK_WIDGET (popover); cairo_surface_t *cairo_surface; cairo_region_t *region; - GdkSurface *surface; cairo_t *cr; -#ifdef GDK_WINDOWING_WAYLAND +#ifdef GDK_WINDOWING_WAYLAND if (GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (widget))) return; #endif - surface = gtk_widget_get_surface (widget); cairo_surface = - gdk_surface_create_similar_surface (surface, + gdk_surface_create_similar_surface (priv->surface, CAIRO_CONTENT_COLOR_ALPHA, - gdk_surface_get_width (surface), - gdk_surface_get_height (surface)); + gdk_surface_get_width (priv->surface), + gdk_surface_get_height (priv->surface)); cr = cairo_create (cairo_surface); gtk_popover_fill_border_path (popover, cr); diff --git a/gtk/gtkprintoperation-win32.c b/gtk/gtkprintoperation-win32.c index ed6dfd797f..2820f5101b 100644 --- a/gtk/gtkprintoperation-win32.c +++ b/gtk/gtkprintoperation-win32.c @@ -676,8 +676,11 @@ op_win32_free (GtkPrintOperationWin32 *op_win32) static HWND get_parent_hwnd (GtkWidget *widget) { - gtk_widget_realize (widget); - return gdk_win32_surface_get_handle (gtk_widget_get_surface (widget)); + GtkNative *native; + + native = gtk_widget_get_native (widget); + gtk_widget_realize (GTK_WIDGET (native)); + return gdk_win32_surface_get_handle (gtk_native_get_surface (native)); } static void @@ -1362,7 +1365,7 @@ plug_grab_notify (GtkWidget *widget, gboolean was_grabbed, GtkPrintOperation *op) { - EnableWindow (GetAncestor (GDK_SURFACE_HWND (gtk_widget_get_surface (widget)), GA_ROOT), + EnableWindow (GetAncestor (GDK_SURFACE_HWND (gtk_native_get_surface (gtk_widget_get_native (widget))), GA_ROOT), was_grabbed); } @@ -1388,7 +1391,7 @@ pageDlgProc (HWND wnd, UINT message, WPARAM wparam, LPARAM lparam) gtk_container_add (GTK_CONTAINER (plug), op->priv->custom_widget); gtk_widget_show (op->priv->custom_widget); gtk_widget_show (plug); - gdk_surface_focus (gtk_widget_get_surface (plug), GDK_CURRENT_TIME); + gdk_surface_focus (gtk_native_get_surface (gtk_widget_get_native (plug)), GDK_CURRENT_TIME); /* This dialog is modal, so we grab the embed widget */ gtk_grab_add (plug); @@ -1721,7 +1724,7 @@ gtk_print_operation_run_with_dialog (GtkPrintOperation *op, invisible = gtk_window_new (GTK_WINDOW_POPUP); parentHWnd = get_parent_hwnd (invisible); } - else + else parentHWnd = get_parent_hwnd (GTK_WIDGET (parent)); printdlgex = (LPPRINTDLGEXW)GlobalAlloc (GPTR, sizeof (PRINTDLGEXW)); diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c index 6a4db5f041..6ce040676f 100644 --- a/gtk/gtktextview.c +++ b/gtk/gtktextview.c @@ -8650,7 +8650,7 @@ gtk_text_view_do_popup (GtkTextView *text_view, &iter_location.y); gtk_menu_popup_at_rect (GTK_MENU (priv->popup_menu), - gtk_widget_get_surface (GTK_WIDGET (text_view)), + gtk_native_get_surface (gtk_widget_get_native (GTK_WIDGET (text_view))), &iter_location, GDK_GRAVITY_SOUTH_EAST, GDK_GRAVITY_NORTH_WEST, diff --git a/gtk/gtktooltip.c b/gtk/gtktooltip.c index 0012e5039d..28c1c718a8 100644 --- a/gtk/gtktooltip.c +++ b/gtk/gtktooltip.c @@ -400,7 +400,7 @@ gtk_tooltip_trigger_tooltip_query (GtkWidget *widget) toplevel = gtk_widget_get_toplevel (widget); - if (gtk_widget_get_surface (toplevel) != surface) + if (gtk_native_get_surface (GTK_NATIVE (toplevel)) != surface) return; gtk_widget_translate_coordinates (toplevel, widget, round (x), round (y), &dx, &dy); @@ -581,7 +581,7 @@ gtk_tooltip_position (GtkTooltip *tooltip, int anchor_rect_padding; gtk_widget_realize (GTK_WIDGET (tooltip->current_window)); - surface = _gtk_widget_get_surface (GTK_WIDGET (tooltip->current_window)); + surface = gtk_native_get_surface (GTK_NATIVE (tooltip->current_window)); tooltip->tooltip_widget = new_tooltip_widget; @@ -636,7 +636,7 @@ gtk_tooltip_position (GtkTooltip *tooltip, * If the anchor rectangle isn't to tall, make sure the tooltip isn't too * far away from the pointer position. */ - effective_toplevel = _gtk_widget_get_surface (toplevel); + effective_toplevel = gtk_native_get_surface (GTK_NATIVE (toplevel)); gdk_surface_get_device_position (effective_toplevel, device, &px, &py, NULL); pointer_x = round (px); pointer_y = round (py); diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index 53902a36d3..b72794c521 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -62,6 +62,7 @@ #include "gtkwidgetpath.h" #include "gtkwidgetprivate.h" #include "gtkwindowgroup.h" +#include "gtknative.h" #include "a11y/gtktreeviewaccessibleprivate.h" @@ -10059,7 +10060,7 @@ send_focus_change (GtkWidget *widget, GdkEvent *fevent; GdkSurface *surface; - surface = gtk_widget_get_surface (widget); + surface = gtk_native_get_surface (gtk_widget_get_native (widget)); fevent = gdk_event_new (GDK_FOCUS_CHANGE); diff --git a/gtk/gtkvideo.c b/gtk/gtkvideo.c index 3543d458a4..3813d4e80c 100644 --- a/gtk/gtkvideo.c +++ b/gtk/gtkvideo.c @@ -26,6 +26,7 @@ #include "gtkintl.h" #include "gtkmediacontrols.h" #include "gtkmediafile.h" +#include "gtknative.h" #include "gtkpicture.h" #include "gtkrevealer.h" @@ -141,7 +142,12 @@ gtk_video_realize (GtkWidget *widget) GTK_WIDGET_CLASS (gtk_video_parent_class)->realize (widget); if (self->media_stream) - gtk_media_stream_realize (self->media_stream, gtk_widget_get_surface (GTK_WIDGET (self))); + { + GdkSurface *surface; + + surface = gtk_native_get_surface (gtk_widget_get_native (widget)); + gtk_media_stream_realize (self->media_stream, surface); + } if (self->file) gtk_media_file_set_file (GTK_MEDIA_FILE (self->media_stream), self->file); @@ -153,7 +159,12 @@ gtk_video_unrealize (GtkWidget *widget) GtkVideo *self = GTK_VIDEO (widget); if (self->media_stream) - gtk_media_stream_unrealize (self->media_stream, gtk_widget_get_surface (GTK_WIDGET (self))); + { + GdkSurface *surface; + + surface = gtk_native_get_surface (gtk_widget_get_native (widget)); + gtk_media_stream_unrealize (self->media_stream, surface); + } GTK_WIDGET_CLASS (gtk_video_parent_class)->unrealize (widget); } @@ -580,7 +591,12 @@ gtk_video_set_media_stream (GtkVideo *self, gtk_video_notify_cb, self); if (gtk_widget_get_realized (GTK_WIDGET (self))) - gtk_media_stream_unrealize (self->media_stream, gtk_widget_get_surface (GTK_WIDGET (self))); + { + GdkSurface *surface; + + surface = gtk_native_get_surface (gtk_widget_get_native (GTK_WIDGET (self))); + gtk_media_stream_unrealize (self->media_stream, surface); + } g_object_unref (self->media_stream); self->media_stream = NULL; } @@ -590,7 +606,12 @@ gtk_video_set_media_stream (GtkVideo *self, self->media_stream = g_object_ref (stream); gtk_media_stream_set_loop (stream, self->loop); if (gtk_widget_get_realized (GTK_WIDGET (self))) - gtk_media_stream_realize (stream, gtk_widget_get_surface (GTK_WIDGET (self))); + { + GdkSurface *surface; + + surface = gtk_native_get_surface (gtk_widget_get_native (GTK_WIDGET (self))); + gtk_media_stream_realize (stream, surface); + } g_signal_connect (self->media_stream, "notify", G_CALLBACK (gtk_video_notify_cb), diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 53e466a245..bfa4a0635b 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -7216,6 +7216,7 @@ _gtk_widget_scale_changed (GtkWidget *widget) gint gtk_widget_get_scale_factor (GtkWidget *widget) { + GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget); GtkRoot *root; GdkDisplay *display; GdkMonitor *monitor; @@ -7223,7 +7224,7 @@ gtk_widget_get_scale_factor (GtkWidget *widget) g_return_val_if_fail (GTK_IS_WIDGET (widget), 1); if (_gtk_widget_get_realized (widget)) - return gdk_surface_get_scale_factor (_gtk_widget_get_surface (widget)); + return gdk_surface_get_scale_factor (priv->surface); root = _gtk_widget_get_root (widget); if (root && GTK_WIDGET (root) != widget) diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 8e5ef0cdbd..65d890d98c 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -1305,6 +1305,7 @@ gtk_window_titlebar_action (GtkWindow *window, guint button, gint n_press) { + GtkWindowPrivate *priv = gtk_window_get_instance_private (window); GtkSettings *settings; gchar *action = NULL; gboolean retval = TRUE; @@ -1343,9 +1344,9 @@ gtk_window_titlebar_action (GtkWindow *window, _gtk_window_toggle_maximized (window); } else if (g_str_equal (action, "lower")) - gdk_surface_lower (_gtk_widget_get_surface (GTK_WIDGET (window))); + gdk_surface_lower (priv->surface); else if (g_str_equal (action, "minimize")) - gdk_surface_iconify (_gtk_widget_get_surface (GTK_WIDGET (window))); + gdk_surface_iconify (priv->surface); else if (g_str_equal (action, "menu")) gtk_window_do_popup (window, (GdkEventButton*) event); else @@ -1366,16 +1367,15 @@ multipress_gesture_pressed_cb (GtkGestureMultiPress *gesture, gdouble y, GtkWindow *window) { + GtkWindowPrivate *priv = gtk_window_get_instance_private (window); GtkWidget *event_widget, *widget; GdkEventSequence *sequence; GtkWindowRegion region; - GtkWindowPrivate *priv; const GdkEvent *event; guint button; gboolean window_drag = FALSE; widget = GTK_WIDGET (window); - priv = gtk_window_get_instance_private (window); sequence = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture)); button = gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture)); event = gtk_gesture_get_last_event (GTK_GESTURE (gesture), sequence); @@ -1418,7 +1418,7 @@ multipress_gesture_pressed_cb (GtkGestureMultiPress *gesture, event_widget = gtk_get_event_widget ((GdkEvent *) event); if (region == GTK_WINDOW_REGION_TITLE) - gdk_surface_raise (_gtk_widget_get_surface (widget)); + gdk_surface_raise (priv->surface); switch (region) { @@ -1459,7 +1459,7 @@ multipress_gesture_pressed_cb (GtkGestureMultiPress *gesture, gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); gdk_event_get_coords (event, &tx, &ty); - gdk_surface_begin_resize_drag_for_device (_gtk_widget_get_surface (widget), + gdk_surface_begin_resize_drag_for_device (priv->surface, (GdkSurfaceEdge) region, gdk_event_get_device ((GdkEvent *) event), GDK_BUTTON_PRIMARY, @@ -1569,7 +1569,7 @@ drag_gesture_update_cb (GtkGestureDrag *gesture, gtk_gesture_drag_get_start_point (gesture, &start_x, &start_y); - gdk_surface_begin_move_drag_for_device (_gtk_widget_get_surface (GTK_WIDGET (window)), + gdk_surface_begin_move_drag_for_device (priv->surface, gtk_gesture_get_device (GTK_GESTURE (gesture)), gtk_gesture_single_get_current_button (GTK_GESTURE_SINGLE (gesture)), (int)start_x, (int)start_y, @@ -1664,7 +1664,7 @@ edge_under_coordinates (GtkWindow *window, priv->maximized) return FALSE; - supports_edge_constraints = gdk_surface_supports_edge_constraints (_gtk_widget_get_surface (GTK_WIDGET (window))); + supports_edge_constraints = gdk_surface_supports_edge_constraints (priv->surface); constraints = constraints_for_edge (edge); if (!supports_edge_constraints && priv->tiled) @@ -2471,19 +2471,16 @@ gtk_window_set_title_internal (GtkWindow *window, gboolean update_titlebar) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GtkWidget *widget; char *new_title; g_return_if_fail (GTK_IS_WINDOW (window)); - widget = GTK_WIDGET (window); - new_title = g_strdup (title); g_free (priv->title); priv->title = new_title; - if (_gtk_widget_get_realized (widget)) - gdk_surface_set_title (_gtk_widget_get_surface (widget), new_title != NULL ? new_title : ""); + if (_gtk_widget_get_realized (GTK_WIDGET (window))) + gdk_surface_set_title (priv->surface, new_title != NULL ? new_title : ""); if (update_titlebar && GTK_IS_HEADER_BAR (priv->title_box)) gtk_header_bar_set_title (GTK_HEADER_BAR (priv->title_box), new_title != NULL ? new_title : ""); @@ -2567,14 +2564,11 @@ gtk_window_set_startup_id (GtkWindow *window, if (_gtk_widget_get_realized (widget)) { - GdkSurface *surface; guint32 timestamp = extract_time_from_startup_id (priv->startup_id); - surface = _gtk_widget_get_surface (widget); - #ifdef GDK_WINDOWING_X11 - if (timestamp != GDK_CURRENT_TIME && GDK_IS_X11_SURFACE(surface)) - gdk_x11_surface_set_user_time (surface, timestamp); + if (timestamp != GDK_CURRENT_TIME && GDK_IS_X11_SURFACE (priv->surface)) + gdk_x11_surface_set_user_time (priv->surface, timestamp); #endif /* Here we differentiate real and "fake" startup notification IDs, @@ -2584,7 +2578,7 @@ gtk_window_set_startup_id (GtkWindow *window, gtk_window_present_with_time (window, timestamp); else { - gdk_surface_set_startup_id (surface, priv->startup_id); + gdk_surface_set_startup_id (priv->surface, priv->startup_id); /* If window is mapped, terminate the startup-notification too */ if (_gtk_widget_get_mapped (widget) && !disable_startup_notification) @@ -2983,7 +2977,7 @@ gtk_window_set_modal (GtkWindow *window, /* adjust desired modality state */ if (_gtk_widget_get_realized (widget)) - gdk_surface_set_modal_hint (_gtk_widget_get_surface (widget), priv->modal); + gdk_surface_set_modal_hint (priv->surface, priv->modal); if (gtk_widget_get_visible (widget)) { @@ -3141,17 +3135,19 @@ static void gtk_window_transient_parent_realized (GtkWidget *parent, GtkWidget *window) { + GtkWindowPrivate *priv = gtk_window_get_instance_private (GTK_WINDOW (window)); + GtkWindowPrivate *parent_priv = gtk_window_get_instance_private (GTK_WINDOW (parent)); if (_gtk_widget_get_realized (window)) - gdk_surface_set_transient_for (_gtk_widget_get_surface (window), - _gtk_widget_get_surface (parent)); + gdk_surface_set_transient_for (priv->surface, parent_priv->surface); } static void gtk_window_transient_parent_unrealized (GtkWidget *parent, GtkWidget *window) { + GtkWindowPrivate *priv = gtk_window_get_instance_private (GTK_WINDOW (window)); if (_gtk_widget_get_realized (window)) - gdk_surface_set_transient_for (_gtk_widget_get_surface (window), NULL); + gdk_surface_set_transient_for (priv->surface, NULL); } static void @@ -3470,14 +3466,12 @@ gtk_window_set_application (GtkWindow *window, * * gtk_dialog_new_with_buttons() and other convenience functions in GTK+ * will sometimes call gtk_window_set_type_hint() on your behalf. - * **/ void -gtk_window_set_type_hint (GtkWindow *window, - GdkSurfaceTypeHint hint) +gtk_window_set_type_hint (GtkWindow *window, + GdkSurfaceTypeHint hint) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GdkSurface *surface; g_return_if_fail (GTK_IS_WINDOW (window)); @@ -3486,9 +3480,8 @@ gtk_window_set_type_hint (GtkWindow *window, priv->type_hint = hint; - surface = _gtk_widget_get_surface (GTK_WIDGET (window)); - if (surface) - gdk_surface_set_type_hint (surface, hint); + if (priv->surface) + gdk_surface_set_type_hint (priv->surface, hint); g_object_notify_by_pspec (G_OBJECT (window), window_props[PROP_TYPE_HINT]); @@ -3535,8 +3528,7 @@ gtk_window_set_accept_focus (GtkWindow *window, { priv->accept_focus = setting; if (_gtk_widget_get_realized (GTK_WIDGET (window))) - gdk_surface_set_accept_focus (_gtk_widget_get_surface (GTK_WIDGET (window)), - priv->accept_focus); + gdk_surface_set_accept_focus (priv->surface, priv->accept_focus); g_object_notify_by_pspec (G_OBJECT (window), window_props[PROP_ACCEPT_FOCUS]); } } @@ -3582,8 +3574,7 @@ gtk_window_set_focus_on_map (GtkWindow *window, { priv->focus_on_map = setting; if (_gtk_widget_get_realized (GTK_WIDGET (window))) - gdk_surface_set_focus_on_map (_gtk_widget_get_surface (GTK_WIDGET (window)), - priv->focus_on_map); + gdk_surface_set_focus_on_map (priv->surface, priv->focus_on_map); g_object_notify_by_pspec (G_OBJECT (window), window_props[PROP_FOCUS_ON_MAP]); } } @@ -3935,7 +3926,6 @@ gtk_window_set_decorated (GtkWindow *window, gboolean setting) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GdkSurface *surface; g_return_if_fail (GTK_IS_WINDOW (window)); @@ -3946,18 +3936,17 @@ gtk_window_set_decorated (GtkWindow *window, priv->decorated = setting; - surface = _gtk_widget_get_surface (GTK_WIDGET (window)); - if (surface) + if (priv->surface) { if (priv->decorated) { if (priv->client_decorated) - gdk_surface_set_decorations (surface, 0); + gdk_surface_set_decorations (priv->surface, 0); else - gdk_surface_set_decorations (surface, GDK_DECOR_ALL); + gdk_surface_set_decorations (priv->surface, GDK_DECOR_ALL); } else - gdk_surface_set_decorations (surface, 0); + gdk_surface_set_decorations (priv->surface, 0); } update_window_buttons (window); @@ -4006,7 +3995,6 @@ gtk_window_set_deletable (GtkWindow *window, gboolean setting) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GdkSurface *surface; g_return_if_fail (GTK_IS_WINDOW (window)); @@ -4017,15 +4005,13 @@ gtk_window_set_deletable (GtkWindow *window, priv->deletable = setting; - surface = _gtk_widget_get_surface (GTK_WIDGET (window)); - if (surface) + if (priv->surface) { if (priv->deletable) - gdk_surface_set_functions (surface, - GDK_FUNC_ALL); + gdk_surface_set_functions (priv->surface, GDK_FUNC_ALL); else - gdk_surface_set_functions (surface, - GDK_FUNC_ALL | GDK_FUNC_CLOSE); + gdk_surface_set_functions (priv->surface, + GDK_FUNC_ALL | GDK_FUNC_CLOSE); } update_window_buttons (window); @@ -4136,15 +4122,10 @@ static void gtk_window_realize_icon (GtkWindow *window) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GtkWidget *widget; GtkWindowIconInfo *info; - GdkSurface *surface; GList *icon_list = NULL; - widget = GTK_WIDGET (window); - surface = _gtk_widget_get_surface (widget); - - g_return_if_fail (surface != NULL); + g_return_if_fail (priv->surface != NULL); /* no point setting an icon on override-redirect */ if (priv->type == GTK_WINDOW_POPUP) @@ -4176,14 +4157,12 @@ gtk_window_realize_icon (GtkWindow *window) info->realized = TRUE; - gdk_surface_set_icon_list (surface, icon_list); + gdk_surface_set_icon_list (priv->surface, icon_list); if (GTK_IS_HEADER_BAR (priv->title_box)) _gtk_header_bar_update_window_icon (GTK_HEADER_BAR (priv->title_box), window); - if (info->using_themed_icon) - { - g_list_free_full (icon_list, g_object_unref); - } + if (info->using_themed_icon) + g_list_free_full (icon_list, g_object_unref); } GdkTexture * @@ -4489,7 +4468,7 @@ gtk_window_set_default_size_internal (GtkWindow *window, * gtk_window_get_size(). Using the window allocation directly will not * work in all circumstances and can lead to growing or shrinking windows. */ -void +void gtk_window_set_default_size (GtkWindow *window, gint width, gint height) @@ -4674,8 +4653,9 @@ gtk_window_get_size (GtkWindow *window, gint *width, gint *height) { + GtkWindowPrivate *priv = gtk_window_get_instance_private (window); gint w, h; - + g_return_if_fail (GTK_IS_WINDOW (window)); if (width == NULL && height == NULL) @@ -4683,8 +4663,8 @@ gtk_window_get_size (GtkWindow *window, if (_gtk_widget_get_mapped (GTK_WIDGET (window))) { - w = gdk_surface_get_width (_gtk_widget_get_surface (GTK_WIDGET (window))); - h = gdk_surface_get_height (_gtk_widget_get_surface (GTK_WIDGET (window))); + w = gdk_surface_get_width (priv->surface); + h = gdk_surface_get_height (priv->surface); } else { @@ -5128,7 +5108,6 @@ gtk_window_unmap (GtkWidget *widget) GtkWindowPrivate *priv = gtk_window_get_instance_private (window); GtkWidget *child; GtkWindowGeometryInfo *info; - GdkSurface *surface; GdkSurfaceState state; if (!_gtk_widget_is_toplevel (GTK_WIDGET (widget))) @@ -5137,15 +5116,13 @@ gtk_window_unmap (GtkWidget *widget) return; } - surface = priv->surface; - GTK_WIDGET_CLASS (gtk_window_parent_class)->unmap (widget); - gdk_surface_hide (surface); + gdk_surface_hide (priv->surface); while (priv->configure_request_count > 0) { priv->configure_request_count--; - gdk_surface_thaw_toplevel_updates (_gtk_widget_get_surface (widget)); + gdk_surface_thaw_toplevel_updates (priv->surface); } priv->configure_notify_received = FALSE; @@ -5162,7 +5139,7 @@ gtk_window_unmap (GtkWidget *widget) info->position_constraints_changed = FALSE; } - state = gdk_surface_get_state (surface); + state = gdk_surface_get_state (priv->surface); priv->iconify_initially = (state & GDK_SURFACE_STATE_ICONIFIED) != 0; priv->maximize_initially = (state & GDK_SURFACE_STATE_MAXIMIZED) != 0; priv->stick_initially = (state & GDK_SURFACE_STATE_STICKY) != 0; @@ -5252,17 +5229,16 @@ gtk_window_get_remembered_size (GtkWindow *window, int *width, int *height) { + GtkWindowPrivate *priv = gtk_window_get_instance_private (window); GtkWindowGeometryInfo *info; - GdkSurface *surface; *width = 0; *height = 0; - surface = _gtk_widget_get_surface (GTK_WIDGET (window)); - if (surface) + if (priv->surface) { - *width = gdk_surface_get_width (surface); - *height = gdk_surface_get_height (surface); + *width = gdk_surface_get_width (priv->surface); + *height = gdk_surface_get_height (priv->surface); return; } @@ -5527,12 +5503,10 @@ static void update_shadow_width (GtkWindow *window, GtkBorder *border) { - GdkSurface *surface; + GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - surface = _gtk_widget_get_surface (GTK_WIDGET (window)); - - if (surface) - gdk_surface_set_shadow_width (surface, + if (priv->surface) + gdk_surface_set_shadow_width (priv->surface, border->left, border->right, border->top, @@ -5586,6 +5560,7 @@ update_opaque_region (GtkWindow *window, const GtkBorder *border, const GtkAllocation *allocation) { + GtkWindowPrivate *priv = gtk_window_get_instance_private (window); GtkWidget *widget = GTK_WIDGET (window); cairo_region_t *opaque_region; GtkStyleContext *context; @@ -5619,7 +5594,7 @@ update_opaque_region (GtkWindow *window, opaque_region = NULL; } - gdk_surface_set_opaque_region (_gtk_widget_get_surface (widget), opaque_region); + gdk_surface_set_opaque_region (priv->surface, opaque_region); cairo_region_destroy (opaque_region); } @@ -5712,8 +5687,10 @@ gtk_window_realize (GtkWidget *widget) if (priv->transient_parent && _gtk_widget_get_realized (GTK_WIDGET (priv->transient_parent))) - gdk_surface_set_transient_for (surface, - _gtk_widget_get_surface (GTK_WIDGET (priv->transient_parent))); + { + GtkWindowPrivate *parent_priv = gtk_window_get_instance_private (priv->transient_parent); + gdk_surface_set_transient_for (surface, parent_priv->surface); + } gdk_surface_set_type_hint (surface, priv->type_hint); @@ -5999,7 +5976,7 @@ _gtk_window_set_allocation (GtkWindow *window, if (!_gtk_widget_is_toplevel (widget) && _gtk_widget_get_realized (widget)) { - gdk_surface_move_resize (_gtk_widget_get_surface (widget), 0, 0, width, height); + gdk_surface_move_resize (priv->surface, 0, 0, width, height); } *allocation_out = child_allocation; @@ -6074,7 +6051,7 @@ gtk_window_configure (GtkWindow *window, { priv->configure_request_count -= 1; - gdk_surface_thaw_toplevel_updates (_gtk_widget_get_surface (widget)); + gdk_surface_thaw_toplevel_updates (priv->surface); } /* @@ -6119,7 +6096,7 @@ surface_state_changed (GtkWidget *widget) GdkSurfaceState new_surface_state; GdkSurfaceState changed_mask; - new_surface_state = gdk_surface_get_state (_gtk_widget_get_surface (widget)); + new_surface_state = gdk_surface_get_state (priv->surface); changed_mask = new_surface_state ^ priv->state; priv->state = new_surface_state; @@ -6333,8 +6310,7 @@ gtk_window_has_mnemonic_modifier_pressed (GtkWindow *window) GdkDevice *dev = gdk_seat_get_pointer (s->data); GdkModifierType mask; - gdk_device_get_state (dev, _gtk_widget_get_surface (GTK_WIDGET (window)), - NULL, &mask); + gdk_device_get_state (dev, priv->surface, NULL, &mask); if (priv->mnemonic_modifier == (mask & gtk_accelerator_get_default_mod_mask ())) { retval = TRUE; @@ -6571,7 +6547,7 @@ gtk_window_set_focus (GtkWindow *window, event = gdk_event_new (GDK_FOCUS_CHANGE); gdk_event_set_display (event, gtk_widget_get_display (GTK_WIDGET (window))); gdk_event_set_device (event, device); - event->any.surface = _gtk_widget_get_surface (GTK_WIDGET (window)); + event->any.surface = priv->surface; if (event->any.surface) g_object_ref (event->any.surface); @@ -6680,17 +6656,12 @@ popup_menu_detach (GtkWidget *widget, static GdkSurfaceState gtk_window_get_state (GtkWindow *window) { - GdkSurfaceState state; - GdkSurface *surface; + GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - surface = gtk_widget_get_surface (GTK_WIDGET (window)); + if (priv->surface) + return gdk_surface_get_state (priv->surface); - state = 0; - - if (surface) - state = gdk_surface_get_state (surface); - - return state; + return 0; } static void @@ -6896,8 +6867,9 @@ static void gtk_window_do_popup (GtkWindow *window, GdkEventButton *event) { - if (!gdk_surface_show_window_menu (_gtk_widget_get_surface (GTK_WIDGET (window)), - (GdkEvent *) event)) + GtkWindowPrivate *priv = gtk_window_get_instance_private (window); + + if (!gdk_surface_show_window_menu (priv->surface, (GdkEvent *) event)) gtk_window_do_popup_fallback (window, event); } @@ -6906,7 +6878,7 @@ gtk_window_do_popup (GtkWindow *window, *********************************/ /* This function doesn't constrain to geometry hints */ -static void +static void gtk_window_compute_configure_request_size (GtkWindow *window, GdkGeometry *geometry, guint flags, @@ -7148,17 +7120,16 @@ gtk_window_compute_configure_request (GtkWindow *window, case GTK_WIN_POS_CENTER_ON_PARENT: { GtkAllocation allocation; - GdkSurface *surface; GdkMonitor *monitor; GdkRectangle area; gint ox, oy; + GtkWindowPrivate *parent_priv = gtk_window_get_instance_private (priv->transient_parent); g_assert (_gtk_widget_get_mapped (parent_widget)); /* established earlier */ - surface = _gtk_widget_get_surface (parent_widget); - monitor = gdk_display_get_monitor_at_surface (priv->display, surface); + monitor = gdk_display_get_monitor_at_surface (priv->display, parent_priv->surface); - gdk_surface_get_origin (surface, &ox, &oy); + gdk_surface_get_origin (parent_priv->surface, &ox, &oy); gtk_widget_get_allocation (parent_widget, &allocation); x = ox + (allocation.width - w) / 2; @@ -7296,7 +7267,7 @@ gtk_window_move_resize (GtkWindow *window) widget = GTK_WIDGET (window); - surface = _gtk_widget_get_surface (widget); + surface = priv->surface; info = gtk_window_get_geometry_info (window, TRUE); configure_request_size_changed = FALSE; @@ -7972,7 +7943,7 @@ gtk_window_present_with_time (GtkWindow *window, if (gtk_widget_get_visible (widget)) { - surface = _gtk_widget_get_surface (widget); + surface = priv->surface; g_assert (surface != NULL); @@ -8025,16 +7996,13 @@ void gtk_window_iconify (GtkWindow *window) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GdkSurface *toplevel; g_return_if_fail (GTK_IS_WINDOW (window)); priv->iconify_initially = TRUE; - toplevel = _gtk_widget_get_surface (GTK_WIDGET (window)); - - if (toplevel != NULL) - gdk_surface_iconify (toplevel); + if (priv->surface) + gdk_surface_iconify (priv->surface); } /** @@ -8053,16 +8021,13 @@ void gtk_window_deiconify (GtkWindow *window) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GdkSurface *toplevel; g_return_if_fail (GTK_IS_WINDOW (window)); priv->iconify_initially = FALSE; - toplevel = _gtk_widget_get_surface (GTK_WIDGET (window)); - - if (toplevel != NULL) - gdk_surface_deiconify (toplevel); + if (priv->surface) + gdk_surface_deiconify (priv->surface); } /** @@ -8085,16 +8050,13 @@ void gtk_window_stick (GtkWindow *window) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GdkSurface *toplevel; g_return_if_fail (GTK_IS_WINDOW (window)); priv->stick_initially = TRUE; - toplevel = _gtk_widget_get_surface (GTK_WIDGET (window)); - - if (toplevel != NULL) - gdk_surface_stick (toplevel); + if (priv->surface) + gdk_surface_stick (priv->surface); } /** @@ -8114,16 +8076,13 @@ void gtk_window_unstick (GtkWindow *window) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GdkSurface *toplevel; g_return_if_fail (GTK_IS_WINDOW (window)); priv->stick_initially = FALSE; - toplevel = _gtk_widget_get_surface (GTK_WIDGET (window)); - - if (toplevel != NULL) - gdk_surface_unstick (toplevel); + if (priv->surface) + gdk_surface_unstick (priv->surface); } /** @@ -8149,16 +8108,13 @@ void gtk_window_maximize (GtkWindow *window) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GdkSurface *toplevel; g_return_if_fail (GTK_IS_WINDOW (window)); priv->maximize_initially = TRUE; - toplevel = _gtk_widget_get_surface (GTK_WIDGET (window)); - - if (toplevel != NULL) - gdk_surface_maximize (toplevel); + if (priv->surface) + gdk_surface_maximize (priv->surface); } /** @@ -8178,16 +8134,13 @@ void gtk_window_unmaximize (GtkWindow *window) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GdkSurface *toplevel; g_return_if_fail (GTK_IS_WINDOW (window)); priv->maximize_initially = FALSE; - toplevel = _gtk_widget_get_surface (GTK_WIDGET (window)); - - if (toplevel != NULL) - gdk_surface_unmaximize (toplevel); + if (priv->surface) + gdk_surface_unmaximize (priv->surface); } /** @@ -8208,16 +8161,13 @@ void gtk_window_fullscreen (GtkWindow *window) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GdkSurface *toplevel; g_return_if_fail (GTK_IS_WINDOW (window)); priv->fullscreen_initially = TRUE; - toplevel = _gtk_widget_get_surface (GTK_WIDGET (window)); - - if (toplevel != NULL) - gdk_surface_fullscreen (toplevel); + if (priv->surface) + gdk_surface_fullscreen (priv->surface); } static void @@ -8248,15 +8198,11 @@ gtk_window_fullscreen_on_monitor (GtkWindow *window, GdkMonitor *monitor) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GtkWidget *widget; - GdkSurface *toplevel; g_return_if_fail (GTK_IS_WINDOW (window)); g_return_if_fail (GDK_IS_MONITOR (monitor)); g_return_if_fail (gdk_monitor_is_valid (monitor)); - widget = GTK_WIDGET (window); - gtk_window_set_display (window, gdk_monitor_get_display (monitor)); unset_fullscreen_monitor (window); @@ -8267,10 +8213,8 @@ gtk_window_fullscreen_on_monitor (GtkWindow *window, priv->fullscreen_initially = TRUE; - toplevel = _gtk_widget_get_surface (widget); - - if (toplevel != NULL) - gdk_surface_fullscreen_on_monitor (toplevel, monitor); + if (priv->surface) + gdk_surface_fullscreen_on_monitor (priv->surface, monitor); } /** @@ -8291,17 +8235,14 @@ void gtk_window_unfullscreen (GtkWindow *window) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GdkSurface *toplevel; g_return_if_fail (GTK_IS_WINDOW (window)); unset_fullscreen_monitor (window); priv->fullscreen_initially = FALSE; - toplevel = _gtk_widget_get_surface (GTK_WIDGET (window)); - - if (toplevel != NULL) - gdk_surface_unfullscreen (toplevel); + if (priv->surface) + gdk_surface_unfullscreen (priv->surface); } /** @@ -8334,7 +8275,6 @@ gtk_window_set_keep_above (GtkWindow *window, gboolean setting) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GdkSurface *toplevel; g_return_if_fail (GTK_IS_WINDOW (window)); @@ -8343,10 +8283,8 @@ gtk_window_set_keep_above (GtkWindow *window, priv->above_initially = setting; priv->below_initially &= !setting; - toplevel = _gtk_widget_get_surface (GTK_WIDGET (window)); - - if (toplevel != NULL) - gdk_surface_set_keep_above (toplevel, setting); + if (priv->surface) + gdk_surface_set_keep_above (priv->surface, setting); } /** @@ -8379,7 +8317,6 @@ gtk_window_set_keep_below (GtkWindow *window, gboolean setting) { GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GdkSurface *toplevel; g_return_if_fail (GTK_IS_WINDOW (window)); @@ -8388,10 +8325,8 @@ gtk_window_set_keep_below (GtkWindow *window, priv->below_initially = setting; priv->above_initially &= !setting; - toplevel = _gtk_widget_get_surface (GTK_WIDGET (window)); - - if (toplevel != NULL) - gdk_surface_set_keep_below (toplevel, setting); + if (priv->surface) + gdk_surface_set_keep_below (priv->surface, setting); } /** @@ -8462,16 +8397,12 @@ gtk_window_begin_resize_drag (GtkWindow *window, gint y, guint32 timestamp) { - GtkWidget *widget; - GdkSurface *toplevel; + GtkWindowPrivate *priv = gtk_window_get_instance_private (window); g_return_if_fail (GTK_IS_WINDOW (window)); - widget = GTK_WIDGET (window); - g_return_if_fail (gtk_widget_get_visible (widget)); + g_return_if_fail (gtk_widget_get_visible (GTK_WIDGET (window))); - toplevel = _gtk_widget_get_surface (widget); - - gdk_surface_begin_resize_drag (toplevel, edge, button, x, y, timestamp); + gdk_surface_begin_resize_drag (priv->surface, edge, button, x, y, timestamp); } /** @@ -8492,16 +8423,12 @@ gtk_window_begin_move_drag (GtkWindow *window, gint y, guint32 timestamp) { - GtkWidget *widget; - GdkSurface *toplevel; + GtkWindowPrivate *priv = gtk_window_get_instance_private (window); g_return_if_fail (GTK_IS_WINDOW (window)); - widget = GTK_WIDGET (window); - g_return_if_fail (gtk_widget_get_visible (widget)); + g_return_if_fail (gtk_widget_get_visible (GTK_WIDGET (window))); - toplevel = _gtk_widget_get_surface (widget); - - gdk_surface_begin_move_drag (toplevel, button, x, y, timestamp); + gdk_surface_begin_move_drag (priv->surface, button, x, y, timestamp); } /** @@ -8568,18 +8495,15 @@ gtk_window_set_theme_variant (GtkWindow *window) { #ifdef GDK_WINDOWING_X11 GtkWindowPrivate *priv = gtk_window_get_instance_private (window); - GdkSurface *surface; gboolean dark_theme_requested; g_object_get (gtk_settings_get_for_display (priv->display), "gtk-application-prefer-dark-theme", &dark_theme_requested, NULL); - surface = _gtk_widget_get_surface (GTK_WIDGET (window)); - - if (GDK_IS_X11_SURFACE (surface)) - gdk_x11_surface_set_theme_variant (surface, - dark_theme_requested ? "dark" : NULL); + if (GDK_IS_X11_SURFACE (priv->surface)) + gdk_x11_surface_set_theme_variant (priv->surface, + dark_theme_requested ? "dark" : NULL); #endif } @@ -9199,12 +9123,10 @@ gtk_window_set_has_user_ref_count (GtkWindow *window, static void ensure_state_flag_backdrop (GtkWidget *widget) { - GdkSurface *surface; + GtkWindowPrivate *priv = gtk_window_get_instance_private (GTK_WINDOW (widget)); gboolean surface_focused = TRUE; - surface = _gtk_widget_get_surface (widget); - - surface_focused = gdk_surface_get_state (surface) & GDK_SURFACE_STATE_FOCUSED; + surface_focused = gdk_surface_get_state (priv->surface) & GDK_SURFACE_STATE_FOCUSED; if (!surface_focused) gtk_widget_set_state_flags (widget, GTK_STATE_FLAG_BACKDROP, FALSE); @@ -9640,13 +9562,13 @@ gtk_window_export_handle (GtkWindow *window, GtkWindowHandleExported callback, gpointer user_data) { + GtkWindowPrivate *priv = gtk_window_get_instance_private (window); #ifdef GDK_WINDOWING_X11 if (GDK_IS_X11_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) { - GdkSurface *surface = gtk_widget_get_surface (GTK_WIDGET (window)); char *handle_str; - guint32 xid = (guint32) gdk_x11_surface_get_xid (surface); + guint32 xid = (guint32) gdk_x11_surface_get_xid (priv->surface); handle_str = g_strdup_printf ("x11:%x", xid); callback (window, handle_str, user_data); @@ -9658,7 +9580,6 @@ gtk_window_export_handle (GtkWindow *window, #ifdef GDK_WINDOWING_WAYLAND if (GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) { - GdkSurface *surface = gtk_widget_get_surface (GTK_WIDGET (window)); WaylandSurfaceHandleExportedData *data; data = g_new0 (WaylandSurfaceHandleExportedData, 1); @@ -9666,7 +9587,7 @@ gtk_window_export_handle (GtkWindow *window, data->callback = callback; data->user_data = user_data; - if (!gdk_wayland_surface_export_handle (surface, + if (!gdk_wayland_surface_export_handle (priv->surface, wayland_surface_handle_exported, data, g_free)) @@ -9689,12 +9610,12 @@ gtk_window_export_handle (GtkWindow *window, void gtk_window_unexport_handle (GtkWindow *window) { + GtkWindowPrivate *priv = gtk_window_get_instance_private (window); + #ifdef GDK_WINDOWING_WAYLAND if (GDK_IS_WAYLAND_DISPLAY (gtk_widget_get_display (GTK_WIDGET (window)))) { - GdkSurface *surface = gtk_widget_get_surface (GTK_WIDGET (window)); - - gdk_wayland_surface_unexport_handle (surface); + gdk_wayland_surface_unexport_handle (priv->surface); } #endif } @@ -9901,14 +9822,14 @@ update_cursor (GtkWindow *toplevel, GdkCursor *cursor = NULL; GdkSurface *surface; - surface = gtk_widget_get_surface (target); + surface = gtk_native_get_surface (gtk_widget_get_native (target)); if (grab_widget && !gtk_widget_is_ancestor (target, grab_widget)) { /* Outside the grab widget, cursor stays to whatever the grab * widget says. */ - if (gtk_widget_get_surface (grab_widget) == gtk_widget_get_surface (target)) + if (gtk_native_get_surface (gtk_widget_get_native (grab_widget)) == surface) cursor = gtk_widget_get_cursor (grab_widget); else cursor = NULL; @@ -9924,7 +9845,7 @@ update_cursor (GtkWindow *toplevel, break; /* Don't inherit cursors across surfaces */ - if (surface != gtk_widget_get_surface (target)) + if (surface != gtk_native_get_surface (gtk_widget_get_native (target))) break; cursor = gtk_widget_get_cursor (target); diff --git a/gtk/inspector/fpsoverlay.c b/gtk/inspector/fpsoverlay.c index 092e5b30c5..dadf1ffe14 100644 --- a/gtk/inspector/fpsoverlay.c +++ b/gtk/inspector/fpsoverlay.c @@ -24,6 +24,7 @@ #include "gtkintl.h" #include "gtkwidget.h" #include "gtkwindow.h" +#include "gtknative.h" /* duration before we start fading in us */ #define GDK_FPS_OVERLAY_LINGER_DURATION (1000 * 1000) @@ -140,7 +141,7 @@ gtk_fps_overlay_force_redraw (GtkWidget *widget, GdkFrameClock *clock, gpointer unused) { - gdk_surface_queue_expose (gtk_widget_get_surface (widget)); + gdk_surface_queue_expose (gtk_native_get_surface (gtk_widget_get_native (widget))); return G_SOURCE_REMOVE; } @@ -243,7 +244,7 @@ gtk_fps_overlay_queue_draw (GtkInspectorOverlay *overlay) g_hash_table_iter_init (&iter, self->infos); while (g_hash_table_iter_next (&iter, &widget, NULL)) - gdk_surface_queue_expose (gtk_widget_get_surface (widget)); + gdk_surface_queue_expose (gtk_native_get_surface (gtk_widget_get_native (widget))); } static void diff --git a/gtk/inspector/inspect-button.c b/gtk/inspector/inspect-button.c index 0ebb226845..e7538e8d10 100644 --- a/gtk/inspector/inspect-button.c +++ b/gtk/inspector/inspect-button.c @@ -52,7 +52,7 @@ find_widget_at_pointer (GdkDevice *device) { double x, y; - gdk_surface_get_device_position (gtk_widget_get_surface (widget), + gdk_surface_get_device_position (gtk_native_get_surface (GTK_NATIVE (widget)), device, &x, &y, NULL); widget = gtk_widget_pick (widget, x, y, GTK_PICK_INSENSITIVE|GTK_PICK_NON_TARGETABLE); @@ -99,7 +99,7 @@ on_inspect_widget (GtkInspectorWindow *iw, { GtkWidget *widget; - gdk_surface_raise (gtk_widget_get_surface (GTK_WIDGET (iw))); + gdk_surface_raise (gtk_native_get_surface (GTK_NATIVE (iw))); clear_flash (iw); @@ -159,7 +159,7 @@ deemphasize_window (GtkWidget *window) cairo_region_destroy (region); } else - gdk_surface_lower (gtk_widget_get_surface (window)); + gdk_surface_lower (gtk_native_get_surface (GTK_NATIVE (window))); } static void @@ -174,7 +174,7 @@ reemphasize_window (GtkWidget *window) gtk_widget_input_shape_combine_region (window, NULL); } else - gdk_surface_raise (gtk_widget_get_surface (window)); + gdk_surface_raise (gtk_native_get_surface (GTK_NATIVE (window))); } static gboolean handle_event (GtkInspectorWindow *iw, GdkEvent *event); diff --git a/gtk/inspector/updatesoverlay.c b/gtk/inspector/updatesoverlay.c index 913476dcbf..46e1661b81 100644 --- a/gtk/inspector/updatesoverlay.c +++ b/gtk/inspector/updatesoverlay.c @@ -23,6 +23,7 @@ #include "gtkintl.h" #include "gtkwidget.h" +#include "gtknative.h" #include "gsk/gskrendernodeprivate.h" @@ -107,7 +108,7 @@ gtk_widget_updates_tick (GtkWidget *widget, gtk_update_free (draw); } - gdk_surface_queue_expose (gtk_widget_get_surface (widget)); + gdk_surface_queue_expose (gtk_native_get_surface (gtk_widget_get_native (widget))); if (draw) { g_queue_push_tail (updates->updates, draw); @@ -239,7 +240,7 @@ gtk_updates_overlay_queue_draw (GtkInspectorOverlay *overlay) g_hash_table_iter_init (&iter, self->toplevels); while (g_hash_table_iter_next (&iter, &widget, NULL)) - gdk_surface_queue_expose (gtk_widget_get_surface (widget)); + gdk_surface_queue_expose (gtk_native_get_surface (gtk_widget_get_native (widget))); } static void diff --git a/tests/testfullscreen.c b/tests/testfullscreen.c index 0ed79b91c2..64d8e31d20 100644 --- a/tests/testfullscreen.c +++ b/tests/testfullscreen.c @@ -25,7 +25,7 @@ set_fullscreen_monitor_cb (GtkWidget *widget, gpointer user_data) GdkFullscreenMode mode = (GdkFullscreenMode) GPOINTER_TO_INT (user_data); GdkSurface *window; - window = gtk_widget_get_surface (gtk_widget_get_parent (widget)); + window = gtk_native_get_surface (gtk_widget_get_native (widget)); gdk_surface_set_fullscreen_mode (window, mode); gdk_surface_fullscreen (window); } @@ -35,7 +35,7 @@ remove_fullscreen_cb (GtkWidget *widget, gpointer user_data) { GdkSurface *window; - window = gtk_widget_get_surface (gtk_widget_get_parent (widget)); + window = gtk_native_get_surface (gtk_widget_get_native (widget)); gdk_surface_unfullscreen (window); } diff --git a/tests/testgtk.c b/tests/testgtk.c index c3664b0139..4e0146718a 100644 --- a/tests/testgtk.c +++ b/tests/testgtk.c @@ -1245,7 +1245,7 @@ create_pixbuf (GtkWidget *widget) button = gtk_button_new (); gtk_container_add (GTK_CONTAINER (box2), button); - gdk_surface = gtk_widget_get_surface (window); + gdk_surface = gtk_native_get_surface (GTK_NATIVE (window)); pixbufwid = new_pixbuf ("test.xpm", gdk_surface); @@ -4855,7 +4855,7 @@ create_wmhints (GtkWidget *widget) gtk_widget_realize (window); - gdk_surface = gtk_widget_get_surface (window); + gdk_surface = gtk_native_get_surface (GTK_NATIVE (window)); pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **) openfile); texture = gdk_texture_new_for_pixbuf (pixbuf); @@ -4963,7 +4963,7 @@ tracking_label (GtkWidget *window) gtk_container_add (GTK_CONTAINER (hbox), label); g_object_set_data (G_OBJECT (label), "title", (gpointer)gtk_window_get_title (GTK_WINDOW (window))); - g_signal_connect (gtk_widget_get_surface (window), "notify::state", + g_signal_connect (gtk_native_get_surface (GTK_NATIVE (window)), "notify::state", G_CALLBACK (surface_state_callback), label); diff --git a/tests/testwindowdrag.c b/tests/testwindowdrag.c index 6b15731811..fdae5d19fc 100644 --- a/tests/testwindowdrag.c +++ b/tests/testwindowdrag.c @@ -18,7 +18,7 @@ start_resize (GtkGestureMultiPress *gesture, gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); - surface = gtk_widget_get_surface (widget); + surface = gtk_native_get_surface (gtk_widget_get_native (widget)); event = gtk_get_current_event (); gdk_event_get_button (event, &button); timestamp = gdk_event_get_time (event); @@ -63,7 +63,7 @@ start_move (GtkGestureMultiPress *gesture, gtk_gesture_set_state (GTK_GESTURE (gesture), GTK_EVENT_SEQUENCE_CLAIMED); - surface = gtk_widget_get_surface (widget); + surface = gtk_native_get_surface (gtk_widget_get_native (widget)); event = gtk_get_current_event (); gdk_event_get_button (event, &button); timestamp = gdk_event_get_time (event); diff --git a/tests/testwindowsize.c b/tests/testwindowsize.c index 22a8b4d792..ef8a5ddc31 100644 --- a/tests/testwindowsize.c +++ b/tests/testwindowsize.c @@ -65,7 +65,7 @@ show_dialog (void) gtk_dialog_add_action_widget (GTK_DIALOG (dialog), label, GTK_RESPONSE_HELP); gtk_widget_realize (dialog); - g_signal_connect (gtk_widget_get_surface (dialog), "size-changed", + g_signal_connect (gtk_native_get_surface (GTK_NATIVE (dialog)), "size-changed", G_CALLBACK (size_changed_cb), label); gtk_dialog_run (GTK_DIALOG (dialog)); diff --git a/testsuite/gtk/gestures.c b/testsuite/gtk/gestures.c index 5591f1ad48..1f80eeb7a0 100644 --- a/testsuite/gtk/gestures.c +++ b/testsuite/gtk/gestures.c @@ -26,16 +26,18 @@ point_press (PointState *point, GdkDisplay *display; GdkDevice *device; GdkSeat *seat; + GdkSurface *surface; GdkEvent *ev; display = gtk_widget_get_display (widget); seat = gdk_display_get_default_seat (display); device = gdk_seat_get_pointer (seat); + surface = gtk_native_get_surface (gtk_widget_get_native (widget)); if (point == &mouse_state) { ev = gdk_event_new (GDK_BUTTON_PRESS); - ev->any.surface = g_object_ref (gtk_widget_get_surface (widget)); + ev->any.surface = g_object_ref (surface); ev->button.time = GDK_CURRENT_TIME; ev->button.x = point->x; ev->button.y = point->y; @@ -47,7 +49,7 @@ point_press (PointState *point, else { ev = gdk_event_new (GDK_TOUCH_BEGIN); - ev->any.surface = g_object_ref (gtk_widget_get_surface (widget)); + ev->any.surface = g_object_ref (surface); ev->touch.time = GDK_CURRENT_TIME; ev->touch.x = point->x; ev->touch.y = point->y; @@ -75,11 +77,13 @@ point_update (PointState *point, GdkDisplay *display; GdkDevice *device; GdkSeat *seat; + GdkSurface *surface; GdkEvent *ev; display = gtk_widget_get_display (widget); seat = gdk_display_get_default_seat (display); device = gdk_seat_get_pointer (seat); + surface = gtk_native_get_surface (gtk_widget_get_native (widget)); point->x = x; point->y = y; @@ -87,7 +91,7 @@ point_update (PointState *point, if (point == &mouse_state) { ev = gdk_event_new (GDK_MOTION_NOTIFY); - ev->any.surface = g_object_ref (gtk_widget_get_surface (widget)); + ev->any.surface = g_object_ref (surface); ev->button.time = GDK_CURRENT_TIME; ev->motion.x = x; ev->motion.y = y; @@ -99,7 +103,7 @@ point_update (PointState *point, return; ev = gdk_event_new (GDK_TOUCH_UPDATE); - ev->any.surface = g_object_ref (gtk_widget_get_surface (widget)); + ev->any.surface = g_object_ref (surface); ev->touch.time = GDK_CURRENT_TIME; ev->touch.x = x; ev->touch.y = y; @@ -124,6 +128,7 @@ point_release (PointState *point, GdkDisplay *display; GdkDevice *device; GdkSeat *seat; + GdkSurface *surface; GdkEvent *ev; if (point->widget == NULL) @@ -132,6 +137,7 @@ point_release (PointState *point, display = gtk_widget_get_display (point->widget); seat = gdk_display_get_default_seat (display); device = gdk_seat_get_pointer (seat); + surface = gtk_native_get_surface (gtk_widget_get_native (point->widget)); if (!point->widget) return; @@ -142,7 +148,7 @@ point_release (PointState *point, return; ev = gdk_event_new (GDK_BUTTON_RELEASE); - ev->any.surface = g_object_ref (gtk_widget_get_surface (point->widget)); + ev->any.surface = g_object_ref (surface); ev->button.time = GDK_CURRENT_TIME; ev->button.x = point->x; ev->button.y = point->y; @@ -153,7 +159,7 @@ point_release (PointState *point, else { ev = gdk_event_new (GDK_TOUCH_END); - ev->any.surface = g_object_ref (gtk_widget_get_surface (point->widget)); + ev->any.surface = g_object_ref (surface); ev->touch.time = GDK_CURRENT_TIME; ev->touch.x = point->x; ev->touch.y = point->y;