aboutsummaryrefslogtreecommitdiff
path: root/src/client/shell/state.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/shell/state.rs')
-rw-r--r--src/client/shell/state.rs12
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;