X-Git-Url: https://ecere.com/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=ecere%2Fsrc%2Fgui%2Fdrivers%2FWin32Interface.ec;fp=ecere%2Fsrc%2Fgui%2Fdrivers%2FWin32Interface.ec;h=b12fb8e1bb2be308efa3f9dd8dab525572cc403a;hb=1fe01ced1978ecd046accfc810ac6a2735942829;hp=a72951256b841f50f1377428dcb97e61b3bbc9f2;hpb=22f4910c35cbe3549e33b75a90399a7fec92de12;p=sdk diff --git a/ecere/src/gui/drivers/Win32Interface.ec b/ecere/src/gui/drivers/Win32Interface.ec index a729512..b12fb8e 100644 --- a/ecere/src/gui/drivers/Win32Interface.ec +++ b/ecere/src/gui/drivers/Win32Interface.ec @@ -389,19 +389,25 @@ class Win32Interface : Interface code = key; } - if(key != leftShift && key != rightShift && ::GetKeyState(VK_SHIFT) & 0x80000) - code.shift = true; - if(key != leftControl && key != rightControl && ::GetKeyState(VK_CONTROL) & 0x80000 && !frenchShift) - code.ctrl = true; - if(key != leftAlt && key != rightAlt && ::GetKeyState(VK_MENU) & 0x80000 && !frenchShift) - code.alt = true; - if(msg == WM_MOUSEWHEEL) { + if(::GetAsyncKeyState(VK_SHIFT) & 0x80000) + code.ctrl = true; + if(::GetAsyncKeyState(VK_CONTROL) & 0x80000) + code.ctrl = true; + if(::GetAsyncKeyState(VK_MENU) & 0x80000) + code.alt = true; + result = window.KeyMessage(__ecereVMethodID___ecereNameSpace__ecere__gui__Window_OnKeyHit, code, 0); } else { + if(key != leftShift && key != rightShift && ::GetKeyState(VK_SHIFT) & 0x80000) + code.shift = true; + if(key != leftControl && key != rightControl && ::GetKeyState(VK_CONTROL) & 0x80000 && !frenchShift) + code.ctrl = true; + if(key != leftAlt && key != rightAlt && ::GetKeyState(VK_MENU) & 0x80000 && !frenchShift) + code.alt = true; /* byte ch = Interface::TranslateKeykey, code.shift); if(::GetKeyState(VK_CAPITAL))