fix: Fix ignoring hidden clients

This commit is contained in:
DreamMaoMao 2026-06-29 10:06:28 +08:00
parent 3b3170ef7d
commit 76de8206dd
3 changed files with 5 additions and 7 deletions

View file

@ -819,8 +819,7 @@ struct ivec2 clip_to_hide(Client *c, struct wlr_box *clip_box) {
(ISSCROLLTILED(c) || c->animation.tagouting || c->animation.tagining)) {
c->is_clip_to_hide = true;
wlr_scene_node_set_enabled(&c->scene->node, false);
} else if (c->is_clip_to_hide && VISIBLEON(c, c->mon) &&
!c->is_logic_hide) {
} else if (c->is_clip_to_hide && VISIBLEON(c, c->mon)) {
c->is_clip_to_hide = false;
c->is_logic_hide = false;
wlr_scene_node_set_enabled(&c->scene->node, true);

View file

@ -45,8 +45,7 @@ void set_tagin_animation(Monitor *m, Client *c) {
void set_arrange_visible(Monitor *m, Client *c, bool want_animation) {
if ((!ISTILED(c) || (!c->is_clip_to_hide || !is_scroller_layout(c->mon))) &&
!c->is_logic_hide) {
if (!ISTILED(c) || (!c->is_clip_to_hide || !is_scroller_layout(c->mon))) {
c->is_clip_to_hide = false;
c->is_logic_hide = false;
wlr_scene_node_set_enabled(&c->scene->node, true);

View file

@ -184,11 +184,11 @@ Client *find_client_by_direction(Client *tc, const Arg *arg,
break;
wl_list_for_each(c, &clients, link) {
if (!c || c == tc)
if (!c || !c->mon || c == tc)
continue;
if (!findfloating && c->isfloating)
continue;
if (c->is_logic_hide)
if (!VISIBLEON(c, c->mon))
continue;
if (c->isunglobal)
continue;
@ -444,7 +444,7 @@ Client *get_focused_stack_client(Client *sc, Client *custom_focus_client) {
return sc;
wl_list_for_each(tc, &fstack, flink) {
if (tc->iskilling || tc->isunglobal || tc->is_logic_hide)
if (tc->iskilling || tc->isunglobal)
continue;
if (!VISIBLEON(tc, sc->mon))
continue;