Ensure CTRL, SHIFT and ALT states are reset when Window falls into background
This commit is contained in:
parent
6d5388b221
commit
303b546ceb
@ -1035,6 +1035,13 @@ void GameView::OnKeyRelease(int key, Uint16 character, bool shift, bool ctrl, bo
|
||||
}
|
||||
}
|
||||
|
||||
void GameView::OnBlur()
|
||||
{
|
||||
disableAltBehaviour();
|
||||
disableCtrlBehaviour();
|
||||
disableShiftBehaviour();
|
||||
}
|
||||
|
||||
void GameView::OnTick(float dt)
|
||||
{
|
||||
if(selectMode==PlaceSave && !placeSaveThumb)
|
||||
|
@ -148,6 +148,9 @@ public:
|
||||
virtual void OnMouseWheel(int x, int y, int d);
|
||||
virtual void OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool alt);
|
||||
virtual void OnKeyRelease(int key, Uint16 character, bool shift, bool ctrl, bool alt);
|
||||
virtual void OnTick(float dt);
|
||||
virtual void OnDraw();
|
||||
virtual void OnBlur();
|
||||
|
||||
//Top-level handers, for Lua interface
|
||||
virtual void DoDraw();
|
||||
@ -158,10 +161,6 @@ public:
|
||||
virtual void DoKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool alt);
|
||||
virtual void DoKeyRelease(int key, Uint16 character, bool shift, bool ctrl, bool alt);
|
||||
|
||||
//virtual void OnKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool alt) {}
|
||||
//virtual void OnKeyRelease(int key, Uint16 character, bool shift, bool ctrl, bool alt) {}
|
||||
virtual void OnTick(float dt);
|
||||
virtual void OnDraw();
|
||||
class MenuAction;
|
||||
class ToolAction;
|
||||
};
|
||||
|
@ -82,6 +82,9 @@ void Engine::ShowWindow(Window * window)
|
||||
|
||||
windows.push(state_);
|
||||
}
|
||||
if(state_)
|
||||
state_->DoBlur();
|
||||
|
||||
state_ = window;
|
||||
|
||||
}
|
||||
@ -102,6 +105,9 @@ void Engine::CloseWindow()
|
||||
}
|
||||
state_ = windows.top();
|
||||
windows.pop();
|
||||
|
||||
if(state_)
|
||||
state_->DoFocus();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -107,6 +107,18 @@ void Window::DoInitialized()
|
||||
OnInitialized();
|
||||
}
|
||||
|
||||
void Window::DoBlur()
|
||||
{
|
||||
|
||||
OnBlur();
|
||||
}
|
||||
|
||||
void Window::DoFocus()
|
||||
{
|
||||
|
||||
OnFocus();
|
||||
}
|
||||
|
||||
void Window::DoDraw()
|
||||
{
|
||||
OnDraw();
|
||||
|
@ -52,6 +52,8 @@ enum ChromeStyle
|
||||
virtual void DoExit();
|
||||
virtual void DoTick(float dt);
|
||||
virtual void DoDraw();
|
||||
virtual void DoFocus();
|
||||
virtual void DoBlur();
|
||||
|
||||
virtual void DoMouseMove(int x, int y, int dx, int dy);
|
||||
virtual void DoMouseDown(int x, int y, unsigned button);
|
||||
@ -73,6 +75,8 @@ enum ChromeStyle
|
||||
virtual void OnExit() {}
|
||||
virtual void OnTick(float dt) {}
|
||||
virtual void OnDraw() {}
|
||||
virtual void OnFocus() {}
|
||||
virtual void OnBlur() {}
|
||||
|
||||
virtual void OnMouseMove(int x, int y, int dx, int dy) {}
|
||||
virtual void OnMouseDown(int x, int y, unsigned button) {}
|
||||
|
Loading…
Reference in New Issue
Block a user