diff options
author | Christian Hergert <chergert@redhat.com> | 2022-09-21 20:06:16 -0700 |
---|---|---|
committer | Christian Hergert <chergert@redhat.com> | 2022-09-21 20:06:16 -0700 |
commit | 96dbf3ab82cdd33d3be5867d6442b9a4cc6f03f4 (patch) | |
tree | b5d12bb2bd0801fe9644d550ce54a60fa048ed6b | |
parent | c7b8600e7d0744acc86f6ceb5033268e625e983c (diff) | |
download | gtksourceview-96dbf3ab82cdd33d3be5867d6442b9a4cc6f03f4.tar.gz |
view: hide all assistants when unmapping
If you switch views in a stack for exmple, we expect to get child-visible
set to false, which then causes the view to unmap. Use that to ensure all
our assistants are dismissed.
-rw-r--r-- | gtksourceview/gtksourceview.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gtksourceview/gtksourceview.c b/gtksourceview/gtksourceview.c index 592235e6..f8f51835 100644 --- a/gtksourceview/gtksourceview.c +++ b/gtksourceview/gtksourceview.c @@ -519,6 +519,17 @@ gtk_source_view_size_allocate (GtkWidget *widget, } static void +gtk_source_view_unmap (GtkWidget *widget) +{ + GtkSourceView *view = GTK_SOURCE_VIEW (widget); + GtkSourceViewPrivate *priv = gtk_source_view_get_instance_private (view); + + GTK_WIDGET_CLASS (gtk_source_view_parent_class)->unmap (widget); + + _gtk_source_view_assistants_hide_all (&priv->assistants); +} + +static void gtk_source_view_class_init (GtkSourceViewClass *klass) { GObjectClass *object_class; @@ -538,6 +549,7 @@ gtk_source_view_class_init (GtkSourceViewClass *klass) widget_class->snapshot = gtk_source_view_snapshot; widget_class->css_changed = gtk_source_view_css_changed; widget_class->size_allocate = gtk_source_view_size_allocate; + widget_class->unmap = gtk_source_view_unmap; textview_class->move_cursor = gtk_source_view_move_cursor; textview_class->delete_from_cursor = gtk_source_view_delete_from_cursor; |