Skip to content
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

Corrupted line width after resize #883

Closed
Yaraslaut opened this issue Nov 19, 2022 · 5 comments · Fixed by #1576
Closed

Corrupted line width after resize #883

Yaraslaut opened this issue Nov 19, 2022 · 5 comments · Fixed by #1576
Labels
bug Something isn't working high priority High Priority Item resize VT: Backend Virtual Terminal Backend (libterminal API)

Comments

@Yaraslaut
Copy link
Member

Contour Terminal version

Contour Terminal Emulator 0.3.7.245

Installer source

GitHub: release page

Operating System

Windows 11 21H2

Architecture

x86-64

Other Software

No response

Steps to reproduce

2022-11-19_10-51-49.mp4

Expected Behavior

Full width of the line available for editing

Actual Behavior

Line width is corrupter and not completele available for editing

Additional notes

No response

@Yaraslaut Yaraslaut added the bug Something isn't working label Nov 19, 2022
@christianparpart
Copy link
Member

oh dear, i think we can group them all together, these family of bugs, all related to resize. But many thanks for the report. ;(

@christianparpart christianparpart added the VT: Backend Virtual Terminal Backend (libterminal API) label Nov 19, 2022
@Yaraslaut
Copy link
Member Author

oh dear, i think we can group them all together, these family of bugs, all related to resize. But many thanks for the report. ;(

Are you proposing to use separate label to mark such bugs or to create an issue to monitor other issues with resize ?

@christianparpart
Copy link
Member

nono. I think after the current think I'm going to tackle resize in a way that I wanted to refactor inflated lines anyways. for this refactor I'd need to re-implement resize anyways.

If I am not mistaken, your ring rewrite is a drop-in replacement (API wise), such that we both won't interfere, right? I'm about to touch only the Line group of APIs plus Grid::resize, I'd say.

@Yaraslaut
Copy link
Member Author

Right, this ring can be used as a drop-in replacement (and it already can be used in such way) i also added a function insert_before( line index , val) to resize lines in-place instead of creating new ring, unfortunately current resize routines are very rigid to such changes :) and my fast atempt to adjast resize to new way has failed, so maybe we can syncronize at some point our work ?

@whisperity whisperity added this to the 0.3.12 milestone Apr 10, 2023
@christianparpart christianparpart added the high priority High Priority Item label Feb 2, 2024
@christianparpart christianparpart removed this from the 0.3.x milestone Feb 2, 2024
@christianparpart
Copy link
Member

christianparpart commented Feb 6, 2024

Quick Braindump of our call

  • TrivialLine: a view into a PTY read buffer object
  • InflatedLine: a view into some dense Cell pool.

So when a resize is happening, the InflatedLine "views" are going to re-reference their new range into the dense Cell pool, literally like TrivialLine, just for Cell objects.

Please have this logic tested on the lowest layer possible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working high priority High Priority Item resize VT: Backend Virtual Terminal Backend (libterminal API)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants