diff --git a/src/layout/horizontal.h b/src/layout/horizontal.h index 275eec8..ff260e4 100644 --- a/src/layout/horizontal.h +++ b/src/layout/horizontal.h @@ -357,7 +357,8 @@ void scroller(Monitor *m) { if (m->sel && !client_is_unmanaged(m->sel) && !m->sel->isfloating && !m->sel->ismaxmizescreen && !m->sel->isfullscreen) { root_client = m->sel; - } else if (m->prevsel && !client_is_unmanaged(m->prevsel)) { + } else if (m->prevsel && ISTILED(m->prevsel) && + !client_is_unmanaged(m->prevsel)) { root_client = m->prevsel; } else { root_client = center_select(m); @@ -394,7 +395,7 @@ void scroller(Monitor *m) { (m->prevsel->scroller_proportion * max_client_width) + (root_client->scroller_proportion * max_client_width) > m->w.width - 2 * scroller_structs - cur_gappih) && - scroller_prefer_center)) { + ISTILED(m->prevsel) && scroller_prefer_center)) { target_geom.x = m->w.x + (m->w.width - target_geom.width) / 2; } else { target_geom.x = root_client->geom.x > m->w.x + (m->w.width) / 2 diff --git a/src/layout/vertical.h b/src/layout/vertical.h index 206900d..2c6c289 100644 --- a/src/layout/vertical.h +++ b/src/layout/vertical.h @@ -344,7 +344,8 @@ void vertical_scroller(Monitor *m) { if (m->sel && !client_is_unmanaged(m->sel) && !m->sel->isfloating && !m->sel->ismaxmizescreen && !m->sel->isfullscreen) { root_client = m->sel; - } else if (m->prevsel && !client_is_unmanaged(m->prevsel)) { + } else if (m->prevsel && ISTILED(m->prevsel) && + !client_is_unmanaged(m->prevsel)) { root_client = m->prevsel; } else { root_client = center_select(m); @@ -381,7 +382,7 @@ void vertical_scroller(Monitor *m) { (m->prevsel->scroller_proportion * max_client_height) + (root_client->scroller_proportion * max_client_height) > m->w.height - 2 * scroller_structs - cur_gappiv) && - scroller_prefer_center)) { + ISTILED(m->prevsel) && scroller_prefer_center)) { target_geom.y = m->w.y + (m->w.height - target_geom.height) / 2; } else { target_geom.y = root_client->geom.y > m->w.y + (m->w.height) / 2