deal with when nothing has focus anymore

This commit is contained in:
Dana Jansens 2002-12-27 09:18:54 +00:00
parent 30e4651787
commit 8c2dfe5de4
3 changed files with 14 additions and 6 deletions

View file

@ -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;
}

View file

@ -26,6 +26,8 @@ def def_motion_release(action, win, type, modifiers, button, xroot, yroot,
global posqueue
for i in posqueue:
if i[0] == button:
client = Openbox_findClient(openbox, win)
if client:
delete_Rect(i[3])
posqueue.remove(i)
break

View file

@ -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);
}
}