[Bf-blender-cvs] [537db96fb7e] master: GHOST/NDOF: don't send button events when there is no active window
Campbell Barton
noreply at git.blender.org
Sun Jan 22 11:07:48 CET 2023
Commit: 537db96fb7e35c3dbc731df3546a842f7ec606a4
Author: Campbell Barton
Date: Sun Jan 22 21:06:10 2023 +1100
Branches: master
https://developer.blender.org/rB537db96fb7e35c3dbc731df3546a842f7ec606a4
GHOST/NDOF: don't send button events when there is no active window
NDOF events without an active window were ignored and printed
warnings in the console.
===================================================================
M intern/ghost/intern/GHOST_NDOFManager.cpp
===================================================================
diff --git a/intern/ghost/intern/GHOST_NDOFManager.cpp b/intern/ghost/intern/GHOST_NDOFManager.cpp
index 5484da82a18..ffd9c57803c 100644
--- a/intern/ghost/intern/GHOST_NDOFManager.cpp
+++ b/intern/ghost/intern/GHOST_NDOFManager.cpp
@@ -464,12 +464,17 @@ void GHOST_NDOFManager::updateButton(int button_number, bool press, uint64_t tim
ndof_button_names[button]);
GHOST_IWindow *window = system_.getWindowManager()->getActiveWindow();
- const GHOST_TKey key = ghost_map_keyboard_from_ndof_buttom(button);
- if (key != GHOST_kKeyUnknown) {
- sendKeyEvent(key, press, time, window);
- }
- else {
- sendButtonEvent(button, press, time, window);
+
+ /* Delivery will fail, so don't bother sending.
+ * Do, however update the buttons internal depressed state. */
+ if (window != nullptr) {
+ const GHOST_TKey key = ghost_map_keyboard_from_ndof_buttom(button);
+ if (key != GHOST_kKeyUnknown) {
+ sendKeyEvent(key, press, time, window);
+ }
+ else {
+ sendButtonEvent(button, press, time, window);
+ }
}
int mask = 1 << button_number;
@@ -547,9 +552,11 @@ bool GHOST_NDOFManager::sendMotionEvent()
GHOST_IWindow *window = system_.getWindowManager()->getActiveWindow();
+ /* Delivery will fail, so don't bother sending. */
if (window == nullptr) {
- motion_state_ = GHOST_kNotStarted; /* Avoid large `dt` times when changing windows. */
- return false; /* Delivery will fail, so don't bother sending. */
+ /* Avoid large `dt` times when changing windows. */
+ motion_state_ = GHOST_kNotStarted;
+ return false;
}
GHOST_EventNDOFMotion *event = new GHOST_EventNDOFMotion(motion_time_, window);
More information about the Bf-blender-cvs
mailing list