Compare commits

...

1 Commits

Author SHA1 Message Date
DreamMaoMao
c0eceeb3bf fix: avoid toggle overview when setfullscreen and setmaximziescreen
Some checks failed
Close manually marked stale issues / close-issues (push) Has been cancelled
Lock Threads / lock (push) Has been cancelled
2025-11-29 22:46:47 +08:00

View File

@@ -102,10 +102,10 @@
A->geom.x + A->geom.width <= A->mon->m.x + A->mon->m.width && \ A->geom.x + A->geom.width <= A->mon->m.x + A->mon->m.width && \
A->geom.y + A->geom.height <= A->mon->m.y + A->mon->m.height) A->geom.y + A->geom.height <= A->mon->m.y + A->mon->m.height)
#define ISTILED(A) \ #define ISTILED(A) \
(A && !(A)->isfloating && !(A)->isminimized && !(A)->iskilling && \ (A && !(A)->isfloating && !(A)->isminimized && !(A)->iskilling && \
!(A)->ismaximizescreen && !(A)->isfullscreen && !(A)->isunglobal) !(A)->ismaximizescreen && !(A)->isfullscreen && !(A)->isunglobal)
#define ISSCROLLTILED(A) \ #define ISSCROLLTILED(A) \
(A && !(A)->isfloating && !(A)->isminimized && !(A)->iskilling && \ (A && !(A)->isfloating && !(A)->isminimized && !(A)->iskilling && \
!(A)->isunglobal) !(A)->isunglobal)
#define VISIBLEON(C, M) \ #define VISIBLEON(C, M) \
((C) && (M) && (C)->mon == (M) && ((C)->tags & (M)->tagset[(M)->seltags])) ((C) && (M) && (C)->mon == (M) && ((C)->tags & (M)->tagset[(M)->seltags]))
@@ -4559,6 +4559,9 @@ void setmaximizescreen(Client *c, int maximizescreen) {
if (!c || !c->mon || !client_surface(c)->mapped || c->iskilling) if (!c || !c->mon || !client_surface(c)->mapped || c->iskilling)
return; return;
if (c->mon->isoverview)
return;
c->ismaximizescreen = maximizescreen; c->ismaximizescreen = maximizescreen;
if (maximizescreen) { if (maximizescreen) {
@@ -4568,10 +4571,6 @@ void setmaximizescreen(Client *c, int maximizescreen) {
if (c->isfloating) if (c->isfloating)
c->float_geom = c->geom; c->float_geom = c->geom;
if (selmon->isoverview) {
Arg arg = {0};
toggleoverview(&arg);
}
maximizescreen_box.x = c->mon->w.x + gappoh; maximizescreen_box.x = c->mon->w.x + gappoh;
maximizescreen_box.y = c->mon->w.y + gappov; maximizescreen_box.y = c->mon->w.y + gappov;
@@ -4615,11 +4614,15 @@ void setfakefullscreen(Client *c, int fakefullscreen) {
void setfullscreen(Client *c, int fullscreen) // 用自定义全屏代理自带全屏 void setfullscreen(Client *c, int fullscreen) // 用自定义全屏代理自带全屏
{ {
c->isfullscreen = fullscreen;
if (!c || !c->mon || !client_surface(c)->mapped || c->iskilling) if (!c || !c->mon || !client_surface(c)->mapped || c->iskilling)
return; return;
if (c->mon->isoverview)
return;
c->isfullscreen = fullscreen;
client_set_fullscreen(c, fullscreen); client_set_fullscreen(c, fullscreen);
if (fullscreen) { if (fullscreen) {
@@ -4628,10 +4631,6 @@ void setfullscreen(Client *c, int fullscreen) // 用自定义全屏代理自带
if (c->isfloating) if (c->isfloating)
c->float_geom = c->geom; c->float_geom = c->geom;
if (selmon->isoverview) {
Arg arg = {0};
toggleoverview(&arg);
}
c->bw = 0; c->bw = 0;
wlr_scene_node_raise_to_top(&c->scene->node); // 将视图提升到顶层 wlr_scene_node_raise_to_top(&c->scene->node); // 将视图提升到顶层