Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2013-09-24 03:31:42 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-09-24 03:31:42 +0400
commit74828cc609cd7071a4b3c24d3ad94ff7eccf54cb (patch)
tree1e0b0df627d11aa90fb3afe4fb631c2ce40ad8cf /source/blender/editors/screen/screen_edit.c
parentfb591ea9131548bdb9b29c4e353eba8ea5deb1bb (diff)
Fix #36783: click outside splash screen to close it would not highlight the
button under the mouse, and so clicking the button failed without first moving the mouse. Similar issues could happen with popups and switching windows. The problem is that a notifier was being used to deactivate possible other activated buttons, but as notifiers are delayed it could undo the correct activation too. If anyone notices hanging tooltips or other issues after this fix, please report them.
Diffstat (limited to 'source/blender/editors/screen/screen_edit.c')
-rw-r--r--source/blender/editors/screen/screen_edit.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index 10c2ecd6fd9..356db174c2f 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -1009,8 +1009,6 @@ void ED_screen_do_listen(bContext *C, wmNotifier *note)
win->screen->do_draw = TRUE;
break;
case NC_SCREEN:
- if (note->data == ND_SUBWINACTIVE)
- uiFreeActiveButtons(C, win->screen);
if (note->action == NA_EDITED)
win->screen->do_draw = win->screen->do_refresh = TRUE;
break;
@@ -1335,7 +1333,11 @@ void ED_screen_set_subwinactive(bContext *C, wmEvent *event)
/* notifier invokes freeing the buttons... causing a bit too much redraws */
if (oldswin != scr->subwinactive) {
region_cursor_set(win, scr->subwinactive, TRUE);
- WM_event_add_notifier(C, NC_SCREEN | ND_SUBWINACTIVE, scr);
+
+ /* this used to be a notifier, but needs to be done immediate
+ * because it can undo setting the right button as active due
+ * to delayed notifier handling */
+ uiFreeActiveButtons(C, win->screen);
}
else
region_cursor_set(win, scr->subwinactive, FALSE);