mirror of
https://github.com/kovidgoyal/kitty
synced 2026-07-12 02:42:56 +02:00
Fix triple-click line selection not extending wrapped lines beyond viewport bottom
Similar to commit 625e984 which fixed extending into scrollback (above viewport),
this fix extends line selection below the viewport when a wrapped line continues
past the bottom edge. Adds continue_line_downwards_offscreen() and applies it
in both the initial selection and extending selection code paths.
Agent-Logs-Url: https://github.com/kovidgoyal/kitty/sessions/e548ce84-fdb7-4fd1-b3df-e1166b45f5bd
Co-authored-by: kovidgoyal <1308621+kovidgoyal@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
114cd5cbc4
commit
82bf8923cc
@@ -255,6 +255,33 @@ class TestMouse(BaseTest):
|
||||
release(x=2, button=GLFW_MOUSE_BUTTON_RIGHT)
|
||||
self.ae(sel(), 'ABCDE12345\n678')
|
||||
|
||||
# line select for wrapped lines below viewport
|
||||
s.reset()
|
||||
s.scroll(100, False)
|
||||
# draw enough content to enable scrolling: fill lines-1 visual lines, then draw a long wrapped line
|
||||
s.draw(('X' * s.columns) * (s.lines - 1))
|
||||
s.linefeed(), s.carriage_return()
|
||||
s.draw('ABCDE12345') # wraps to 2 visual lines, second one pushed below viewport
|
||||
# scroll up by 1 so top visual line of the wrapped text is visible but bottom wraps off-screen
|
||||
s.scroll(1, True)
|
||||
multi_click(x=1, y=s.lines - 1, count=3)
|
||||
self.ae(sel(), 'ABCDE12345')
|
||||
# extending selection to a line that wraps below viewport
|
||||
s.reset()
|
||||
s.scroll(100, False)
|
||||
s.draw(('X' * s.columns) * (s.lines - 2))
|
||||
s.linefeed(), s.carriage_return()
|
||||
s.draw('678')
|
||||
s.linefeed(), s.carriage_return()
|
||||
s.draw('ABCDE12345')
|
||||
s.scroll(1, True)
|
||||
multi_click(x=1, y=3, count=3)
|
||||
self.ae(sel(), '678')
|
||||
press(x=2, y=s.lines - 1, button=GLFW_MOUSE_BUTTON_RIGHT)
|
||||
release(x=2, y=s.lines - 1, button=GLFW_MOUSE_BUTTON_RIGHT)
|
||||
self.ae(sel(), '678\nABCDE12345')
|
||||
s.scroll(100, False)
|
||||
|
||||
# Rectangle select
|
||||
init()
|
||||
press(x=1, y=1, modifiers=GLFW_MOD_ALT | GLFW_MOD_CONTROL)
|
||||
|
||||
Reference in New Issue
Block a user