Source fixes for WinXP users:
Forgot to fix the window flashing ...
window.cpp:13:
Code: Select all
window->move(std::numeric_limits<signed>::max(), std::numeric_limits<signed>::max()); // :D
Seems to be quickly mapping print screen. It was giving me 0x2a and 0x37 messages. Apparently on XP 0x2a is also sent by the arrow keys, so I picked the wrong code to look for.
rawinput.cpp:57:
Code: Select all
map(0x0037, 2, keyboard<>::print_screen)
-mconsole was throwing a bunch of errors. Need:
ui_qt/Makefile:33:
I don't understand why lib file inclusion has to be in a certain order, but whatever.
Random musings:
Pause key returns 0x1d:4, 0x45:0. Num lock gives just 0x45:0. So detecting num lock by itself isn't worth the trouble. EDIT: meh. Cheap fix. Won't detect both held down at the same time, but who really uses num lock and pause as action buttons, anyway?
Code: Select all
map(0x001d, 4, keyboard<>::pause)
map(0x0045, 0, keyboard<>::num_lock)
if(state[keyboard<>::pause]) state[keyboard<>::num_lock] = false;
Spacebar is tough to map because it triggers the mouse context menu. Hmm ...
Seems to be acting weird on the last item when mapping F10 then F11/F12 in a group ... wtf? EDIT: oh yeah, F10 is an alternate to trigger the context menu, heh.
Does horizontal scroll stuff count as two buttons?
Depends on the mouse driver, I guess. If it maps them to buttons four and five, you're good. If it maps them to six and seven, then you can't use them.
Xorg / Linux maps buttons 4 and 5 to the scroll wheel up and down, instead of using a separate Z-delta. So horizontal scroll and side buttons won't work at all there.
You can actually catch more, but you have to have a native X11 window to catch events from, which I can't have due to ruby encapsulation from the UI.