all repos — openbox @ 8c2dfe5de45babd0fbc12b69cdfe30a54cf873a2

openbox fork - make it a bit more like ryudo

deal with when nothing has focus anymore
Dana Jansens danakj@orodu.net
commit

8c2dfe5de45babd0fbc12b69cdfe30a54cf873a2

parent

30e4651787ca6f7161109591c229fcaf76cb901e

3 files changed, 14 insertions(+), 6 deletions(-)

jump to
M otk/eventdispatcher.ccotk/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.pyscripts/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.ccsrc/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); + } }