From: Benjamin Otte Date: Fri, 10 May 2019 03:09:12 +0000 (+0200) Subject: node-editor: Report all errors in tooltip X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~20^2~1670^2~7 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=4bccd17941e2513ceac9221edf94d9ba920c92d6;p=gtk4.git node-editor: Report all errors in tooltip Don't just report the first one. --- diff --git a/demos/node-editor/node-editor-window.c b/demos/node-editor/node-editor-window.c index bb6c37201c..1b853d4984 100644 --- a/demos/node-editor/node-editor-window.c +++ b/demos/node-editor/node-editor-window.c @@ -265,6 +265,7 @@ text_view_query_tooltip_cb (GtkWidget *widget, { GtkTextIter iter; guint i; + GString *text; if (keyboard_tip) { @@ -282,6 +283,8 @@ text_view_query_tooltip_cb (GtkWidget *widget, gtk_text_view_get_iter_at_position (GTK_TEXT_VIEW (self->text_view), &iter, &trailing, bx, by); } + text = g_string_new (""); + for (i = 0; i < self->errors->len; i ++) { const TextViewError *e = &g_array_index (self->errors, TextViewError, i); @@ -292,12 +295,23 @@ text_view_query_tooltip_cb (GtkWidget *widget, if (gtk_text_iter_in_range (&iter, &start_iter, &end_iter)) { - gtk_tooltip_set_text (tooltip, e->message); - return TRUE; + if (text->len > 0) + g_string_append (text, "\n"); + g_string_append (text, e->message); } } - return FALSE; + if (text->len > 0) + { + gtk_tooltip_set_text (tooltip, text->str); + g_string_free (text, TRUE); + return TRUE; + } + else + { + g_string_free (text, TRUE); + return FALSE; + } } gboolean