mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-02-05 04:06:28 -05:00
opt: not sync scroller proportion to stack window
This commit is contained in:
parent
b1e66b853e
commit
4e4191fd60
4 changed files with 13 additions and 18 deletions
|
|
@ -1659,8 +1659,6 @@ int32_t scroller_stack(const Arg *arg) {
|
|||
stack_tail = stack_tail->next_in_stack;
|
||||
}
|
||||
|
||||
c->scroller_proportion = stack_head->scroller_proportion;
|
||||
|
||||
// Add c to the stack
|
||||
stack_tail->next_in_stack = c;
|
||||
c->prev_in_stack = stack_tail;
|
||||
|
|
|
|||
|
|
@ -379,6 +379,7 @@ void resize_tile_scroller(Client *grabc, bool isdrag, int32_t offsetx,
|
|||
float delta_x, delta_y;
|
||||
float new_scroller_proportion;
|
||||
float new_stack_proportion;
|
||||
Client *stack_head = get_scroll_stack_head(grabc);
|
||||
|
||||
if (grabc && grabc->mon->visible_tiling_clients == 1 &&
|
||||
!scroller_ignore_proportion_single)
|
||||
|
|
@ -390,7 +391,7 @@ void resize_tile_scroller(Client *grabc, bool isdrag, int32_t offsetx,
|
|||
start_drag_window = true;
|
||||
|
||||
// 记录初始状态
|
||||
grabc->old_scroller_pproportion = grabc->scroller_proportion;
|
||||
stack_head->old_scroller_pproportion = stack_head->scroller_proportion;
|
||||
grabc->old_stack_proportion = grabc->stack_proportion;
|
||||
|
||||
grabc->cursor_in_left_half =
|
||||
|
|
@ -411,19 +412,22 @@ void resize_tile_scroller(Client *grabc, bool isdrag, int32_t offsetx,
|
|||
grabc->old_master_inner_per = grabc->master_inner_per;
|
||||
grabc->old_stack_inner_per = grabc->stack_inner_per;
|
||||
grabc->drag_begin_geom = grabc->geom;
|
||||
grabc->old_scroller_pproportion = grabc->scroller_proportion;
|
||||
stack_head->old_scroller_pproportion =
|
||||
stack_head->scroller_proportion;
|
||||
grabc->old_stack_proportion = grabc->stack_proportion;
|
||||
grabc->cursor_in_upper_half = false;
|
||||
grabc->cursor_in_left_half = false;
|
||||
}
|
||||
|
||||
if (isvertical) {
|
||||
delta_y = (float)(offsety) * (grabc->old_scroller_pproportion) /
|
||||
delta_y = (float)(offsety) *
|
||||
(stack_head->old_scroller_pproportion) /
|
||||
grabc->drag_begin_geom.height;
|
||||
delta_x = (float)(offsetx) * (grabc->old_stack_proportion) /
|
||||
grabc->drag_begin_geom.width;
|
||||
} else {
|
||||
delta_x = (float)(offsetx) * (grabc->old_scroller_pproportion) /
|
||||
delta_x = (float)(offsetx) *
|
||||
(stack_head->old_scroller_pproportion) /
|
||||
grabc->drag_begin_geom.width;
|
||||
delta_y = (float)(offsety) * (grabc->old_stack_proportion) /
|
||||
grabc->drag_begin_geom.height;
|
||||
|
|
@ -474,11 +478,13 @@ void resize_tile_scroller(Client *grabc, bool isdrag, int32_t offsetx,
|
|||
|
||||
// 直接设置新的比例,基于初始值 + 变化量
|
||||
if (isvertical) {
|
||||
new_scroller_proportion = grabc->old_scroller_pproportion + delta_y;
|
||||
new_scroller_proportion =
|
||||
stack_head->old_scroller_pproportion + delta_y;
|
||||
new_stack_proportion = grabc->old_stack_proportion + delta_x;
|
||||
|
||||
} else {
|
||||
new_scroller_proportion = grabc->old_scroller_pproportion + delta_x;
|
||||
new_scroller_proportion =
|
||||
stack_head->old_scroller_pproportion + delta_x;
|
||||
new_stack_proportion = grabc->old_stack_proportion + delta_y;
|
||||
}
|
||||
|
||||
|
|
@ -487,16 +493,9 @@ void resize_tile_scroller(Client *grabc, bool isdrag, int32_t offsetx,
|
|||
fmaxf(0.1f, fminf(1.0f, new_scroller_proportion));
|
||||
new_stack_proportion = fmaxf(0.1f, fminf(1.0f, new_stack_proportion));
|
||||
|
||||
grabc->scroller_proportion = new_scroller_proportion;
|
||||
grabc->stack_proportion = new_stack_proportion;
|
||||
|
||||
Client *stack_head = get_scroll_stack_head(grabc);
|
||||
Client *iter = stack_head;
|
||||
|
||||
while (iter) {
|
||||
iter->scroller_proportion = grabc->scroller_proportion;
|
||||
iter = iter->next_in_stack;
|
||||
}
|
||||
stack_head->scroller_proportion = new_scroller_proportion;
|
||||
|
||||
if (!isdrag) {
|
||||
arrange(grabc->mon, false, false);
|
||||
|
|
|
|||
|
|
@ -218,7 +218,6 @@ void arrange_stack(Client *scroller_stack_head, struct wlr_box geometry,
|
|||
Client *iter = scroller_stack_head;
|
||||
while (iter) {
|
||||
stack_size++;
|
||||
iter->scroller_proportion = scroller_stack_head->scroller_proportion;
|
||||
iter = iter->next_in_stack;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -205,7 +205,6 @@ void arrange_stack_vertical(Client *scroller_stack_head,
|
|||
Client *iter = scroller_stack_head;
|
||||
while (iter) {
|
||||
stack_size++;
|
||||
iter->scroller_proportion = scroller_stack_head->scroller_proportion;
|
||||
iter = iter->next_in_stack;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue