[gnome-builder] symbol-tree: robustness improvements



commit 774502be399a4768241ae15507bcbdd0481bd5f2
Author: Christian Hergert <chergert redhat com>
Date:   Fri Mar 6 10:50:15 2020 -0800

    symbol-tree: robustness improvements
    
    Just be sure we have what we think we're working with to avoid casting
    to other page types.
    
    Related: !256

 src/plugins/symbol-tree/gbp-symbol-frame-addin.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
---
diff --git a/src/plugins/symbol-tree/gbp-symbol-frame-addin.c 
b/src/plugins/symbol-tree/gbp-symbol-frame-addin.c
index 3cc70004f..ee0d13379 100644
--- a/src/plugins/symbol-tree/gbp-symbol-frame-addin.c
+++ b/src/plugins/symbol-tree/gbp-symbol-frame-addin.c
@@ -185,6 +185,7 @@ gbp_symbol_frame_addin_cursor_moved (GbpSymbolFrameAddin *self,
                                      const GtkTextIter   *location,
                                      IdeBuffer           *buffer)
 {
+  IdeSourceView *view;
   GSource *source;
   gint64 ready_time;
 
@@ -192,7 +193,11 @@ gbp_symbol_frame_addin_cursor_moved (GbpSymbolFrameAddin *self,
   g_assert (location != NULL);
   g_assert (IDE_IS_BUFFER (buffer));
 
-  if (!gtk_widget_has_focus (GTK_WIDGET (ide_editor_page_get_view (IDE_EDITOR_PAGE (self->page)))))
+  if (!IDE_IS_EDITOR_PAGE (self->page))
+    return;
+
+  view = ide_editor_page_get_view (IDE_EDITOR_PAGE (self->page));
+  if (!gtk_widget_has_focus (GTK_WIDGET (view)))
     return;
 
   if (self->cursor_moved_handler == 0)
@@ -509,6 +514,8 @@ gbp_symbol_frame_addin_unload (IdeFrameAddin *addin,
   g_assert (GBP_IS_SYMBOL_FRAME_ADDIN (self));
   g_assert (IDE_IS_FRAME (stack));
 
+  self->page = NULL;
+
   gtk_widget_insert_action_group (GTK_WIDGET (stack), "symbol-tree", NULL);
 
   g_cancellable_cancel (self->cancellable);


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