diff --git a/gtk/gtkinvisible.c b/gtk/gtkinvisible.c index 9b9b454f4b..340780481e 100644 --- a/gtk/gtkinvisible.c +++ b/gtk/gtkinvisible.c @@ -222,11 +222,11 @@ gtk_invisible_realize (GtkWidget *widget) { GdkSurface *surface; - gtk_widget_set_realized (widget, TRUE); - surface = gdk_surface_new_temp (gtk_widget_get_display (widget)); gtk_widget_set_surface (widget, surface); gtk_widget_register_surface (widget, surface); + + GTK_WIDGET_CLASS (gtk_invisible_parent_class)->realize (widget); } static void diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c index 7d262f65e8..1ec918f299 100644 --- a/gtk/gtkpopover.c +++ b/gtk/gtkpopover.c @@ -501,7 +501,8 @@ gtk_popover_realize (GtkWidget *widget) gtk_widget_set_surface (widget, surface); gtk_widget_register_surface (widget, surface); - gtk_widget_set_realized (widget, TRUE); + + GTK_WIDGET_CLASS (gtk_popover_parent_class)->realize (widget); } static void diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index d8ba708af9..72ec97cac6 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -6858,7 +6858,8 @@ gtk_window_realize (GtkWidget *widget) gtk_widget_set_surface (widget, surface); g_signal_connect_swapped (surface, "notify::state", G_CALLBACK (surface_state_changed), widget); gtk_widget_register_surface (widget, surface); - gtk_widget_set_realized (widget, TRUE); + + GTK_WIDGET_CLASS (gtk_window_parent_class)->realize (widget); if (priv->renderer == NULL) priv->renderer = gsk_renderer_new_for_surface (surface);