void focus(struct swm_region *, union arg *);
void focus_magic(struct ws_win *, int);
-
+#define SWM_F_GENERIC (0)
+#define SWM_F_TRANSIENT (1)
/* quirks */
struct quirk {
char *class;
else
winfocus = TAILQ_FIRST(&r->ws->winlist);
- focus_magic(winfocus, 0);
+ focus_magic(winfocus, SWM_F_GENERIC);
return;
}
- cur_focus = r->ws->focus;
- if (cur_focus == NULL) {
+ if (r->ws->focus == NULL)
return;
- }
+ cur_focus = r->ws->focus;
ws = r->ws;
wl = &ws->winlist;
}
break;
case SWM_ARG_ID_FOCUSNEXT:
- cur_focus = r->ws->focus;
- if (cur_focus == NULL)
- return;
- wl = &cur_focus->ws->winlist;
-
winfocus = TAILQ_NEXT(cur_focus, entry);
if (winfocus == NULL)
winfocus = TAILQ_FIRST(wl);
break;
case SWM_ARG_ID_FOCUSMAIN:
- cur_focus = r->ws->focus;
- if (cur_focus == NULL)
- return;
- wl = &cur_focus->ws->winlist;
-
winfocus = TAILQ_FIRST(wl);
if (winfocus == cur_focus)
winfocus = cur_focus->ws->focus_prev;
if (winfocus == winlostfocus || winfocus == NULL)
return;
- focus_magic(winfocus, 0);
+ focus_magic(winfocus, SWM_F_GENERIC);
}
void
if (parent)
XMapRaised(display, parent->id);
stack_floater(wintrans, ws->r);
- focus_magic(wintrans, 1);
+ focus_magic(wintrans, SWM_F_TRANSIENT);
}
}
if (win == NULL)
return;
- if (do_trans && win->child_trans) {
+ if (do_trans == SWM_F_TRANSIENT && win->child_trans) {
/* win = parent & has a transient so focus on that */
if (win->java) {
focus_win(win->child_trans);
if ((win = find_window(ev->window)) == NULL)
return;
- focus_magic(win, 1);
+ focus_magic(win, SWM_F_TRANSIENT);
action = client_click;
for (i = 0; i < LENGTH(buttons); i++)
if ((win = find_window(ev->window)) == NULL)
return;
- focus_magic(win, 1);
+ focus_magic(win, SWM_F_TRANSIENT);
}
void
/* make new win focused */
r = root_to_region(win->wa.root);
if (win->ws == r->ws)
- focus_magic(win, 0);
+ focus_magic(win, SWM_F_GENERIC);
}
void