deal with when nothing has focus anymore
Dana Jansens danakj@orodu.net
3 files changed,
14 insertions(+),
6 deletions(-)
M
otk/eventdispatcher.cc
→
otk/eventdispatcher.cc
@@ -127,17 +127,18 @@ _focus = None;
} else if (focus != None) { // the last focus event was a FocusIn, so unfocus what used to be focus and // focus this new target +// printf("FOCUSING: %lx\n", focus); + _focus_e.xfocus.type = FocusIn; + _focus_e.xfocus.window = focus; + dispatch(_focus_e); + if (_focus != None) { // printf("UNFOCUSING: %lx\n", _focus); _focus_e.xfocus.type = FocusOut; _focus_e.xfocus.window = _focus; dispatch(_focus_e); } -// printf("FOCUSING: %lx\n", focus); - _focus_e.xfocus.type = FocusIn; - _focus_e.xfocus.window = focus; - dispatch(_focus_e); - + _focus = focus; }
M
scripts/clientmotion.py
→
scripts/clientmotion.py
@@ -26,7 +26,9 @@ time):
global posqueue for i in posqueue: if i[0] == button: - delete_Rect(i[3]) + client = Openbox_findClient(openbox, win) + if client: + delete_Rect(i[3]) posqueue.remove(i) break
M
src/client.cc
→
src/client.cc
@@ -907,6 +907,11 @@ OtkEventHandler::unfocusHandler(e);
frame->unfocus(); _focused = false; + + if (Openbox::instance->focusedClient() == this) { + printf("UNFOCUSED!\n"); + Openbox::instance->setFocusedClient(this); + } }