mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2026-03-22 05:34:18 -04:00
opt: avoid opacity flickering in focus animation when open new window
This commit is contained in:
parent
16e361e1ca
commit
8ba259fbb7
3 changed files with 25 additions and 34 deletions
|
|
@ -1054,20 +1054,11 @@ void client_set_focused_opacity_animation(Client *c) {
|
||||||
sizeof(c->opacity_animation.target_border_color));
|
sizeof(c->opacity_animation.target_border_color));
|
||||||
c->opacity_animation.target_opacity = c->focused_opacity;
|
c->opacity_animation.target_opacity = c->focused_opacity;
|
||||||
c->opacity_animation.time_started = get_now_in_ms();
|
c->opacity_animation.time_started = get_now_in_ms();
|
||||||
if (c->opacity_animation.running) {
|
memcpy(c->opacity_animation.initial_border_color,
|
||||||
memcpy(c->opacity_animation.initial_border_color,
|
c->opacity_animation.current_border_color,
|
||||||
c->opacity_animation.current_border_color,
|
sizeof(c->opacity_animation.initial_border_color));
|
||||||
sizeof(c->opacity_animation.initial_border_color));
|
c->opacity_animation.initial_opacity = c->opacity_animation.current_opacity;
|
||||||
c->opacity_animation.initial_opacity =
|
|
||||||
c->opacity_animation.current_opacity;
|
|
||||||
} else {
|
|
||||||
memcpy(c->opacity_animation.initial_border_color, bordercolor,
|
|
||||||
sizeof(c->opacity_animation.initial_border_color));
|
|
||||||
memcpy(c->opacity_animation.current_border_color, bordercolor,
|
|
||||||
sizeof(c->opacity_animation.current_border_color));
|
|
||||||
c->opacity_animation.initial_opacity = c->unfocused_opacity;
|
|
||||||
c->opacity_animation.current_opacity = c->unfocused_opacity;
|
|
||||||
}
|
|
||||||
c->opacity_animation.running = true;
|
c->opacity_animation.running = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1087,20 +1078,10 @@ void client_set_unfocused_opacity_animation(Client *c) {
|
||||||
c->opacity_animation.target_opacity = c->unfocused_opacity;
|
c->opacity_animation.target_opacity = c->unfocused_opacity;
|
||||||
c->opacity_animation.time_started = get_now_in_ms();
|
c->opacity_animation.time_started = get_now_in_ms();
|
||||||
|
|
||||||
if (c->opacity_animation.running) {
|
memcpy(c->opacity_animation.initial_border_color,
|
||||||
memcpy(c->opacity_animation.initial_border_color,
|
c->opacity_animation.current_border_color,
|
||||||
c->opacity_animation.current_border_color,
|
sizeof(c->opacity_animation.initial_border_color));
|
||||||
sizeof(c->opacity_animation.initial_border_color));
|
c->opacity_animation.initial_opacity = c->opacity_animation.current_opacity;
|
||||||
c->opacity_animation.initial_opacity =
|
|
||||||
c->opacity_animation.current_opacity;
|
|
||||||
} else {
|
|
||||||
memcpy(c->opacity_animation.initial_border_color, border_color,
|
|
||||||
sizeof(c->opacity_animation.initial_border_color));
|
|
||||||
memcpy(c->opacity_animation.current_border_color, border_color,
|
|
||||||
sizeof(c->opacity_animation.current_border_color));
|
|
||||||
c->opacity_animation.initial_opacity = c->focused_opacity;
|
|
||||||
c->opacity_animation.current_opacity = c->focused_opacity;
|
|
||||||
}
|
|
||||||
|
|
||||||
c->opacity_animation.running = true;
|
c->opacity_animation.running = true;
|
||||||
}
|
}
|
||||||
|
|
@ -1135,6 +1116,10 @@ bool client_apply_focus_opacity(Client *c) {
|
||||||
if (target_opacity > opacity) {
|
if (target_opacity > opacity) {
|
||||||
target_opacity = opacity;
|
target_opacity = opacity;
|
||||||
}
|
}
|
||||||
|
memcpy(c->opacity_animation.current_border_color,
|
||||||
|
c->opacity_animation.target_border_color,
|
||||||
|
sizeof(c->opacity_animation.current_border_color));
|
||||||
|
c->opacity_animation.current_opacity = target_opacity;
|
||||||
client_set_opacity(c, target_opacity);
|
client_set_opacity(c, target_opacity);
|
||||||
client_set_border_color(c, c->opacity_animation.target_border_color);
|
client_set_border_color(c, c->opacity_animation.target_border_color);
|
||||||
} else if (animations && c->opacity_animation.running) {
|
} else if (animations && c->opacity_animation.running) {
|
||||||
|
|
|
||||||
|
|
@ -897,12 +897,12 @@ FuncType parse_func_name(char *func_name, Arg *arg, char *arg_value,
|
||||||
char *arg_value5) {
|
char *arg_value5) {
|
||||||
|
|
||||||
FuncType func = NULL;
|
FuncType func = NULL;
|
||||||
(*arg).i = 0;
|
(*arg).i = 0;
|
||||||
(*arg).i2 = 0;
|
(*arg).i2 = 0;
|
||||||
(*arg).f = 0.0f;
|
(*arg).f = 0.0f;
|
||||||
(*arg).f2 = 0.0f;
|
(*arg).f2 = 0.0f;
|
||||||
(*arg).ui = 0;
|
(*arg).ui = 0;
|
||||||
(*arg).ui2 = 0;
|
(*arg).ui2 = 0;
|
||||||
(*arg).v = NULL;
|
(*arg).v = NULL;
|
||||||
(*arg).v2 = NULL;
|
(*arg).v2 = NULL;
|
||||||
(*arg).v3 = NULL;
|
(*arg).v3 = NULL;
|
||||||
|
|
|
||||||
|
|
@ -3825,6 +3825,12 @@ void init_client_properties(Client *c) {
|
||||||
c->stack_proportion = 0.0f;
|
c->stack_proportion = 0.0f;
|
||||||
c->next_in_stack = NULL;
|
c->next_in_stack = NULL;
|
||||||
c->prev_in_stack = NULL;
|
c->prev_in_stack = NULL;
|
||||||
|
memcpy(c->opacity_animation.initial_border_color, bordercolor,
|
||||||
|
sizeof(c->opacity_animation.initial_border_color));
|
||||||
|
memcpy(c->opacity_animation.current_border_color, bordercolor,
|
||||||
|
sizeof(c->opacity_animation.current_border_color));
|
||||||
|
c->opacity_animation.initial_opacity = c->unfocused_opacity;
|
||||||
|
c->opacity_animation.current_opacity = c->unfocused_opacity;
|
||||||
}
|
}
|
||||||
|
|
||||||
void // old fix to 0.5
|
void // old fix to 0.5
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue