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:
@ -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
|
||||
|
Reference in New Issue
Block a user