diff options
| author | xrun1 <[email protected]> | 2023-11-07 23:44:10 -0400 |
|---|---|---|
| committer | xrun1 <[email protected]> | 2023-11-07 23:44:10 -0400 |
| commit | 30b3dec1518631741f9edbe50790afc217e65480 (patch) | |
| tree | ce3d50079374618bdcf1e40692bcf4ec4f36d984 /src | |
| parent | Testing Issue #23 (diff) | |
| download | compfy-30b3dec1518631741f9edbe50790afc217e65480.tar.xz compfy-30b3dec1518631741f9edbe50790afc217e65480.zip | |
Don't animate hlwm tab switches (working #23 fix)
Diffstat (limited to 'src')
| -rw-r--r-- | src/win.c | 36 |
1 files changed, 16 insertions, 20 deletions
@@ -766,26 +766,22 @@ void win_process_update_flags(session_t *ps, struct managed_win *w) { w->g.height = (uint16_t)round(w->animation_h); } else { - if (ps->o.support_for_wm == WM_SUPPORT_HERB) { - - if (w->pending_g.x < -(w->g.width) && w->pending_g.y < -(w->g.height)) { - log_warn("Animation geometry postion update cancelled"); - } else { - w->animation_dest_center_x = - w->pending_g.x + w->pending_g.width * 0.5; - w->animation_dest_center_y = - w->pending_g.y + w->pending_g.height * 0.5; - w->animation_dest_w = w->pending_g.width; - w->animation_dest_h = w->pending_g.height; - } - } else { - w->animation_dest_center_x = - w->pending_g.x + w->pending_g.width * 0.5; - w->animation_dest_center_y = - w->pending_g.y + w->pending_g.height * 0.5; - w->animation_dest_w = w->pending_g.width; - w->animation_dest_h = w->pending_g.height; - } + w->animation_dest_center_x = + w->pending_g.x + w->pending_g.width * 0.5; + w->animation_dest_center_y = + w->pending_g.y + w->pending_g.height * 0.5; + + bool herb = ps->o.support_for_wm == WM_SUPPORT_HERB; + bool hidingTab = w->pending_g.x < -(w->g.width) && w->pending_g.y < -(w->g.height); + bool unhidingTab = w->g.x < -(w->g.width) && w->g.y < -(w->g.height); + + if (herb && (hidingTab || unhidingTab)) { + w->animation_center_x = w->animation_dest_center_x; + w->animation_center_y = w->animation_dest_center_y; + }; + + w->animation_dest_w = w->pending_g.width; + w->animation_dest_h = w->pending_g.height; } w->g.border_width = w->pending_g.border_width; |