X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_window.pas;h=17aa0479563d2239f9a3db5305b5b44a07fad5f9;hb=b3b3def6089809491a38cc03717683c011298032;hp=40f74029241e05bdffc5aee7fc686c0d009fd98f;hpb=96c1729fd9ce1bf598de323204c219aaaa0a097c;p=d2df-sdl.git diff --git a/src/game/g_window.pas b/src/game/g_window.pas index 40f7402..17aa047 100644 --- a/src/game/g_window.pas +++ b/src/game/g_window.pas @@ -250,6 +250,7 @@ begin begin curMsButState := 0; curKbState := 0; + e_UnpressAllKeys(); if not wMinimized then begin e_ResizeWindow(0, 0); @@ -336,6 +337,7 @@ begin curMsButState := 0; curKbState := 0; wDeactivate := True; + e_UnpressAllKeys(); //e_WriteLog('window lost focus!', MSG_NOTIFY); g_Holmes_WindowBlured(); end; @@ -450,9 +452,14 @@ begin kbev.sym := ev.key.keysym.sym; kbev.bstate := curMsButState; kbev.kstate := curKbState; - if g_Holmes_keyEvent(kbev) then exit; + if g_Holmes_keyEvent(kbev) then + begin + if (ev.type_ <> SDL_KEYDOWN) then e_KeyUpDown(ev.key.keysym.scancode, false); + exit; + end; end; if (ev.type_ = SDL_KEYDOWN) then KeyPress(key); + e_KeyUpDown(ev.key.keysym.scancode, (ev.type_ = SDL_KEYDOWN)); end; SDL_MOUSEBUTTONDOWN, SDL_MOUSEBUTTONUP: