mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-05-23 21:37:53 -04:00
opt: optimize code struct for exchange_two_client
This commit is contained in:
parent
50e1b652b2
commit
adeaaada45
6 changed files with 266 additions and 267 deletions
51
src/action/client.h
Normal file
51
src/action/client.h
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
static void client_swap_layout_properties(Client *c1, Client *c2) {
|
||||
// Grid 属性交换
|
||||
double grid_col_per = c1->grid_col_per;
|
||||
double grid_row_per = c1->grid_row_per;
|
||||
int32_t grid_col_idx = c1->grid_col_idx;
|
||||
int32_t grid_row_idx = c1->grid_row_idx;
|
||||
|
||||
c1->grid_col_per = c2->grid_col_per;
|
||||
c1->grid_row_per = c2->grid_row_per;
|
||||
c1->grid_col_idx = c2->grid_col_idx;
|
||||
c1->grid_row_idx = c2->grid_row_idx;
|
||||
|
||||
c2->grid_col_per = grid_col_per;
|
||||
c2->grid_row_per = grid_row_per;
|
||||
c2->grid_col_idx = grid_col_idx;
|
||||
c2->grid_row_idx = grid_row_idx;
|
||||
|
||||
// Master / Stack 属性交换
|
||||
double master_inner_per = c1->master_inner_per;
|
||||
double master_mfact_per = c1->master_mfact_per;
|
||||
double stack_inner_per = c1->stack_inner_per;
|
||||
|
||||
c1->master_inner_per = c2->master_inner_per;
|
||||
c1->master_mfact_per = c2->master_mfact_per;
|
||||
c1->stack_inner_per = c2->stack_inner_per;
|
||||
|
||||
c2->master_inner_per = master_inner_per;
|
||||
c2->master_mfact_per = master_mfact_per;
|
||||
c2->stack_inner_per = stack_inner_per;
|
||||
}
|
||||
|
||||
static void client_swap_monitors_and_tags(Client *c1, Client *c2) {
|
||||
Monitor *tmp_mon = c2->mon;
|
||||
uint32_t tmp_tags = c2->tags;
|
||||
c2->mon = c1->mon;
|
||||
c1->mon = tmp_mon;
|
||||
c2->tags = c1->tags;
|
||||
c1->tags = tmp_tags;
|
||||
}
|
||||
|
||||
static void finish_exchange_arrange_and_focus(Client *c1, Client *c2,
|
||||
Monitor *m1, Monitor *m2) {
|
||||
if (m1 != m2) {
|
||||
arrange(c1->mon, false, false);
|
||||
arrange(c2->mon, false, false);
|
||||
} else {
|
||||
arrange(c1->mon, false, false);
|
||||
}
|
||||
wl_list_remove(&c2->flink);
|
||||
wl_list_insert(&c1->flink, &c2->flink);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue