Fix T48171: activating spacebar search menu over text button activates it or shows...
authorBrecht Van Lommel <brechtvanlommel@gmail.com>
Sat, 16 Apr 2016 22:22:42 +0000 (00:22 +0200)
committerBrecht Van Lommel <brechtvanlommel@gmail.com>
Sat, 16 Apr 2016 22:40:01 +0000 (00:40 +0200)
source/blender/editors/interface/interface_handlers.c
source/blender/editors/interface/interface_regions.c
source/blender/windowmanager/intern/wm_event_system.c

index d59d29363e6454ebaab17cca7422736da6094cab..6c961179c6f1ff39803f8ab92b7a2d327de85089 100644 (file)
@@ -6537,7 +6537,6 @@ static void menu_add_shortcut_cancel(struct bContext *C, void *arg1)
 static void popup_change_shortcut_func(bContext *C, void *arg1, void *UNUSED(arg2))
 {
        uiBut *but = (uiBut *)arg1;
-       UI_but_tooltip_timer_remove(C, but);
        UI_popup_block_invoke(C, menu_change_shortcut, but);
 }
 
@@ -6559,7 +6558,6 @@ static void remove_shortcut_func(bContext *C, void *arg1, void *UNUSED(arg2))
 static void popup_add_shortcut_func(bContext *C, void *arg1, void *UNUSED(arg2))
 {
        uiBut *but = (uiBut *)arg1;
-       UI_but_tooltip_timer_remove(C, but);
        UI_popup_block_ex(C, menu_add_shortcut, NULL, menu_add_shortcut_cancel, but);
 }
 
@@ -6608,8 +6606,6 @@ static bool ui_but_menu(bContext *C, uiBut *but)
                return false;
        }
        
-       UI_but_tooltip_timer_remove(C, but);
-
        /* highly unlikely getting the label ever fails */
        UI_but_string_info_get(C, but, &label, NULL);
 
index abd395afbe03ed082a26fd5ed7e6e9c7f564b3de..821d8b15595c7adfd919c47d1b40c71c595d2831 100644 (file)
@@ -1965,11 +1965,17 @@ uiPopupBlockHandle *ui_popup_block_create(
         void *arg)
 {
        wmWindow *window = CTX_wm_window(C);
+       uiBut *activebut = UI_context_active_but_get(C);
        static ARegionType type;
        ARegion *ar;
        uiBlock *block;
        uiPopupBlockHandle *handle;
 
+       /* disable tooltips from buttons below */
+       if (activebut) {
+               UI_but_tooltip_timer_remove(C, activebut);
+       }
+
        /* create handle */
        handle = MEM_callocN(sizeof(uiPopupBlockHandle), "uiPopupBlockHandle");
 
index 24d4144ec176288e1ead36ec89ac708a1619cec9..d7ece0c7c0b50bb748f2f6b6e9f817e1c394f4c6 100644 (file)
@@ -413,7 +413,7 @@ void wm_event_do_notifiers(bContext *C)
 static int wm_event_always_pass(wmEvent *event)
 {
        /* some events we always pass on, to ensure proper communication */
-       return ISTIMER(event->type) || (event->type == WINDEACTIVATE) || (event->type == EVT_BUT_OPEN);
+       return ISTIMER(event->type) || (event->type == WINDEACTIVATE);
 }
 
 /* ********************* ui handler ******************* */