mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2025-10-29 05:40:21 -04:00
opt: allow switch focus between fullscreen and floating window in focusstack
This commit is contained in:
parent
04e3bd6861
commit
918a00d578
4 changed files with 13 additions and 2 deletions
|
|
@ -212,7 +212,7 @@ int focusstack(const Arg *arg) {
|
|||
Client *sel = focustop(selmon);
|
||||
Client *tc = NULL;
|
||||
|
||||
if (!sel || (sel->isfullscreen && !client_has_children(sel)))
|
||||
if (!sel)
|
||||
return 0;
|
||||
if (arg->i == NEXT) {
|
||||
tc = get_next_stack_client(sel, false);
|
||||
|
|
|
|||
|
|
@ -343,11 +343,17 @@ Client *get_next_stack_client(Client *c, bool reverse) {
|
|||
Client *next = NULL;
|
||||
if (reverse) {
|
||||
wl_list_for_each_reverse(next, &c->link, link) {
|
||||
if (c->mon->has_visible_fullscreen_client && !next->isfloating &&
|
||||
!next->isfullscreen)
|
||||
continue;
|
||||
if (VISIBLEON(next, c->mon) && next != c)
|
||||
return next;
|
||||
}
|
||||
} else {
|
||||
wl_list_for_each(next, &c->link, link) {
|
||||
if (c->mon->has_visible_fullscreen_client && !next->isfloating &&
|
||||
!next->isfullscreen)
|
||||
continue;
|
||||
if (VISIBLEON(next, c->mon) && next != c)
|
||||
return next;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -592,6 +592,7 @@ arrange(Monitor *m, bool want_animation) {
|
|||
return;
|
||||
m->visible_clients = 0;
|
||||
m->visible_tiling_clients = 0;
|
||||
m->has_visible_fullscreen_client = false;
|
||||
|
||||
wl_list_for_each(c, &clients, link) {
|
||||
|
||||
|
|
@ -603,6 +604,10 @@ arrange(Monitor *m, bool want_animation) {
|
|||
|
||||
if (VISIBLEON(c, m)) {
|
||||
m->visible_clients++;
|
||||
|
||||
if (c->isfullscreen)
|
||||
m->has_visible_fullscreen_client = true;
|
||||
|
||||
if (ISTILED(c)) {
|
||||
m->visible_tiling_clients++;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -443,6 +443,7 @@ struct Monitor {
|
|||
int asleep;
|
||||
unsigned int visible_clients;
|
||||
unsigned int visible_tiling_clients;
|
||||
bool has_visible_fullscreen_client;
|
||||
struct wlr_scene_optimized_blur *blur;
|
||||
char last_surface_ws_name[256];
|
||||
struct wlr_ext_workspace_group_handle_v1 *ext_group;
|
||||
|
|
@ -4531,7 +4532,6 @@ void setfullscreen(Client *c, int fullscreen) // 用自定义全屏代理自带
|
|||
wlr_scene_node_raise_to_top(&c->scene->node); // 将视图提升到顶层
|
||||
resize(c, c->mon->m, 1);
|
||||
c->isfullscreen = 1;
|
||||
// c->isfloating = 0;
|
||||
} else {
|
||||
c->bw = c->isnoborder ? 0 : borderpx;
|
||||
c->isfullscreen = 0;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue