diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 14 | ||||
-rw-r--r-- | source/blender/windowmanager/WM_api.h | 1 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_tooltip.c | 9 |
3 files changed, 19 insertions, 5 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 86c73b72620..00828bd0fdf 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -7319,14 +7319,18 @@ static void button_activate_init(bContext *C, ARegion *ar, uiBut *but, uiButtonA ui_numedit_set_active(but); } -#if 0 if (UI_but_has_tooltip_label(but)) { /* Show a label for this button. */ - WM_tooltip_immediate_init( - C, CTX_wm_window(C), ar, - ui_but_tooltip_init); + bScreen *sc = WM_window_get_active_screen(data->window); + if ((PIL_check_seconds_timer() - WM_tooltip_time_closed()) < 0.1) { + WM_tooltip_immediate_init( + C, CTX_wm_window(C), ar, + ui_but_tooltip_init); + if (sc->tool_tip) { + sc->tool_tip->pass = 1; + } + } } -#endif } static void button_activate_exit( diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index 4a48aec2d68..65cb0f956a5 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -641,6 +641,7 @@ void WM_tooltip_timer_clear(struct bContext *C, struct wmWindow *win); void WM_tooltip_clear(struct bContext *C, struct wmWindow *win); void WM_tooltip_init(struct bContext *C, struct wmWindow *win); void WM_tooltip_refresh(struct bContext *C, struct wmWindow *win); +double WM_tooltip_time_closed(void); #ifdef __cplusplus } diff --git a/source/blender/windowmanager/intern/wm_tooltip.c b/source/blender/windowmanager/intern/wm_tooltip.c index dcf51c1d015..b0d621c2e44 100644 --- a/source/blender/windowmanager/intern/wm_tooltip.c +++ b/source/blender/windowmanager/intern/wm_tooltip.c @@ -37,6 +37,14 @@ #include "WM_api.h" #include "WM_types.h" +#include "PIL_time.h" + +static double g_tooltip_time_closed; +double WM_tooltip_time_closed(void) +{ + return g_tooltip_time_closed; +} + void WM_tooltip_immediate_init( bContext *C, wmWindow *win, ARegion *ar, wmTooltipInitFn init) @@ -95,6 +103,7 @@ void WM_tooltip_clear(bContext *C, wmWindow *win) if (screen->tool_tip->region) { UI_tooltip_free(C, screen, screen->tool_tip->region); screen->tool_tip->region = NULL; + g_tooltip_time_closed = PIL_check_seconds_timer(); } MEM_freeN(screen->tool_tip); screen->tool_tip = NULL; |