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,16 +127,17 @@ void OtkEventDispatcher::dispatchEvents(void)
|
|||
} 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;
|
||||
}
|
||||
|
|
|
@ -26,7 +26,9 @@ def def_motion_release(action, win, type, modifiers, button, xroot, yroot,
|
|||
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
|
||||
|
||||
|
|
|
@ -907,6 +907,11 @@ void OBClient::unfocusHandler(const XFocusChangeEvent &e)
|
|||
|
||||
frame->unfocus();
|
||||
_focused = false;
|
||||
|
||||
if (Openbox::instance->focusedClient() == this) {
|
||||
printf("UNFOCUSED!\n");
|
||||
Openbox::instance->setFocusedClient(this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue