if (title_class_enabled) {
strlcat(fmtnew, "+C", sz);
- if (title_name_enabled == 0)
+ if (!title_name_enabled)
strlcat(fmtnew, "+4<", sz);
}
size_t len;
char *b;
- if (bar_enabled == 0)
+ if (!bar_enabled)
return;
if (bar_extra && bar_extra_running) {
/* ignore short reads; it'll correct itself */
int i, num_screens;
/* do this here because the conf file is in memory */
- if (bar_extra && bar_extra_running == 0 && bar_argv[0]) {
+ if (bar_extra && !bar_extra_running && bar_argv[0]) {
/* launch external status app */
bar_extra_running = 1;
if (pipe(bar_pipe) == -1)
int count = 0;
TAILQ_FOREACH(win, &ws->winlist, entry) {
- if (count_transient == 0 && win->floating)
+ if (!count_transient && win->floating)
continue;
- if (count_transient == 0 && win->transient)
+ if (!count_transient && win->transient)
continue;
if (win->iconic)
continue;
get_focus_magic(struct ws_win *win)
{
struct ws_win *parent = NULL;
+ struct ws_win *child = NULL;
DNPRINTF(SWM_D_FOCUS, "get_focus_magic: window: 0x%x\n", WINID(win));
if (win == NULL)
if (win->transient) {
parent = find_window(win->transient);
- /* If parent prefers focus elsewhere, then do so. */
- if (parent && parent->focus_child) {
- if (validate_win(parent->focus_child) == 0)
- win = parent->focus_child;
+ /* If parent prefers focus elsewhere, then try to do so. */
+ if (parent && (child = parent->focus_child)) {
+ if (validate_win(child) == 0 && child->mapped)
+ win = child;
else
parent->focus_child = NULL;
}
}
- /* If this window prefers focus elsewhere, then do so. */
- if (win->focus_child) {
- if (validate_win(win->focus_child) == 0)
- win = win->focus_child;
+ /* If this window prefers focus elsewhere, then try to do so. */
+ if ((child = win->focus_child)) {
+ if (validate_win(child) == 0 && child->mapped)
+ win = child;
else
win->focus_child = NULL;
}
};
if (!cycle_all &&
- (cycle_empty == 0 && TAILQ_EMPTY(&s->ws[a.id].winlist)))
+ (!cycle_empty && TAILQ_EMPTY(&s->ws[a.id].winlist)))
continue;
- if (cycle_visible == 0 && s->ws[a.id].r != NULL)
+ if (!cycle_visible && s->ws[a.id].r != NULL)
continue;
switchws(r, &a);
/* make sure there is at least one uniconified window */
all_iconics = 1;
TAILQ_FOREACH(winfocus, wl, entry)
- if (winfocus->iconic == 0) {
+ if (!winfocus->iconic) {
all_iconics = 0;
break;
}
while (winfocus != cur_focus) {
if (winfocus == NULL)
winfocus = TAILQ_LAST(wl, ws_win_list);
- if (winfocus->iconic == 0)
+ if (!winfocus->iconic)
break;
winfocus = TAILQ_PREV(winfocus, ws_win_list,
entry);
while (winfocus != cur_focus) {
if (winfocus == NULL)
winfocus = TAILQ_FIRST(wl);
- if (winfocus->iconic == 0)
+ if (!winfocus->iconic)
break;
winfocus = TAILQ_NEXT(winfocus, entry);
}
return;
TAILQ_FOREACH(win, &ws->winlist, entry)
- if (win->transient == 0 && win->floating == 0
- && win->iconic == 0)
+ if (!win->transient && !win->floating && !win->iconic)
break;
if (win == NULL)
/* stack all the tiled windows */
i = j = 0, s = stacks;
TAILQ_FOREACH(win, &ws->winlist, entry) {
- if (win->transient != 0 || win->floating != 0)
+ if (win->transient || win->floating)
continue;
- if (win->iconic != 0)
+ if (win->iconic)
continue;
if (win->ewmh_flags & EWMH_F_FULLSCREEN) {
else
win_g.y += last_h + 2 * border_width;
- if (disable_border && bar_enabled == 0 && winno == 1){
+ if (disable_border && !bar_enabled && winno == 1){
bordered = 0;
win_g.w += 2 * border_width;
win_g.h += 2 * border_width;
notiles:
/* now, stack all the floaters and transients */
TAILQ_FOREACH(win, &ws->winlist, entry) {
- if (win->transient == 0 && win->floating == 0)
+ if (!win->transient && !win->floating)
continue;
- if (win->iconic == 1)
+ if (win->iconic)
continue;
if (win->ewmh_flags & EWMH_F_FULLSCREEN) {
fs_win = win;
continue;
}
- if (win->floating && win->floatmaxed == 0 ) {
+ if (win->floating && !win->floatmaxed ) {
/*
* retain geometry for retrieval on exit from
* max_stack mode
r->ws->always_raise = !r->ws->always_raise;
/* bring floaters back to top */
- if (r->ws->always_raise == 0)
+ if (!r->ws->always_raise)
stack();
focus_flush();
TAILQ_FOREACH(win, &r->ws->winlist, entry) {
if (win->ws == NULL)
continue; /* should never happen */
- if (win->iconic == 0)
+ if (!win->iconic)
continue;
count++;
}
TAILQ_FOREACH(win, &r->ws->winlist, entry) {
if (win->ws == NULL)
continue; /* should never happen */
- if (win->iconic == 0)
+ if (!win->iconic)
continue;
name = get_win_name(win->id);
i = 1;
TAILQ_FOREACH(win, &r->ws->winlist, entry) {
- if (win->iconic == 1)
+ if (win->iconic)
continue;
sw = calloc(1, sizeof(struct search_window));
DNPRINTF(SWM_D_MISC, "search_resp_uniconify: resp: %s\n", resp);
TAILQ_FOREACH(win, &search_r->ws->winlist, entry) {
- if (win->iconic == 0)
+ if (!win->iconic)
continue;
name = get_win_name(win->id);
if (name == NULL)
"transient: 0x%x\n", win->id, YESNO(win->floating),
win->transient);
- if (!(win->transient != 0 || win->floating != 0))
+ if (!win->transient && !win->floating)
return;
/* reject resizes in max mode for floaters (transient ok) */
return;
win->manual = 1;
- if (win->floating == 0 && !win->transient) {
+ if (!win->floating && !win->transient) {
store_float_geom(win, r);
ewmh_update_win_state(win, ewmh[_NET_WM_STATE_ABOVE].atom,
_NET_WM_STATE_ADD);
else
return;
- if (!(win->transient != 0 || win->floating != 0))
+ if (!win->transient && !win->floating)
return;
move(win, args);
free(p);
p = NULL;
} else if ((ws_idx = get_ws_idx(win->id)) != -1 &&
- win->transient == 0) {
+ !win->transient) {
/* _SWM_WS is set; use that. */
win->ws = &r->s->ws[ws_idx];
} else if (trans && (ww = find_window(trans)) != NULL) {
{
struct ws_win *win;
- DNPRINTF(SWM_D_EVENT, "configurenotify: window: 0x%x\n",
- e->window);
+ DNPRINTF(SWM_D_EVENT, "configurenotify: win 0x%x, event win: 0x%x, "
+ "(x,y) WxH: (%d,%d) %ux%u, border: %u, above_sibling: 0x%x, "
+ "override_redirect: %s\n", e->window, e->event, e->x, e->y,
+ e->width, e->height, e->border_width, e->above_sibling,
+ YESNO(e->override_redirect));
win = find_window(e->window);
if (win) {
unmapnotify(xcb_unmap_notify_event_t *e)
{
struct ws_win *win;
+ struct workspace *ws;
DNPRINTF(SWM_D_EVENT, "unmapnotify: window: 0x%x\n", e->window);
if (win == NULL)
return;
- if (getstate(e->window) == XCB_ICCCM_WM_STATE_NORMAL) {
- /* If we were focused, make sure we focus on something else. */
- if (win == win->ws->focus)
- if (focus_mode != SWM_FOCUS_FOLLOW)
- win->ws->focus_pending = get_focus_prev(win);
+ ws = win->ws;
+ if (getstate(e->window) == XCB_ICCCM_WM_STATE_NORMAL) {
win->mapped = 0;
set_win_state(win, XCB_ICCCM_WM_STATE_ICONIC);
+ /* If we were focused, make sure we focus on something else. */
+ if (win == ws->focus)
+ if (focus_mode != SWM_FOCUS_FOLLOW)
+ ws->focus_pending = get_focus_prev(win);
+
+ unfocus_win(win);
unmanage_window(win);
stack();
+ DNPRINTF(SWM_D_EVENT, "unmapnotify: focus_pending: 0x%x\n",
+ ws->focus_pending->id);
+
if (focus_mode != SWM_FOCUS_FOLLOW) {
- if (win->ws->focus_pending) {
- focus_win(win->ws->focus_pending);
- win->ws->focus_pending = NULL;
+ if (ws->focus_pending) {
+ focus_win(ws->focus_pending);
+ ws->focus_pending = NULL;
}
}
while (running) {
while ((evt = xcb_poll_for_event(conn))) {
- if (running == 0)
+ if (!running)
goto done;
event_handle(evt);
free(evt);
if (errno != EINTR) {
DNPRINTF(SWM_D_MISC, "select failed");
}
- if (restart_wm == 1)
+ if (restart_wm)
restart(NULL, NULL);
- if (search_resp == 1)
+ if (search_resp)
search_do_resp();
- if (running == 0)
+ if (!running)
goto done;
if (bar_alarm) {
bar_alarm = 0;