blender/intern
Dalai Felinto 0b03268c17 Patch [#26799] embedded blenderplayer not receiving keyboard input by Sebastian Korczak
(patch co-reviewed by Nathan Letwory)

Overview: GHOST using rawinput for keyboard input. GHOST window receives WM_INPUT only when it is the active window. Child window cannot be active, so when embedding blenderplayer, WM_INPUT is consumed by top level parent window (for Burster it is the web browser window). Patch register raw input device as 'inputsink' - it makes GHOST window receives all keyboard messages. Window procedure check if GHOST window is active or focused.

::TranslateMessage(&msg) generates WM_CHAR etc. messages from WM_KEYDOWN, WM_KEYUP etc. Because of using RawInput only WM_INPUT messages are processed, so we doesn't need WM_CHAR, WM_KEYDOWN etc. [this is why ::TranslateMessage is no longer getting called].

Note: It's responsibility of the parent window (aka the wrapper) to send WM_SETFOCUS to child window (embedded blenderplayer).
However some parent windows (e.g. webbrowsers) will not send WM_SETFOCUS to the child window when someone clicks on it.
In those cases the blenderplayer needs to be patched to call setFocus(&msg); in the event of WM_LBUTTONDOWN (see GHOST_SystemWin32.cpp)
2011-05-07 22:28:56 +00:00
..
audaspace Fix for [#26990] Loading file w packed audio crashes 2011-04-18 14:24:36 +00:00
boolop doxygen: intern/boolop tagged 2011-02-25 10:32:33 +00:00
bsp doxygen: intern/bsp tagged 2011-02-25 10:44:20 +00:00
container Code cleanup: remove source/kernel module, this wasn't really the kernel of 2011-05-06 20:18:42 +00:00
decimation doxygen: intern/decimation tagged 2011-02-25 10:47:28 +00:00
elbeem doxygen: intern/elbeem tagged 2011-02-25 10:51:01 +00:00
ghost Patch [#26799] embedded blenderplayer not receiving keyboard input by Sebastian Korczak 2011-05-07 22:28:56 +00:00
guardedalloc rename duplicate header defines & remove unused var. 2011-04-28 05:15:47 +00:00
iksolver doxygen: intern/iksolver tagged. Leaving out TNT, since we have it in multiple locations. 2011-02-25 11:43:19 +00:00
itasc clear some c++ warnings. 2011-03-27 07:56:29 +00:00
memutil includes for building with gcc 4.6 on fedora. 2011-03-30 16:14:54 +00:00
mikktspace use 'is None' rather then '== None' as suggested by python docs & mis-spelling. 2011-03-29 04:16:55 +00:00
moto doxygen: intern/moto tagged. 2011-02-25 11:49:19 +00:00
opennl rename duplicate header defines & remove unused var. 2011-04-28 05:15:47 +00:00
smoke doxygen: intern/smoke tagged. 2011-02-25 11:50:46 +00:00
string doxygen: intern/string tagged. 2011-02-25 11:51:19 +00:00
CMakeLists.txt Move mikktspace code to own library, so it is clear that it is also 2011-02-15 09:24:35 +00:00
SConscript Move mikktspace code to own library, so it is clear that it is also 2011-02-15 09:24:35 +00:00