X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fclient%2Fclient.cpp;h=f0a3f35c7b984825d2dcffbc4c529a8c0d9815cb;hb=80a9a59d71a7b144c12f64cbef4644751bd54745;hp=8b532633ab0cd85dc2926f2dbda72eb3ed7762e3;hpb=f21a21b285c5b54e3abcc757c6715d22520dd190;p=blank.git diff --git a/src/client/client.cpp b/src/client/client.cpp index 8b53263..f0a3f35 100644 --- a/src/client/client.cpp +++ b/src/client/client.cpp @@ -80,8 +80,24 @@ InteractiveState::InteractiveState(MasterState &master, uint32_t player_id) } } -void InteractiveState::OnEnter() { - master.GetEnv().window.GrabMouse(); +void InteractiveState::OnResume() { + OnFocus(); +} + +void InteractiveState::OnPause() { + OnBlur(); +} + +void InteractiveState::OnFocus() { + if (master.GetConfig().input.mouse) { + master.GetEnv().window.GrabMouse(); + } + interface.Unlock(); +} + +void InteractiveState::OnBlur() { + master.GetEnv().window.ReleaseMouse(); + interface.Lock(); } void InteractiveState::Handle(const SDL_Event &event) {