mirror of
https://github.com/vale981/spectrwm
synced 2025-03-04 17:31:40 -05:00
Don't use an uninitialised variable when calculating the width of the master
area; while we're here, handle the case where the first window is floating, or there are no tiled windows at all. Sizing issue reported by azmarco.
This commit is contained in:
parent
7a67c7b461
commit
00d265b841
1 changed files with 11 additions and 3 deletions
14
scrotwm.c
14
scrotwm.c
|
@ -1410,7 +1410,8 @@ stack_master(struct workspace *ws, struct swm_geometry *g, int rot, int flip)
|
|||
XWindowChanges wc;
|
||||
struct swm_geometry win_g, r_g = *g;
|
||||
struct ws_win *win, *winfocus;
|
||||
int i, j, s, w_inc, h_inc, w_base, h_base, stacks;
|
||||
int i, j, s, stacks;
|
||||
int w_inc = 1, h_inc, w_base = 1, h_base;
|
||||
int hrh, extra, h_slice, last_h = 0;
|
||||
int split, colno, winno, mwin, msize, mscale;
|
||||
int remain, missing, v_slice;;
|
||||
|
@ -1426,7 +1427,13 @@ stack_master(struct workspace *ws, struct swm_geometry *g, int rot, int flip)
|
|||
ws->focus = TAILQ_FIRST(&ws->winlist);
|
||||
winfocus = cur_focus ? cur_focus : ws->focus;
|
||||
|
||||
win = TAILQ_FIRST(&ws->winlist);
|
||||
TAILQ_FOREACH(win, &ws->winlist, entry)
|
||||
if (win->transient == 0 && win->floating == 0)
|
||||
break;
|
||||
|
||||
if (win == NULL)
|
||||
goto notiles;
|
||||
|
||||
if (rot) {
|
||||
w_inc = win->sh.width_inc;
|
||||
w_base = win->sh.base_width;
|
||||
|
@ -1461,7 +1468,7 @@ stack_master(struct workspace *ws, struct swm_geometry *g, int rot, int flip)
|
|||
remain = (win_g.w - w_base) % w_inc;
|
||||
missing = w_inc - remain;
|
||||
|
||||
if (missing <= extra || j == 0) {
|
||||
if (missing <= extra) {
|
||||
extra -= missing;
|
||||
win_g.w += missing;
|
||||
} else {
|
||||
|
@ -1558,6 +1565,7 @@ stack_master(struct workspace *ws, struct swm_geometry *g, int rot, int flip)
|
|||
j++;
|
||||
}
|
||||
|
||||
notiles:
|
||||
/* now, stack all the floaters and transients */
|
||||
TAILQ_FOREACH(win, &ws->winlist, entry) {
|
||||
if (win->transient == 0 && win->floating == 0)
|
||||
|
|
Loading…
Add table
Reference in a new issue