summaryrefslogtreecommitdiff
path: root/gtksourceview/gtksourceview-assistants.c
diff options
context:
space:
mode:
authorChristian Hergert <chergert@redhat.com>2022-05-13 19:12:17 -0700
committerChristian Hergert <chergert@redhat.com>2022-05-13 19:37:52 -0700
commit82ac96b55fcde0c8b3623c68dfb4ae04644db350 (patch)
tree96974bc2149de80bb8f0cc57e868b8fe25ff4aa6 /gtksourceview/gtksourceview-assistants.c
parent1652a12271eda38e655aece4dfa2eec45725941b (diff)
downloadgtksourceview-82ac96b55fcde0c8b3623c68dfb4ae04644db350.tar.gz
assistants: measure and present together
And avoid if there is no surface yet or not visible.
Diffstat (limited to 'gtksourceview/gtksourceview-assistants.c')
-rw-r--r--gtksourceview/gtksourceview-assistants.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/gtksourceview/gtksourceview-assistants.c b/gtksourceview/gtksourceview-assistants.c
index 4991765e..5f7c6639 100644
--- a/gtksourceview/gtksourceview-assistants.c
+++ b/gtksourceview/gtksourceview-assistants.c
@@ -103,7 +103,14 @@ _gtk_source_view_assistants_size_allocate (GtkSourceViewAssistants *assistants,
g_assert (GTK_SOURCE_IS_ASSISTANT (assistant));
- gtk_popover_present (GTK_POPOVER (assistant));
+ if (gtk_widget_get_visible (GTK_WIDGET (assistant)) &&
+ gtk_native_get_surface (GTK_NATIVE (assistant)) != NULL)
+ {
+ GtkRequisition req;
+
+ gtk_widget_get_preferred_size (GTK_WIDGET (assistant), NULL, &req);
+ gtk_popover_present (GTK_POPOVER (assistant));
+ }
}
}