diff options
Diffstat (limited to 'src/client/shell/state.rs')
| -rw-r--r-- | src/client/shell/state.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/client/shell/state.rs b/src/client/shell/state.rs index b30f57d0..81845d35 100644 --- a/src/client/shell/state.rs +++ b/src/client/shell/state.rs @@ -1643,19 +1643,21 @@ impl ClientShellState { let (Some(previous), Some(next)) = (previous, next) else { return false; }; - previous.content_revision != next.content_revision + previous.inner_rect.width != next.inner_rect.width + || previous.inner_rect.height != next.inner_rect.height + || previous.alternate_screen_active != next.alternate_screen_active + // Manual mouse selections track a live buffer range, not a content revision. + || (self.config.copy_on_select + && previous.content_revision != next.content_revision && (!previous.content_revision.is_multiple_of(2) || !next.content_revision.is_multiple_of(2) - || previous.inner_rect.width != next.inner_rect.width - || previous.inner_rect.height != next.inner_rect.height - || previous.alternate_screen_active != next.alternate_screen_active || !selection_cells_unchanged( selection, previous_surface, previous, &surface, next, - )) + ))) }); if selection_content_changed { self.selection = None; |
