mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-06-24 13:36:42 -04:00
opt: optimize layer cover
This commit is contained in:
parent
90c50e664d
commit
e05bea855e
2 changed files with 28 additions and 3 deletions
|
|
@ -181,7 +181,8 @@ void client_set_tab_node_visible(Client *c) {
|
|||
while (cur) {
|
||||
if (!c->mon->isoverview && cur->tab_bar_node &&
|
||||
(cur->group_next || cur->group_prev) && VISIBLEON(c, c->mon) &&
|
||||
ISSCROLLTILED(c) && !c->isfullscreen) {
|
||||
ISSCROLLTILED(c) && !c->isfullscreen &&
|
||||
(!is_monocle_layout(c->mon) || c == c->mon->sel)) {
|
||||
wlr_scene_node_set_enabled(&cur->tab_bar_node->scene_buffer->node,
|
||||
true);
|
||||
} else {
|
||||
|
|
@ -190,4 +191,24 @@ void client_set_tab_node_visible(Client *c) {
|
|||
}
|
||||
cur = cur->group_next;
|
||||
}
|
||||
}
|
||||
|
||||
void client_raise_group_tab_bar(Client *c) {
|
||||
if (!c || !c->mon)
|
||||
return;
|
||||
|
||||
if (!c->group_prev && !c->group_next)
|
||||
return;
|
||||
|
||||
Client *head = c;
|
||||
while (head->group_prev)
|
||||
head = head->group_prev;
|
||||
|
||||
Client *cur = head;
|
||||
while (cur) {
|
||||
if (cur->tab_bar_node) {
|
||||
wlr_scene_node_raise_to_top(&cur->tab_bar_node->scene_buffer->node);
|
||||
}
|
||||
cur = cur->group_next;
|
||||
}
|
||||
}
|
||||
|
|
@ -170,8 +170,9 @@ enum {
|
|||
LyrBg,
|
||||
LyrBlur,
|
||||
LyrBottom,
|
||||
LyrDecorate,
|
||||
LyrTile,
|
||||
LyrDecorate,
|
||||
LyrMaximize,
|
||||
LyrTop,
|
||||
LyrFadeOut,
|
||||
LyrOverlay,
|
||||
|
|
@ -5761,6 +5762,7 @@ void setmaximizescreen(Client *c, int32_t maximizescreen, bool rearrange) {
|
|||
}
|
||||
|
||||
wlr_scene_node_raise_to_top(&c->scene->node);
|
||||
client_raise_group_tab_bar(c);
|
||||
if (!is_scroller_layout(c->mon) || c->isfloating)
|
||||
resize(c, maximizescreen_box, 0);
|
||||
} else {
|
||||
|
|
@ -5770,7 +5772,9 @@ void setmaximizescreen(Client *c, int32_t maximizescreen, bool rearrange) {
|
|||
}
|
||||
|
||||
wlr_scene_node_reparent(&c->scene->node,
|
||||
layers[c->isfloating ? LyrTop : LyrTile]);
|
||||
layers[c->ismaximizescreen ? LyrMaximize
|
||||
: c->isfloating ? LyrTop
|
||||
: LyrTile]);
|
||||
|
||||
if (!c->force_fakemaximize && !c->ismaximizescreen) {
|
||||
client_set_maximized(c, false);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue