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 13a02aea23)
This commit is contained in:
Jehan
2021-04-23 19:45:48 +02:00
committed by Jacob Boerema
parent c52aa7dc2c
commit bf9a292723

View File

@ -368,12 +368,30 @@ static void
gimp_action_set_proxy_tooltip (GimpAction *action,
GtkWidget *proxy)
{
const gchar *tooltip = gimp_action_get_tooltip (action);
const gchar *tooltip;
const gchar *reason = NULL;
gchar *escaped_reason = NULL;
gchar *markup;
if (tooltip)
gimp_help_set_help_data (proxy, tooltip,
g_object_get_qdata (G_OBJECT (proxy),
GIMP_HELP_ID));
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