mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-05-02 06:46:29 -04:00
fix: fix caculate reset per in ct layout
This commit is contained in:
parent
67334cfeb6
commit
0e233f6756
1 changed files with 84 additions and 23 deletions
107
src/mango.c
107
src/mango.c
|
|
@ -1379,30 +1379,68 @@ void applyrules(Client *c) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void reset_size_per_mon(Monitor *m, double total_slave_hight_percent,
|
void reset_size_per_mon(Monitor *m, int tile_cilent_num,
|
||||||
|
double total_left_slave_hight_percent,
|
||||||
|
double total_right_slave_hight_percent,
|
||||||
|
double total_slave_hight_percent,
|
||||||
double total_master_height_percent, int master_num,
|
double total_master_height_percent, int master_num,
|
||||||
int slave_num) {
|
int slave_num) {
|
||||||
Client *c;
|
Client *c;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
wl_list_for_each(c, &clients, link) {
|
unsigned int stack_index;
|
||||||
if (VISIBLEON(c, m) && ISTILED(c)) {
|
unsigned int nmasters = m->pertag->nmasters[m->pertag->curtag];
|
||||||
|
|
||||||
if (total_master_height_percent <= 0.0)
|
if (m->pertag->ltidxs[m->pertag->curtag]->id != CENTER_TILE) {
|
||||||
return;
|
|
||||||
if (i < m->pertag->nmasters[m->pertag->curtag]) {
|
wl_list_for_each(c, &clients, link) {
|
||||||
c->ismaster = true;
|
if (VISIBLEON(c, m) && ISTILED(c)) {
|
||||||
c->slave_height_per = slave_num ? 1.0f / slave_num : 1.0f;
|
|
||||||
c->master_height_per =
|
if (total_master_height_percent <= 0.0)
|
||||||
c->master_height_per / total_master_height_percent;
|
return;
|
||||||
} else {
|
if (i < m->pertag->nmasters[m->pertag->curtag]) {
|
||||||
c->ismaster = false;
|
c->ismaster = true;
|
||||||
c->master_height_per = 1.0f / master_num;
|
c->slave_height_per = slave_num ? 1.0f / slave_num : 1.0f;
|
||||||
c->slave_height_per =
|
c->master_height_per =
|
||||||
c->slave_height_per / total_slave_hight_percent;
|
c->master_height_per / total_master_height_percent;
|
||||||
|
} else {
|
||||||
|
c->ismaster = false;
|
||||||
|
c->master_height_per = 1.0f / master_num;
|
||||||
|
c->slave_height_per =
|
||||||
|
c->slave_height_per / total_slave_hight_percent;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
i++;
|
i++;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
wl_list_for_each(c, &clients, link) {
|
||||||
|
if (VISIBLEON(c, m) && ISTILED(c)) {
|
||||||
|
|
||||||
|
if (total_master_height_percent <= 0.0)
|
||||||
|
return;
|
||||||
|
if (i < m->pertag->nmasters[m->pertag->curtag]) {
|
||||||
|
c->ismaster = true;
|
||||||
|
c->slave_height_per =
|
||||||
|
slave_num > 1 ? 2.0f / slave_num : 1.0f;
|
||||||
|
c->master_height_per =
|
||||||
|
c->master_height_per / total_master_height_percent;
|
||||||
|
} else {
|
||||||
|
stack_index = i - nmasters;
|
||||||
|
|
||||||
|
c->ismaster = false;
|
||||||
|
c->master_height_per = 1.0f / master_num;
|
||||||
|
if ((stack_index % 2) ^ (tile_cilent_num % 2 == 0)) {
|
||||||
|
c->slave_height_per = c->slave_height_per /
|
||||||
|
total_right_slave_hight_percent;
|
||||||
|
} else {
|
||||||
|
c->slave_height_per = c->slave_height_per /
|
||||||
|
total_left_slave_hight_percent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
i++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1411,7 +1449,11 @@ arrange(Monitor *m, bool want_animation) {
|
||||||
Client *c = NULL;
|
Client *c = NULL;
|
||||||
double total_slave_height_percent = 0;
|
double total_slave_height_percent = 0;
|
||||||
double total_master_height_percent = 0;
|
double total_master_height_percent = 0;
|
||||||
|
double total_right_slave_hight_percent = 0;
|
||||||
|
double total_left_slave_hight_percent = 0;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
int nmasters = 0;
|
||||||
|
int stack_index = 0;
|
||||||
int master_num = 0;
|
int master_num = 0;
|
||||||
int slave_num = 0;
|
int slave_num = 0;
|
||||||
|
|
||||||
|
|
@ -1420,9 +1462,20 @@ arrange(Monitor *m, bool want_animation) {
|
||||||
|
|
||||||
if (!m->wlr_output->enabled)
|
if (!m->wlr_output->enabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
m->visible_clients = 0;
|
m->visible_clients = 0;
|
||||||
m->visible_tiling_clients = 0;
|
m->visible_tiling_clients = 0;
|
||||||
|
|
||||||
|
wl_list_for_each(c, &clients, link) {
|
||||||
|
if (VISIBLEON(c, m)) {
|
||||||
|
m->visible_clients++;
|
||||||
|
if (ISTILED(c)) {
|
||||||
|
m->visible_tiling_clients++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
nmasters = m->pertag->nmasters[m->pertag->curtag];
|
||||||
|
|
||||||
wl_list_for_each(c, &clients, link) {
|
wl_list_for_each(c, &clients, link) {
|
||||||
if (c->iskilling)
|
if (c->iskilling)
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -1435,8 +1488,6 @@ arrange(Monitor *m, bool want_animation) {
|
||||||
|
|
||||||
if (c->mon == m) {
|
if (c->mon == m) {
|
||||||
if (VISIBLEON(c, m)) {
|
if (VISIBLEON(c, m)) {
|
||||||
|
|
||||||
m->visible_clients++;
|
|
||||||
if (ISTILED(c)) {
|
if (ISTILED(c)) {
|
||||||
|
|
||||||
if (i < m->pertag->nmasters[m->pertag->curtag]) {
|
if (i < m->pertag->nmasters[m->pertag->curtag]) {
|
||||||
|
|
@ -1445,9 +1496,17 @@ arrange(Monitor *m, bool want_animation) {
|
||||||
} else {
|
} else {
|
||||||
slave_num++;
|
slave_num++;
|
||||||
total_slave_height_percent += c->slave_height_per;
|
total_slave_height_percent += c->slave_height_per;
|
||||||
|
stack_index = i - nmasters;
|
||||||
|
if ((stack_index % 2) ^
|
||||||
|
(m->visible_tiling_clients % 2 == 0)) {
|
||||||
|
total_right_slave_hight_percent +=
|
||||||
|
c->slave_height_per;
|
||||||
|
} else {
|
||||||
|
total_left_slave_hight_percent +=
|
||||||
|
c->slave_height_per;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m->visible_tiling_clients++;
|
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1463,8 +1522,10 @@ arrange(Monitor *m, bool want_animation) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
reset_size_per_mon(m, total_slave_height_percent,
|
reset_size_per_mon(
|
||||||
total_master_height_percent, master_num, slave_num);
|
m, m->visible_tiling_clients, total_left_slave_hight_percent,
|
||||||
|
total_right_slave_hight_percent, total_slave_height_percent,
|
||||||
|
total_master_height_percent, master_num, slave_num);
|
||||||
|
|
||||||
if (m->isoverview) {
|
if (m->isoverview) {
|
||||||
overviewlayout.arrange(m);
|
overviewlayout.arrange(m);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue