summaryrefslogtreecommitdiff
path: root/src/client.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/client.cc')
-rw-r--r--src/client.cc16
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");
}