diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2012-07-30 10:51:42 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2012-07-30 10:51:42 (GMT) |
| commit | 303b546ceb134df48763730cbfd8ce7b6df008a2 (patch) | |
| tree | 6342d25a285fa1c73407511c2b5f6e6d5601ad0a /src/interface | |
| parent | 6d5388b221cdd37fe0103e9074edc052053847af (diff) | |
| download | powder-303b546ceb134df48763730cbfd8ce7b6df008a2.zip powder-303b546ceb134df48763730cbfd8ce7b6df008a2.tar.gz | |
Ensure CTRL, SHIFT and ALT states are reset when Window falls into background
Diffstat (limited to 'src/interface')
| -rw-r--r-- | src/interface/Engine.cpp | 6 | ||||
| -rw-r--r-- | src/interface/Window.cpp | 12 | ||||
| -rw-r--r-- | src/interface/Window.h | 4 |
3 files changed, 22 insertions, 0 deletions
diff --git a/src/interface/Engine.cpp b/src/interface/Engine.cpp index ddf29c6..bad931c 100644 --- a/src/interface/Engine.cpp +++ b/src/interface/Engine.cpp @@ -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 { diff --git a/src/interface/Window.cpp b/src/interface/Window.cpp index 8dba69a..30e2205 100644 --- a/src/interface/Window.cpp +++ b/src/interface/Window.cpp @@ -107,6 +107,18 @@ void Window::DoInitialized() OnInitialized(); } +void Window::DoBlur() +{ + + OnBlur(); +} + +void Window::DoFocus() +{ + + OnFocus(); +} + void Window::DoDraw() { OnDraw(); diff --git a/src/interface/Window.h b/src/interface/Window.h index c2c5e16..83fd1bc 100644 --- a/src/interface/Window.h +++ b/src/interface/Window.h @@ -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) {} |
