feat: support scroll maximize and fullscreen window

This commit is contained in:
DreamMaoMao 2025-11-15 00:08:57 +08:00
parent e800e0e04a
commit 4922479226
7 changed files with 229 additions and 94 deletions

View file

@ -81,8 +81,12 @@ int defaultgaps(const Arg *arg) {
int exchange_client(const Arg *arg) {
Client *c = selmon->sel;
if (!c || c->isfloating || c->isfullscreen || c->ismaximizescreen)
if (!c || c->isfloating)
return 0;
if ((c->isfullscreen || c->ismaximizescreen) && !is_scroller_layout(c->mon))
return 0;
exchange_two_client(c, direction_select(arg));
return 0;
}
@ -494,13 +498,11 @@ int restore_minimized(const Arg *arg) {
int setlayout(const Arg *arg) {
int jk;
unsigned int target_tag = selmon->pertag->curtag ? selmon->pertag->curtag
: selmon->pertag->prevtag;
for (jk = 0; jk < LENGTH(layouts); jk++) {
if (strcmp(layouts[jk].name, arg->v) == 0) {
selmon->pertag->ltidxs[target_tag] = &layouts[jk];
selmon->pertag->ltidxs[selmon->pertag->curtag] = &layouts[jk];
clear_fullscreen_and_maximized_state(selmon);
arrange(selmon, false);
printstatus();
return 0;
@ -904,7 +906,7 @@ int switch_layout(const Arg *arg) {
break;
}
}
clear_fullscreen_and_maximized_state(selmon);
arrange(selmon, false);
printstatus();
return 0;
@ -915,6 +917,7 @@ int switch_layout(const Arg *arg) {
selmon->pertag->ltidxs[target_tag]->name) == 0) {
selmon->pertag->ltidxs[target_tag] =
jk == LENGTH(layouts) - 1 ? &layouts[0] : &layouts[jk + 1];
clear_fullscreen_and_maximized_state(selmon);
arrange(selmon, false);
printstatus();
return 0;