mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-05-06 06:46:54 -04:00
feat: restore scroller geom in setfullscreen
This commit is contained in:
parent
ddc2448d1c
commit
bf5dc1c841
1 changed files with 9 additions and 1 deletions
10
src/mango.c
10
src/mango.c
|
|
@ -301,7 +301,7 @@ struct Client {
|
||||||
/* Must keep these three elements in this order */
|
/* Must keep these three elements in this order */
|
||||||
uint32_t type; /* XDGShell or X11* */
|
uint32_t type; /* XDGShell or X11* */
|
||||||
struct wlr_box geom, pending, float_geom, animainit_geom,
|
struct wlr_box geom, pending, float_geom, animainit_geom,
|
||||||
overview_backup_geom, current,
|
overview_backup_geom, current, scroller_geom,
|
||||||
drag_begin_geom; /* layout-relative, includes border */
|
drag_begin_geom; /* layout-relative, includes border */
|
||||||
Monitor *mon;
|
Monitor *mon;
|
||||||
struct wlr_scene_tree *scene;
|
struct wlr_scene_tree *scene;
|
||||||
|
|
@ -4630,6 +4630,7 @@ void setfakefullscreen(Client *c, int fakefullscreen) {
|
||||||
|
|
||||||
void setfullscreen(Client *c, int fullscreen) // 用自定义全屏代理自带全屏
|
void setfullscreen(Client *c, int fullscreen) // 用自定义全屏代理自带全屏
|
||||||
{
|
{
|
||||||
|
int was_fullscreen = c->isfullscreen;
|
||||||
|
|
||||||
if (!c || !c->mon || !client_surface(c)->mapped || c->iskilling)
|
if (!c || !c->mon || !client_surface(c)->mapped || c->iskilling)
|
||||||
return;
|
return;
|
||||||
|
|
@ -4648,6 +4649,10 @@ void setfullscreen(Client *c, int fullscreen) // 用自定义全屏代理自带
|
||||||
if (c->isfloating)
|
if (c->isfloating)
|
||||||
c->float_geom = c->geom;
|
c->float_geom = c->geom;
|
||||||
|
|
||||||
|
if (!was_fullscreen && is_scroller_layout(c->mon)) {
|
||||||
|
c->scroller_geom = c->geom;
|
||||||
|
}
|
||||||
|
|
||||||
c->bw = 0;
|
c->bw = 0;
|
||||||
wlr_scene_node_raise_to_top(&c->scene->node); // 将视图提升到顶层
|
wlr_scene_node_raise_to_top(&c->scene->node); // 将视图提升到顶层
|
||||||
if (!is_scroller_layout(c->mon) || c->isfloating)
|
if (!is_scroller_layout(c->mon) || c->isfloating)
|
||||||
|
|
@ -4659,6 +4664,9 @@ void setfullscreen(Client *c, int fullscreen) // 用自定义全屏代理自带
|
||||||
c->isfakefullscreen = 0;
|
c->isfakefullscreen = 0;
|
||||||
if (c->isfloating)
|
if (c->isfloating)
|
||||||
setfloating(c, 1);
|
setfloating(c, 1);
|
||||||
|
|
||||||
|
if (was_fullscreen && is_scroller_layout(c->mon))
|
||||||
|
c->geom = c->scroller_geom;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (c->isoverlay) {
|
if (c->isoverlay) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue