mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2025-10-29 05:40:21 -04:00
opt: allow floating window show on fullscreen window
This commit is contained in:
parent
38917d9f96
commit
e4f594ecde
2 changed files with 13 additions and 13 deletions
|
|
@ -1165,12 +1165,11 @@ void toggleoverlay(const Arg *arg) {
|
||||||
wlr_scene_node_reparent(&selmon->sel->scene->node, layers[LyrOverlay]);
|
wlr_scene_node_reparent(&selmon->sel->scene->node, layers[LyrOverlay]);
|
||||||
wlr_scene_node_raise_to_top(&selmon->sel->scene->node);
|
wlr_scene_node_raise_to_top(&selmon->sel->scene->node);
|
||||||
} else if (client_should_overtop(selmon->sel) && selmon->sel->isfloating) {
|
} else if (client_should_overtop(selmon->sel) && selmon->sel->isfloating) {
|
||||||
wlr_scene_node_reparent(&selmon->sel->scene->node,
|
wlr_scene_node_reparent(&selmon->sel->scene->node, layers[LyrTop]);
|
||||||
layers[LyrFSorOverTop]);
|
|
||||||
} else {
|
} else {
|
||||||
wlr_scene_node_reparent(
|
wlr_scene_node_reparent(
|
||||||
&selmon->sel->scene->node,
|
&selmon->sel->scene->node,
|
||||||
layers[selmon->sel->isfloating ? LyrFloat : LyrTile]);
|
layers[selmon->sel->isfloating ? LyrTop : LyrTile]);
|
||||||
}
|
}
|
||||||
setborder_color(selmon->sel);
|
setborder_color(selmon->sel);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
21
src/mango.c
21
src/mango.c
|
|
@ -143,10 +143,8 @@ enum {
|
||||||
LyrBlur,
|
LyrBlur,
|
||||||
LyrBottom,
|
LyrBottom,
|
||||||
LyrTile,
|
LyrTile,
|
||||||
LyrFloat,
|
|
||||||
LyrTop,
|
LyrTop,
|
||||||
LyrFadeOut,
|
LyrFadeOut,
|
||||||
LyrFSorOverTop,
|
|
||||||
LyrOverlay,
|
LyrOverlay,
|
||||||
LyrIMPopup, // text-input layer
|
LyrIMPopup, // text-input layer
|
||||||
LyrBlock,
|
LyrBlock,
|
||||||
|
|
@ -2310,6 +2308,9 @@ void commitpopup(struct wl_listener *listener, void *data) {
|
||||||
type = toplevel_from_wlr_surface(popup->base->surface, &c, &l);
|
type = toplevel_from_wlr_surface(popup->base->surface, &c, &l);
|
||||||
if (!popup->parent || type < 0)
|
if (!popup->parent || type < 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
wlr_scene_node_raise_to_top(popup->parent->data);
|
||||||
|
|
||||||
popup->base->surface->data =
|
popup->base->surface->data =
|
||||||
wlr_scene_xdg_surface_create(popup->parent->data, popup->base);
|
wlr_scene_xdg_surface_create(popup->parent->data, popup->base);
|
||||||
if ((l && !l->mon) || (c && !c->mon)) {
|
if ((l && !l->mon) || (c && !c->mon)) {
|
||||||
|
|
@ -2320,6 +2321,7 @@ void commitpopup(struct wl_listener *listener, void *data) {
|
||||||
box.x -= (type == LayerShell ? l->scene->node.x : c->geom.x);
|
box.x -= (type == LayerShell ? l->scene->node.x : c->geom.x);
|
||||||
box.y -= (type == LayerShell ? l->scene->node.y : c->geom.y);
|
box.y -= (type == LayerShell ? l->scene->node.y : c->geom.y);
|
||||||
wlr_xdg_popup_unconstrain_from_box(popup, &box);
|
wlr_xdg_popup_unconstrain_from_box(popup, &box);
|
||||||
|
|
||||||
wl_list_remove(&listener->link);
|
wl_list_remove(&listener->link);
|
||||||
free(listener);
|
free(listener);
|
||||||
}
|
}
|
||||||
|
|
@ -4336,10 +4338,10 @@ setfloating(Client *c, int floating) {
|
||||||
if (c->isoverlay) {
|
if (c->isoverlay) {
|
||||||
wlr_scene_node_reparent(&c->scene->node, layers[LyrOverlay]);
|
wlr_scene_node_reparent(&c->scene->node, layers[LyrOverlay]);
|
||||||
} else if (client_should_overtop(c) && c->isfloating) {
|
} else if (client_should_overtop(c) && c->isfloating) {
|
||||||
wlr_scene_node_reparent(&c->scene->node, layers[LyrFSorOverTop]);
|
wlr_scene_node_reparent(&c->scene->node, layers[LyrTop]);
|
||||||
} else {
|
} else {
|
||||||
wlr_scene_node_reparent(&c->scene->node,
|
wlr_scene_node_reparent(&c->scene->node,
|
||||||
layers[c->isfloating ? LyrFloat : LyrTile]);
|
layers[c->isfloating ? LyrTop : LyrTile]);
|
||||||
}
|
}
|
||||||
|
|
||||||
arrange(c->mon, false);
|
arrange(c->mon, false);
|
||||||
|
|
@ -4390,7 +4392,7 @@ void setmaxmizescreen(Client *c, int maxmizescreen) {
|
||||||
}
|
}
|
||||||
|
|
||||||
wlr_scene_node_reparent(&c->scene->node, layers[maxmizescreen ? LyrTile
|
wlr_scene_node_reparent(&c->scene->node, layers[maxmizescreen ? LyrTile
|
||||||
: c->isfloating ? LyrFloat
|
: c->isfloating ? LyrTop
|
||||||
: LyrTile]);
|
: LyrTile]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4440,12 +4442,11 @@ void setfullscreen(Client *c, int fullscreen) // 用自定义全屏代理自带
|
||||||
if (c->isoverlay) {
|
if (c->isoverlay) {
|
||||||
wlr_scene_node_reparent(&c->scene->node, layers[LyrOverlay]);
|
wlr_scene_node_reparent(&c->scene->node, layers[LyrOverlay]);
|
||||||
} else if (client_should_overtop(c) && c->isfloating) {
|
} else if (client_should_overtop(c) && c->isfloating) {
|
||||||
wlr_scene_node_reparent(&c->scene->node, layers[LyrFSorOverTop]);
|
wlr_scene_node_reparent(&c->scene->node, layers[LyrTop]);
|
||||||
} else {
|
} else {
|
||||||
wlr_scene_node_reparent(&c->scene->node,
|
wlr_scene_node_reparent(
|
||||||
layers[fullscreen ? LyrFSorOverTop
|
&c->scene->node,
|
||||||
: c->isfloating ? LyrFloat
|
layers[fullscreen || c->isfloating ? LyrTop : LyrTile]);
|
||||||
: LyrTile]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
arrange(c->mon, false);
|
arrange(c->mon, false);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue