mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2025-10-29 05:40:21 -04:00
opt: optimize fullscreen fakefullscreen and maximizescreen state convert
This commit is contained in:
parent
e18839ec11
commit
c5591950e5
2 changed files with 17 additions and 12 deletions
|
|
@ -976,7 +976,7 @@ void togglefullscreen(const Arg *arg) {
|
||||||
sel->is_in_scratchpad = 0;
|
sel->is_in_scratchpad = 0;
|
||||||
sel->isnamedscratchpad = 0;
|
sel->isnamedscratchpad = 0;
|
||||||
|
|
||||||
if (sel->isfullscreen || sel->ismaxmizescreen)
|
if (sel->isfullscreen)
|
||||||
setfullscreen(sel, 0);
|
setfullscreen(sel, 0);
|
||||||
else
|
else
|
||||||
setfullscreen(sel, 1);
|
setfullscreen(sel, 1);
|
||||||
|
|
@ -1011,7 +1011,7 @@ void togglemaxmizescreen(const Arg *arg) {
|
||||||
sel->is_in_scratchpad = 0;
|
sel->is_in_scratchpad = 0;
|
||||||
sel->isnamedscratchpad = 0;
|
sel->isnamedscratchpad = 0;
|
||||||
|
|
||||||
if (sel->isfullscreen || sel->ismaxmizescreen)
|
if (sel->ismaxmizescreen)
|
||||||
setmaxmizescreen(sel, 0);
|
setmaxmizescreen(sel, 0);
|
||||||
else
|
else
|
||||||
setmaxmizescreen(sel, 1);
|
setmaxmizescreen(sel, 1);
|
||||||
|
|
|
||||||
25
src/mango.c
25
src/mango.c
|
|
@ -845,13 +845,13 @@ void applybounds(Client *c, struct wlr_box *bbox) {
|
||||||
|
|
||||||
/*清除全屏标志,还原全屏时清0的border*/
|
/*清除全屏标志,还原全屏时清0的border*/
|
||||||
void clear_fullscreen_flag(Client *c) {
|
void clear_fullscreen_flag(Client *c) {
|
||||||
if (c->isfullscreen || c->ismaxmizescreen) {
|
if (c->isfullscreen) {
|
||||||
c->isfullscreen = 0;
|
|
||||||
c->isfloating = 0;
|
|
||||||
c->ismaxmizescreen = 0;
|
|
||||||
c->bw = c->isnoborder ? 0 : borderpx;
|
|
||||||
setfullscreen(c, false);
|
setfullscreen(c, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (c->ismaxmizescreen) {
|
||||||
|
setmaxmizescreen(c, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void minized(const Arg *arg) {
|
void minized(const Arg *arg) {
|
||||||
|
|
@ -4049,6 +4049,10 @@ void setmaxmizescreen(Client *c, int maxmizescreen) {
|
||||||
: LyrTile]);
|
: LyrTile]);
|
||||||
|
|
||||||
if (maxmizescreen) {
|
if (maxmizescreen) {
|
||||||
|
|
||||||
|
if (c->isfullscreen)
|
||||||
|
setfullscreen(c, 0);
|
||||||
|
|
||||||
if (c->isfloating)
|
if (c->isfloating)
|
||||||
c->oldgeom = c->geom;
|
c->oldgeom = c->geom;
|
||||||
if (selmon->isoverview) {
|
if (selmon->isoverview) {
|
||||||
|
|
@ -4066,8 +4070,6 @@ void setmaxmizescreen(Client *c, int maxmizescreen) {
|
||||||
} else {
|
} else {
|
||||||
c->bw = c->isnoborder ? 0 : borderpx;
|
c->bw = c->isnoborder ? 0 : borderpx;
|
||||||
c->ismaxmizescreen = 0;
|
c->ismaxmizescreen = 0;
|
||||||
c->isfullscreen = 0;
|
|
||||||
setfullscreen(c, false);
|
|
||||||
if (c->isfloating)
|
if (c->isfloating)
|
||||||
setfloating(c, 1);
|
setfloating(c, 1);
|
||||||
arrange(c->mon, false);
|
arrange(c->mon, false);
|
||||||
|
|
@ -4080,7 +4082,8 @@ void setfakefullscreen(Client *c, int fakefullscreen) {
|
||||||
return;
|
return;
|
||||||
if (c->isfullscreen)
|
if (c->isfullscreen)
|
||||||
setfullscreen(c, 0);
|
setfullscreen(c, 0);
|
||||||
client_set_fullscreen(c, fakefullscreen);
|
else
|
||||||
|
client_set_fullscreen(c, fakefullscreen);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setfullscreen(Client *c, int fullscreen) // 用自定义全屏代理自带全屏
|
void setfullscreen(Client *c, int fullscreen) // 用自定义全屏代理自带全屏
|
||||||
|
|
@ -4104,6 +4107,9 @@ void setfullscreen(Client *c, int fullscreen) // 用自定义全屏代理自带
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fullscreen) {
|
if (fullscreen) {
|
||||||
|
if (c->ismaxmizescreen)
|
||||||
|
setmaxmizescreen(c, 0);
|
||||||
|
|
||||||
if (c->isfloating)
|
if (c->isfloating)
|
||||||
c->oldgeom = c->geom;
|
c->oldgeom = c->geom;
|
||||||
if (selmon->isoverview) {
|
if (selmon->isoverview) {
|
||||||
|
|
@ -4119,8 +4125,7 @@ void setfullscreen(Client *c, int fullscreen) // 用自定义全屏代理自带
|
||||||
} else {
|
} else {
|
||||||
c->bw = c->isnoborder ? 0 : borderpx;
|
c->bw = c->isnoborder ? 0 : borderpx;
|
||||||
c->isfullscreen = 0;
|
c->isfullscreen = 0;
|
||||||
c->isfullscreen = 0;
|
c->isfakefullscreen = 0;
|
||||||
c->ismaxmizescreen = 0;
|
|
||||||
if (c->isfloating)
|
if (c->isfloating)
|
||||||
setfloating(c, 1);
|
setfloating(c, 1);
|
||||||
arrange(c->mon, false);
|
arrange(c->mon, false);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue