fix x11 keyboard modifiers

master
Eduardo Bart 13 years ago
parent ef82fc1554
commit 911584e816

@ -41,7 +41,6 @@
[bart] find a way to add new widgets without focusing them [bart] find a way to add new widgets without focusing them
[bart] fix moving windows and tooltips conflicts [bart] fix moving windows and tooltips conflicts
[bart] break UILabel lines [bart] break UILabel lines
[bart] padding
[bart] review and make more error prone with more warnings [bart] review and make more error prone with more warnings
[bart] a real working border and background property in otui [bart] a real working border and background property in otui
[bart] reapply anchor styles when adding new childs [bart] reapply anchor styles when adding new childs

@ -1,12 +1,9 @@
function UIMap:onMouseRelease(mousePos, mouseButton) function UIMap:onMouseRelease(mousePos, mouseButton)
local tile = self:getTile(mousePos) local tile = self:getTile(mousePos)
if not tile then return false end if not tile then return false end
local keyboardModifiers = g_window.getKeyboardModifiers() local keyboardModifiers = g_window.getKeyboardModifiers()
print ("lol " .. keyboardModifiers)
if not Options.classicControl then if not Options.classicControl then
if keyboardModifiers == KeyboardNoModifier and mouseButton == MouseLeftButton then if keyboardModifiers == KeyboardNoModifier and mouseButton == MouseLeftButton then
-- auto walk -- auto walk
return true return true
@ -23,8 +20,7 @@ function UIMap:onMouseRelease(mousePos, mouseButton)
Game.attack(tile:getTopCreature()) Game.attack(tile:getTopCreature())
return true return true
end end
end end
return false return false
end end

@ -35,6 +35,7 @@ WIN32Window::WIN32Window()
m_maximized = false; m_maximized = false;
m_minimumSize = Size(16,16); m_minimumSize = Size(16,16);
m_size = m_minimumSize; m_size = m_minimumSize;
m_inputEvent.keyboardModifiers = 0;
m_keyMap[VK_ESCAPE] = Fw::KeyEscape; m_keyMap[VK_ESCAPE] = Fw::KeyEscape;
m_keyMap[VK_TAB] = Fw::KeyTab; m_keyMap[VK_TAB] = Fw::KeyTab;

@ -37,6 +37,7 @@ X11Window::X11Window()
m_screen = 0; m_screen = 0;
m_wmDelete = 0; m_wmDelete = 0;
m_size = Size(16,16); m_size = Size(16,16);
m_inputEvent.keyboardModifiers = 0;
#ifndef OPENGL_ES2 #ifndef OPENGL_ES2
m_glxContext = 0; m_glxContext = 0;
@ -543,6 +544,13 @@ void X11Window::poll()
m_inputEvent.keyText = ""; m_inputEvent.keyText = "";
m_inputEvent.mouseMoved = Point(); m_inputEvent.mouseMoved = Point();
m_inputEvent.wheelDirection = Fw::MouseNoWheel; m_inputEvent.wheelDirection = Fw::MouseNoWheel;
m_inputEvent.keyboardModifiers = 0;
if(event.xkey.state & ControlMask)
m_inputEvent.keyboardModifiers |= Fw::KeyboardCtrlModifier;
if(event.xkey.state & ShiftMask)
m_inputEvent.keyboardModifiers |= Fw::KeyboardShiftModifier;
if(event.xkey.state & Mod1Mask)
m_inputEvent.keyboardModifiers |= Fw::KeyboardAltModifier;
switch(event.type) { switch(event.type) {
case ClientMessage: { case ClientMessage: {
@ -611,15 +619,6 @@ void X11Window::poll()
memset(buf, 0, 32); memset(buf, 0, 32);
int len; int len;
m_inputEvent.keyboardModifiers = 0;
m_inputEvent.keyText = "";
if(event.xkey.state & ControlMask)
m_inputEvent.keyboardModifiers |= Fw::KeyboardCtrlModifier;
if(event.xkey.state & ShiftMask)
m_inputEvent.keyboardModifiers |= Fw::KeyboardShiftModifier;
if(event.xkey.state & Mod1Mask)
m_inputEvent.keyboardModifiers |= Fw::KeyboardAltModifier;
// lookup for keyText // lookup for keyText
if(event.type == KeyPress && !(event.xkey.state & ControlMask) && !(event.xkey.state & Mod1Mask)) { if(event.type == KeyPress && !(event.xkey.state & ControlMask) && !(event.xkey.state & Mod1Mask)) {
if(m_xic) { // with xim we can get latin1 input correctly if(m_xic) { // with xim we can get latin1 input correctly

Loading…
Cancel
Save