[gimp/gimp-2-10] app: append insensitive reason to GimpAction proxy tooltip.
- From: Jacob Boerema <jboerema src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp/gimp-2-10] app: append insensitive reason to GimpAction proxy tooltip.
- Date: Fri, 23 Apr 2021 19:03:42 +0000 (UTC)
commit bf9a2927234715a04876e176b5dfc9530b20f43e
Author: Jehan <jehan girinstud io>
Date: Fri Apr 23 19:45:48 2021 +0200
app: append insensitive reason to GimpAction proxy tooltip.
With my previous commit, I improved the search action display and search
algorithm (which was returning wrong results), but we had lost showing
the non-sensitive reason in menu item tooltips. This fixes it, by
actually appending the reason, but only in the end, on the GtkWidget
tooltip (not in the action's tooltip itself).
(cherry picked from commit 13a02aea236821707e2636f016ff415f1c4cb10c)
app/widgets/gimpaction.c | 30 ++++++++++++++++++++++++------
1 file changed, 24 insertions(+), 6 deletions(-)
---
diff --git a/app/widgets/gimpaction.c b/app/widgets/gimpaction.c
index 88cae45fa0..b96af124a2 100644
--- a/app/widgets/gimpaction.c
+++ b/app/widgets/gimpaction.c
@@ -368,12 +368,30 @@ static void
gimp_action_set_proxy_tooltip (GimpAction *action,
GtkWidget *proxy)
{
- const gchar *tooltip = gimp_action_get_tooltip (action);
-
- if (tooltip)
- gimp_help_set_help_data (proxy, tooltip,
- g_object_get_qdata (G_OBJECT (proxy),
- GIMP_HELP_ID));
+ const gchar *tooltip;
+ const gchar *reason = NULL;
+ gchar *escaped_reason = NULL;
+ gchar *markup;
+
+ tooltip = gimp_action_get_tooltip (action);
+
+ gimp_action_get_sensitive (action, &reason);
+ if (reason)
+ escaped_reason = g_markup_escape_text (reason, -1);
+
+ markup = g_strdup_printf ("%s%s" /* Action tooltip */
+ "<i><span weight='light'>%s</span></i>", /* Inactive reason */
+ tooltip,
+ escaped_reason && tooltip ? "\n" : "",
+ escaped_reason);
+
+ if (tooltip || escaped_reason)
+ gimp_help_set_help_data_with_markup (proxy, markup,
+ g_object_get_qdata (G_OBJECT (proxy),
+ GIMP_HELP_ID));
+
+ g_free (escaped_reason);
+ g_free (markup);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]