break;
if (fe.type == FocusOut) {
#ifdef DEBUG_FOCUS
- ob_debug("found pending FocusOut");
+ ob_debug("found pending FocusOut\n");
#endif
if (!INVALID_FOCUSOUT(&fe)) {
/* if there is a VALID FocusOut still coming, don't
}
} else {
#ifdef DEBUG_FOCUS
- ob_debug("found pending FocusIn");
+ ob_debug("found pending FocusIn\n");
#endif
/* is the focused window getting a FocusOut/In back to
itself?
if (focus_client) {
#ifdef DEBUG_FOCUS
ob_debug("focused window got an Out/In back to "
- "itself IGNORED both");
+ "itself IGNORED both\n");
#endif
return TRUE;
} else {
#ifdef DEBUG_FOCUS
ob_debug("focused window got an Out/In back to "
"itself but focus_client was null "
- "IGNORED just the Out");
+ "IGNORED just the Out\n");
#endif
return TRUE;
}
if (fallback) {
#ifdef DEBUG_FOCUS
ob_debug("no valid FocusIn and no FocusOut events found, "
- "falling back");
+ "falling back\n");
#endif
focus_fallback(OB_FOCUS_FALLBACK_NOFOCUS);
}
(e->xcrossing.mode == NotifyUngrab &&
e->xcrossing.detail == NotifyVirtual)) {
#ifdef DEBUG_FOCUS
- ob_debug("%sNotify mode %d detail %d on %lx IGNORED",
+ ob_debug("%sNotify mode %d detail %d on %lx IGNORED\n",
(e->type == EnterNotify ? "Enter" : "Leave"),
e->xcrossing.mode,
e->xcrossing.detail, client?client->window:0);
return TRUE;
}
#ifdef DEBUG_FOCUS
- ob_debug("%sNotify mode %d detail %d on %lx",
+ ob_debug("%sNotify mode %d detail %d on %lx\n",
(e->type == EnterNotify ? "Enter" : "Leave"),
e->xcrossing.mode,
e->xcrossing.detail, client?client->window:0);
{
if (menu_frame_visible)
event_handle_menu(e);
- else if (moveresize_in_progress)
- moveresize_event(e);
else {
- ObFrameContext context;
+ if (!keyboard_process_interactive_grab(e, &client)) {
+ if (moveresize_in_progress)
+ moveresize_event(e);
- context = frame_context(client, e->xany.window);
-
- if (!keyboard_process_interactive_grab(e, &client, &context)) {
if (e->type == ButtonPress || e->type == ButtonRelease ||
e->type == MotionNotify)
- mouse_event(client, context, e);
+ mouse_event(client, e);
else if (e->type == KeyPress)
- keyboard_event(client, e);
+ /* when in the middle of a focus cycling action, this
+ causes the window which appears to be focused to be
+ the one on which the actions will be executed */
+ keyboard_event((focus_cycle_target ?
+ focus_cycle_target : client), e);
}
}
}
else {
if ((e = menu_entry_frame_under(ev->xbutton.x_root,
ev->xbutton.y_root)))
- menu_entry_frame_execute(e,
- !(ev->xbutton.state & ControlMask));
+ menu_entry_frame_execute(e, ev->xbutton.state);
}
break;
case MotionNotify:
else if (ev->xkey.keycode == ob_keycode(OB_KEY_RETURN)) {
ObMenuFrame *f;
if ((f = find_active_menu()))
- menu_entry_frame_execute(f->selected,
- !(ev->xkey.state & ControlMask));
+ menu_entry_frame_execute(f->selected, ev->xkey.state);
} else if (ev->xkey.keycode == ob_keycode(OB_KEY_LEFT)) {
ObMenuFrame *f;
if ((f = find_active_menu()) && f->parent)