UI: show ttips even if disabled, when holding alt key.
authorBastien Montagne <montagne29@wanadoo.fr>
Sat, 9 Aug 2014 20:04:55 +0000 (22:04 +0200)
committerBastien Montagne <montagne29@wanadoo.fr>
Sat, 9 Aug 2014 20:04:55 +0000 (22:04 +0200)
Patch by @sambler (Shane Ambler), with minor edits by myself (see also D727, T24055).
Reviewed feature-side by @carter2422 (Jonathan Williamson).

source/blender/editors/include/UI_interface.h
source/blender/editors/interface/interface_handlers.c
source/blender/makesrna/intern/rna_userdef.c

index 139e243eda52653eef95d64ca8cdaabce2742579..d7b4f7538108bea22113201f78894c6f0eebc860 100644 (file)
@@ -178,6 +178,7 @@ enum {
        UI_BUT_DRAG_MULTI    = (1 << 25),  /* edit this button as well as the active button (not just dragging) */
        UI_BUT_SCA_LINK_GREY = (1 << 26),  /* used to flag if sca links shoud be grey out */
        UI_BUT_HAS_SEP_CHAR  = (1 << 27),  /* but->str contains UI_SEP_CHAR, used for key shortcuts */
+       UI_OPTION_TOOLTIPS   = (1 << 28),  /* force show tooltips when holding option/alt if U's USER_TOOLTIPS is off */
 };
 
 #define UI_PANEL_WIDTH          340
index 1cf704ec6de9e4393b9825296ee2a240a4d2fa1b..68148d30136a949cd5aead929a55d9f1b19ddde3 100644 (file)
@@ -6656,7 +6656,7 @@ static void button_tooltip_timer_reset(bContext *C, uiBut *but)
                data->tooltiptimer = NULL;
        }
 
-       if (U.flag & USER_TOOLTIPS)
+       if ((U.flag & USER_TOOLTIPS) || (but->flag & UI_OPTION_TOOLTIPS))
                if (!but->block->tooltipdisabled)
                        if (!wm->drags.first)
                                data->tooltiptimer = WM_event_add_timer(data->wm, data->window, TIMER, BUTTON_TOOLTIP_DELAY);
@@ -7168,6 +7168,11 @@ static int ui_handle_button_over(bContext *C, const wmEvent *event, ARegion *ar)
        if (event->type == MOUSEMOVE) {
                but = ui_but_find_mouse_over(ar, event);
                if (but) {
+                       if (event->alt)
+                               /* display tooltips if holding alt on mouseover when tooltips are off in prefs */
+                               but->flag |= UI_OPTION_TOOLTIPS;
+                       else
+                               but->flag &= ~UI_OPTION_TOOLTIPS;
                        button_activate_init(C, ar, but, BUTTON_ACTIVATE_OVER);
                }
        }
index 812587049bb2460bba653559deeddbb735173bfd..12958297028c1977046c4079f60113c16f47d13c 100644 (file)
@@ -3154,7 +3154,7 @@ static void rna_def_userdef_view(BlenderRNA *brna)
        /* display */
        prop = RNA_def_property(srna, "show_tooltips", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_TOOLTIPS);
-       RNA_def_property_ui_text(prop, "Tooltips", "Display tooltips");
+       RNA_def_property_ui_text(prop, "Tooltips", "Display tooltips (when off hold Alt to force display)");
 
        prop = RNA_def_property(srna, "show_tooltips_python", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", USER_TOOLTIPS_PYTHON);