mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-03-24 09:06:31 -04:00
Merge branch 'mangowm:main' into main
This commit is contained in:
commit
4a9aa9189f
3 changed files with 28 additions and 4 deletions
|
|
@ -110,7 +110,9 @@ int32_t exchange_client(const Arg *arg) {
|
|||
if ((c->isfullscreen || c->ismaximizescreen) && !is_scroller_layout(c->mon))
|
||||
return 0;
|
||||
|
||||
exchange_two_client(c, direction_select(arg));
|
||||
Client *tc = direction_select(arg);
|
||||
tc = get_focused_stack_client(tc);
|
||||
exchange_two_client(c, tc);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,16 @@ void save_old_size_per(Monitor *m) {
|
|||
if (VISIBLEON(c, m) && ISTILED(c)) {
|
||||
c->old_master_inner_per = c->master_inner_per;
|
||||
c->old_stack_inner_per = c->stack_inner_per;
|
||||
} else {
|
||||
if (c->old_master_inner_per <= 0.0f ||
|
||||
c->old_master_inner_per > 1.0f) {
|
||||
c->old_master_inner_per = 1.0f;
|
||||
}
|
||||
|
||||
if (c->old_stack_inner_per <= 0.0f ||
|
||||
c->old_stack_inner_per > 1.0f) {
|
||||
c->old_stack_inner_per = 1.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -45,14 +55,16 @@ void restore_size_per(Monitor *m, Client *c) {
|
|||
}
|
||||
|
||||
if (!c->ismaster && c->old_stack_inner_per < 1.0 &&
|
||||
c->stack_inner_per < 1.0) {
|
||||
c->old_stack_inner_per > 0.0f && c->stack_inner_per < 1.0 &&
|
||||
c->stack_inner_per > 0.0f) {
|
||||
c->stack_inner_per = (1.0 - c->stack_inner_per) *
|
||||
c->old_stack_inner_per /
|
||||
(1.0 - c->old_stack_inner_per);
|
||||
}
|
||||
|
||||
if (c->ismaster && c->old_master_inner_per < 1.0 &&
|
||||
c->master_inner_per < 1.0) {
|
||||
c->old_master_inner_per > 0.0f && c->master_inner_per < 1.0 &&
|
||||
c->master_inner_per > 0.0f) {
|
||||
c->master_inner_per = (1.0 - c->master_inner_per) *
|
||||
c->old_master_inner_per /
|
||||
(1.0 - c->old_master_inner_per);
|
||||
|
|
@ -61,10 +73,12 @@ void restore_size_per(Monitor *m, Client *c) {
|
|||
wl_list_for_each(fc, &clients, link) {
|
||||
if (VISIBLEON(fc, m) && ISTILED(fc) && fc != c && !fc->ismaster &&
|
||||
fc->old_ismaster && fc->old_stack_inner_per < 1.0 &&
|
||||
fc->stack_inner_per < 1.0) {
|
||||
fc->old_stack_inner_per > 0.0f && fc->stack_inner_per < 1.0 &&
|
||||
fc->stack_inner_per > 0.0f) {
|
||||
fc->stack_inner_per = (1.0 - fc->stack_inner_per) *
|
||||
fc->old_stack_inner_per /
|
||||
(1.0 - fc->old_stack_inner_per);
|
||||
fc->old_ismaster = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4025,6 +4025,9 @@ void init_client_properties(Client *c) {
|
|||
c->master_mfact_per = 0.0f;
|
||||
c->master_inner_per = 0.0f;
|
||||
c->stack_inner_per = 0.0f;
|
||||
c->old_stack_inner_per = 0.0f;
|
||||
c->old_master_inner_per = 0.0f;
|
||||
c->old_master_mfact_per = 0.0f;
|
||||
c->isterm = 0;
|
||||
c->allow_csd = 0;
|
||||
c->force_maximize = 0;
|
||||
|
|
@ -4827,6 +4830,11 @@ void exchange_two_client(Client *c1, Client *c2) {
|
|||
} else {
|
||||
arrange(c1->mon, false, false);
|
||||
}
|
||||
|
||||
// In order to facilitate repeated exchanges for get_focused_stack_client
|
||||
// set c2 focus order behind c1
|
||||
wl_list_remove(&c2->flink);
|
||||
wl_list_insert(&c1->flink, &c2->flink);
|
||||
}
|
||||
|
||||
void set_activation_env() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue