[gtksourceview] view: hide all assistants when unmapping



commit 96dbf3ab82cdd33d3be5867d6442b9a4cc6f03f4
Author: Christian Hergert <chergert redhat com>
Date:   Wed Sep 21 20:06:16 2022 -0700

    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.

 gtksourceview/gtksourceview.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)
---
diff --git a/gtksourceview/gtksourceview.c b/gtksourceview/gtksourceview.c
index 592235e6..f8f51835 100644
--- a/gtksourceview/gtksourceview.c
+++ b/gtksourceview/gtksourceview.c
@@ -518,6 +518,17 @@ gtk_source_view_size_allocate (GtkWidget *widget,
        _gtk_source_view_assistants_size_allocate (&priv->assistants, width, height, baseline);
 }
 
+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)
 {
@@ -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;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]