-
-
Notifications
You must be signed in to change notification settings - Fork 652
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Toward enable should_render
(fix pane render)
#318
Merged
Merged
Changes from all commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
4c94f57
fix pane render when switch/resize tab
horasal d949a99
render when reflow_lines
horasal 8c47401
back to always render because widechar issue
horasal aa25ba2
fix clippy
horasal e1f7c72
force_render when current grid contains widechar
horasal 05e150a
bug fix
horasal 98c5ec4
pane_contains -> panes_contain
horasal 0bd52c2
Merge branch 'main' into fix_tab_render
horasal 6bd2dcf
fix conflict
horasal b5f4408
Merge branch 'widechar_force_render' into fix_tab_render
horasal 392a7d6
fix(terminal): bring back should_render
imsnif File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -102,6 +102,9 @@ pub trait Pane { | |
fn position_and_size_override(&self) -> Option<PositionAndSize>; | ||
fn should_render(&self) -> bool; | ||
fn set_should_render(&mut self, should_render: bool); | ||
// FIXME: this method is used to trigger a force render to hide widechar problem | ||
// it should be removed when we can handle widechars | ||
fn contains_widechar(&self) -> bool; | ||
fn selectable(&self) -> bool; | ||
fn set_selectable(&mut self, selectable: bool); | ||
fn set_invisible_borders(&mut self, invisible_borders: bool); | ||
|
@@ -694,18 +697,31 @@ impl Tab { | |
pub fn toggle_fullscreen_is_active(&mut self) { | ||
self.fullscreen_is_active = !self.fullscreen_is_active; | ||
} | ||
pub fn set_force_render(&mut self) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Nice. I would have gone with something on the state of |
||
for pane in self.panes.values_mut() { | ||
pane.set_should_render(true); | ||
} | ||
} | ||
pub fn is_sync_panes_active(&self) -> bool { | ||
self.synchronize_is_active | ||
} | ||
pub fn toggle_sync_panes_is_active(&mut self) { | ||
self.synchronize_is_active = !self.synchronize_is_active; | ||
} | ||
pub fn panes_contain_widechar(&self) -> bool { | ||
self.panes.iter().any(|(_, p)| p.contains_widechar()) | ||
} | ||
pub fn render(&mut self) { | ||
if self.active_terminal.is_none() { | ||
// we might not have an active terminal if we closed the last pane | ||
// in that case, we should not render as the app is exiting | ||
return; | ||
} | ||
// if any pane contain widechar, all pane in the same row will messup. We should render them every time | ||
// FIXME: remove this when we can handle widechars correctly | ||
if self.panes_contain_widechar() { | ||
self.set_force_render() | ||
} | ||
let mut stdout = self.os_api.get_stdout_writer(); | ||
let mut boundaries = Boundaries::new( | ||
self.full_screen_ws.columns as u16, | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Elegant!