diff options
Diffstat (limited to 'src/client.cc')
| -rw-r--r-- | src/client.cc | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/client.cc b/src/client.cc index 2f966cee..74783eed 100644 --- a/src/client.cc +++ b/src/client.cc @@ -866,13 +866,22 @@ void OBClient::close() bool OBClient::focus() { - if (!_can_focus) return false; + if (!_can_focus || _focused) return false; XSetInputFocus(otk::OBDisplay::display, _window, RevertToNone, CurrentTime); return true; } +void OBClient::unfocus() +{ + if (!_focused) return; + + assert(Openbox::instance->focusedClient() == this); + Openbox::instance->setFocusedClient(0); +} + + void OBClient::focusHandler(const XFocusChangeEvent &) { frame->focus(); @@ -887,11 +896,8 @@ void OBClient::unfocusHandler(const XFocusChangeEvent &) frame->unfocus(); _focused = false; - if (Openbox::instance->focusedClient() == this) { - printf("UNFOCUSING\n"); + if (Openbox::instance->focusedClient() == this) Openbox::instance->setFocusedClient(0); - } else - printf("UNFOCUSED ALREADY COULDNT UNFOCUS\n"); } |
