opt: optimize focus change when change monitor
This commit is contained in:
17
src/mango.c
17
src/mango.c
@@ -3215,14 +3215,6 @@ void focusclient(Client *c, int lift) {
|
||||
client_set_unfocused_opacity_animation(last_focus_client);
|
||||
}
|
||||
|
||||
wl_list_for_each(um, &mons, link) {
|
||||
if (um->wlr_output->enabled && um != selmon && um->sel &&
|
||||
!um->sel->iskilling && um->sel->isfocusing) {
|
||||
um->sel->isfocusing = false;
|
||||
client_set_unfocused_opacity_animation(um->sel);
|
||||
}
|
||||
}
|
||||
|
||||
client_set_focused_opacity_animation(c);
|
||||
|
||||
// decide whether need to re-arrange
|
||||
@@ -3242,6 +3234,15 @@ void focusclient(Client *c, int lift) {
|
||||
c->isurgent = 0;
|
||||
}
|
||||
|
||||
// update other monitor focus disappear
|
||||
wl_list_for_each(um, &mons, link) {
|
||||
if (um->wlr_output->enabled && um != selmon && um->sel &&
|
||||
!um->sel->iskilling && um->sel->isfocusing) {
|
||||
um->sel->isfocusing = false;
|
||||
client_set_unfocused_opacity_animation(um->sel);
|
||||
}
|
||||
}
|
||||
|
||||
if (c && !c->iskilling && c->foreign_toplevel)
|
||||
wlr_foreign_toplevel_handle_v1_set_activated(c->foreign_toplevel, true);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user