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

This commit is contained in:
DreamMaoMao
2025-11-29 22:46:47 +08:00
parent 09c1920515
commit c0eceeb3bf

View File

@@ -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); // 将视图提升到顶层