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:
authorTon Roosendaal <ton@blender.org>2009-06-06 17:35:04 +0400
committerTon Roosendaal <ton@blender.org>2009-06-06 17:35:04 +0400
commit9d8fa4f959ff704e113d70ed713d1b8aec0ef014 (patch)
tree63795ef16cd527574925dc9cbe246ee74deed78a /source/blender/windowmanager
parent47ca5cbea26fb7562472a127db6181d134f46319 (diff)
2.5
Several usablity tweaks: - Search menu allows ScrollWheel to view items - Tooltip on button on bottom of window showed wrong - Tooltips were popping up while draggin (MMB) or scrolling (wheel). Now they stay away. - Stolen from Gimp (blame venomgfx for hint!): ScrollWheel allows to go over menu items and use number buttons, only on mouse-over. Note for devs: the WM_event_add_mousemove() call (to add a fake event to bring UI back alive after view changes) now works much more reliably. It ensures the mouse move is only handled after all notifiers/redraws were done.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 53f70f6ab8f..f5c8e535002 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -1088,6 +1088,17 @@ void wm_event_do_handlers(bContext *C)
wm_event_free(event);
}
+
+ /* only add mousemove when queue was read entirely */
+ if(win->addmousemove) {
+ wmEvent event= *(win->eventstate);
+ event.type= MOUSEMOVE;
+ event.prevx= event.x;
+ event.prevy= event.y;
+ wm_event_add(win, &event);
+ win->addmousemove= 0;
+ }
+
CTX_wm_window_set(C, NULL);
}
}
@@ -1238,11 +1249,8 @@ void WM_event_remove_ui_handler(ListBase *handlers, wmUIHandlerFunc func, wmUIHa
void WM_event_add_mousemove(bContext *C)
{
wmWindow *window= CTX_wm_window(C);
- wmEvent event= *(window->eventstate);
- event.type= MOUSEMOVE;
- event.prevx= event.x;
- event.prevy= event.y;
- wm_event_add(window, &event);
+
+ window->addmousemove= 1;
}
/* for modal callbacks, check configuration for how to interpret exit with tweaks */