mirror of
https://github.com/alacritty/alacritty.git
synced 2024-11-25 14:05:41 -05:00
Fix unclickable URLs with scrolled viewport
Since scrolling the terminal moves around the underlying data structure of the terminal, the URL selection would search for the URL at the position where the click would have been without any scrolling. By adding the viewport offset to the click position, the URL clicking now searches at the correct location. This fixes https://github.com/jwilm/alacritty/issues/2076.
This commit is contained in:
parent
a7a6bf53d4
commit
e561ae3733
3 changed files with 9 additions and 2 deletions
|
@ -24,6 +24,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
- Allow disabling URL launching by setting the value of `mouse.url.launcher` to `None`
|
||||
- Corrected the `window.decorations` config documentation for macOS
|
||||
- Fix IME position on HiDPI displays
|
||||
- URLs not opening while terminal is scrolled
|
||||
|
||||
## Version 0.2.7
|
||||
|
||||
|
|
|
@ -465,6 +465,11 @@ impl<T> Grid<T> {
|
|||
pub fn contains(&self, point: &Point) -> bool {
|
||||
self.lines > point.line && self.cols > point.col
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn display_offset(&self) -> usize {
|
||||
self.display_offset
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a, T> Iterator for GridIterator<'a, T> {
|
||||
|
|
|
@ -97,10 +97,11 @@ impl Search for Term {
|
|||
}
|
||||
|
||||
fn url_search(&self, mut point: Point<usize>) -> Option<String> {
|
||||
// Switch first line from top to bottom
|
||||
point.line = self.grid.num_lines().0 - point.line - 1;
|
||||
|
||||
// Limit the starting point to the last line in the history
|
||||
point.line = min(point.line, self.grid.len() - 1);
|
||||
// Remove viewport scroll offset
|
||||
point.line += self.grid.display_offset();
|
||||
|
||||
// Create forwards and backwards iterators
|
||||
let iterf = self.grid.iter_from(point);
|
||||
|
|
Loading…
Reference in a new issue