[gtksourceview/gtksourceview-5-4] hovercontext: track success count from providers



commit 22912e0d958da726cf8524fe4b0d958b8876799c
Author: Christian Hergert <chergert redhat com>
Date:   Wed Apr 20 18:22:37 2022 -0700

    hovercontext: track success count from providers
    
    Only return success if at least one provider suceeded.

 gtksourceview/gtksourcehovercontext.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)
---
diff --git a/gtksourceview/gtksourcehovercontext.c b/gtksourceview/gtksourcehovercontext.c
index 36ef73c8..30b7a748 100644
--- a/gtksourceview/gtksourcehovercontext.c
+++ b/gtksourceview/gtksourcehovercontext.c
@@ -62,6 +62,7 @@ G_DEFINE_TYPE (GtkSourceHoverContext, gtk_source_hover_context, G_TYPE_OBJECT)
 typedef struct
 {
        guint n_active;
+       guint n_success;
 } Populate;
 
 static void
@@ -239,10 +240,24 @@ gtk_source_hover_context_populate_cb (GObject      *object,
 
                g_clear_error (&error);
        }
+       else
+       {
+               state->n_success++;
+       }
 
        if (--state->n_active == 0)
        {
-               g_task_return_boolean (task, TRUE);
+               if (state->n_success > 0)
+               {
+                       g_task_return_boolean (task, TRUE);
+               }
+               else
+               {
+                       g_task_return_new_error (task,
+                                                G_IO_ERROR,
+                                                G_IO_ERROR_NOT_SUPPORTED,
+                                                "No hover providers populated the context");
+               }
        }
 
        g_object_unref (task);


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