Fix Git diff rendering
This commit is contained in:
19
src/app.rs
19
src/app.rs
@@ -425,6 +425,7 @@ pub(crate) enum Message {
|
||||
ToggleGitFile(PathBuf),
|
||||
OpenGitDiff(PathBuf),
|
||||
SetGitDiffMode(GitDiffMode),
|
||||
GitDiffScrolled(scrollable::Viewport),
|
||||
GitCommitMessageChanged(String),
|
||||
GitStageSelected,
|
||||
GitUnstageSelected,
|
||||
@@ -1755,6 +1756,16 @@ impl App {
|
||||
Message::ToggleGitFile(path) => self.toggle_git_file(path),
|
||||
Message::OpenGitDiff(path) => self.open_git_diff(&path),
|
||||
Message::SetGitDiffMode(mode) => self.git_diff_mode = mode,
|
||||
Message::GitDiffScrolled(viewport) => {
|
||||
let offset = scrollable::AbsoluteOffset {
|
||||
x: viewport.absolute_offset().x,
|
||||
y: 0.0,
|
||||
};
|
||||
return Task::batch([
|
||||
iced::widget::operation::scroll_to(git_diff_old_scroll_id(), offset),
|
||||
iced::widget::operation::scroll_to(git_diff_new_scroll_id(), offset),
|
||||
]);
|
||||
}
|
||||
Message::GitCommitMessageChanged(message) => self.git_commit_message = message,
|
||||
Message::GitStageSelected => self.stage_selected_git_files(),
|
||||
Message::GitUnstageSelected => self.unstage_selected_git_files(),
|
||||
@@ -2428,6 +2439,14 @@ pub(super) fn chat_scroll_id() -> iced::widget::Id {
|
||||
iced::widget::Id::new("chat-transcript")
|
||||
}
|
||||
|
||||
pub(super) fn git_diff_old_scroll_id() -> iced::widget::Id {
|
||||
iced::widget::Id::new("git-diff-old")
|
||||
}
|
||||
|
||||
pub(super) fn git_diff_new_scroll_id() -> iced::widget::Id {
|
||||
iced::widget::Id::new("git-diff-new")
|
||||
}
|
||||
|
||||
pub(super) fn composer_id() -> iced::widget::Id {
|
||||
iced::widget::Id::new("chat-composer")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user