-
-
Notifications
You must be signed in to change notification settings - Fork 114
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
fold DECCPR inversion check into rendered mode #1886
Comments
i really don't want to introduce the mandatory latency that my inversion detection algorithm would require to startup. =[ inversion is a rare thing, and is paired with 0-indexing (see #2044); maybe we ought just make that a heuristic? except |
maybe we could instead key off a trivial detection of 0-indexing? we would send hell, so long as we're not a 1x1 geometry, we could detect inversion directly off a the only downside is that this will be kinda complicated; the cursor report stuff is already a bit of a mess, and complexly interwoven with general input code. but i think this is the right thing to do, so long as 0-indexing is always correlated with cursor report inversion. which, to the best of my knowledge, it is. |
so yeah in the initial query reply handler, we'll want to recognize cursor reports, and also keep a bit of state as to whether we've seen the initial cursor report. if we've seen the initial one, and we get a second, that's the reply to our 0-indexing detection. perform detection, and in the face of inversion, update the |
Since we're now during a cursor location report in rendered mode (when
NCOPTION_PRESERVE_CURSOR
is used, anyway), we ought fold cursor inversion support into the process. This should only be done whenNCOPTION_PRESERVE_CURSOR
is supplied, or when we're in direct mode and perform our first actual cursor lookup, since it involves several round trips and would otherwise unduly retard startup.As a good test for this, run
notcurses-info
in kmscon (known to invert its report). Currently, it always prints at the top of the screen due to report inversion. If it prints at the correct place, things are probably working.The text was updated successfully, but these errors were encountered: