deal with when nothing has focus anymore
This commit is contained in:
parent
30e4651787
commit
8c2dfe5de4
3 changed files with 14 additions and 6 deletions
|
@ -127,17 +127,18 @@ void OtkEventDispatcher::dispatchEvents(void)
|
||||||
} else if (focus != None) {
|
} else if (focus != None) {
|
||||||
// the last focus event was a FocusIn, so unfocus what used to be focus and
|
// the last focus event was a FocusIn, so unfocus what used to be focus and
|
||||||
// focus this new target
|
// 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) {
|
if (_focus != None) {
|
||||||
// printf("UNFOCUSING: %lx\n", _focus);
|
// printf("UNFOCUSING: %lx\n", _focus);
|
||||||
_focus_e.xfocus.type = FocusOut;
|
_focus_e.xfocus.type = FocusOut;
|
||||||
_focus_e.xfocus.window = _focus;
|
_focus_e.xfocus.window = _focus;
|
||||||
dispatch(_focus_e);
|
dispatch(_focus_e);
|
||||||
}
|
}
|
||||||
// printf("FOCUSING: %lx\n", focus);
|
|
||||||
_focus_e.xfocus.type = FocusIn;
|
|
||||||
_focus_e.xfocus.window = focus;
|
|
||||||
dispatch(_focus_e);
|
|
||||||
|
|
||||||
_focus = focus;
|
_focus = focus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,9 @@ def def_motion_release(action, win, type, modifiers, button, xroot, yroot,
|
||||||
global posqueue
|
global posqueue
|
||||||
for i in posqueue:
|
for i in posqueue:
|
||||||
if i[0] == button:
|
if i[0] == button:
|
||||||
delete_Rect(i[3])
|
client = Openbox_findClient(openbox, win)
|
||||||
|
if client:
|
||||||
|
delete_Rect(i[3])
|
||||||
posqueue.remove(i)
|
posqueue.remove(i)
|
||||||
break
|
break
|
||||||
|
|
||||||
|
|
|
@ -907,6 +907,11 @@ void OBClient::unfocusHandler(const XFocusChangeEvent &e)
|
||||||
|
|
||||||
frame->unfocus();
|
frame->unfocus();
|
||||||
_focused = false;
|
_focused = false;
|
||||||
|
|
||||||
|
if (Openbox::instance->focusedClient() == this) {
|
||||||
|
printf("UNFOCUSED!\n");
|
||||||
|
Openbox::instance->setFocusedClient(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue