-
-
Notifications
You must be signed in to change notification settings - Fork 25
Rmk88 split screen updates and color, eliminate reliance on STREAMHINT xpointer #2119
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
base: master
Are you sure you want to change the base?
Conversation
Parallel to CHARCODE.DECODE. Definition will later be moved to CMLCHARACTER
I changed the filel loadup order to avoid the "undefined" messages in fuller.database Also, another internal change worth mentioning is to the THISLINE vector: Instead of in effect runcoding the character-looks changes across a line, there is now a separate field for the character looks of each character. So THISLINE now supports random access, making it easier to do backward adjustments (eventually for kerning). In a next version, I think the running X position should be stored as a separte field so that the displayer doesn't compute it on the fly from the width. |
@@ -88,13 +90,13 @@ | |||
(* ;; "") | |||
|
|||
(if (LISTP CODE) | |||
then (CONS (CHARNAME (CAR CODE) | |||
then (CONS (CHARCODE.ENCODE (CAR CODE) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You're not passing the NONCHARIDENTITY
to the recursive calls.
library/tedit/TEDIT-FNKEYS
Outdated
@@ -108,21 +110,23 @@ | |||
else (LET ((CHARSET (LRSH CODE 8)) | |||
(CHAR (LOGAND CODE 255)) | |||
(ASCIICODE (LOGAND CODE 127)) | |||
CSETNAME CHARNAME ASCIINAME) | |||
CSETNAME CHARCODE.ENCODE ASCIINAME) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Renaming the variable here seems like a chance for confusion.
Updated CHARCODE.ENCODE to pass NONCHARIDENTITY in recursive calls, also reverted internal variable name to CHARNAME (previous replace was over-eager) |
On Linux Mint 22.1 Cinnamon I tested these changes up to a8f2fcc. Window splitting works well but I still notice the mouse pointer turns to a square when hovering close to the right edge of the window. I don't mind this and it causes no issues, it's just an observation. I get the error |
It's \TEDIT.OP.WIDTH (backslash), sorry for the mistake. I set it to 0 to turn it off by default, I think now I have to set it to -1 to avoid it still popping up. |
After experimenting a bit with window splitting as mentioned earlier I executed the |
I confirm A clarification on my latest post: to quit TEdit I used the |
I don't see that behavior. I tried
TEDIT(TEDIT-RELEASENOTES)
select a character halfway down
click split
click unsplit (caret was still blinking in the lower window)
click quit
The screen is clear.
I also tried the same sequence, but using the window-command menu to click Close (not the Tedit menu to Quit).
The screen is still clear.
Is there anything else going on?
… On Apr 24, 2025, at 8:48 AM, Paolo Amoroso ***@***.***> wrote:
pamoroso
left a comment
(Interlisp/medley#2119)
<#2119 (comment)>
I confirm \TEDIT.OP.WIDTH works.
A clarification on my latest post: to quit TEdit I used the Quit command, not Exit.
—
Reply to this email directly, view it on GitHub <#2119 (comment)>, or unsubscribe <https://github.com/notifications/unsubscribe-auth/AQSTUJIUUPGKADGS3NJIAXT23EBUDAVCNFSM6AAAAAB3W6HAVOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDQMRYGEYDIOJQHE>.
You are receiving this because you authored the thread.
|
I did something similar in the test session and unsplit the lower pane prior to By the way, other than the missing title bar the leftover window was an ordinary TEdit window with the document still intact and scrollable. |
I updated to 1ceb1a4 and tested again by opening TEDIT-RELEASENOTES.TEDIT in TEdit. I split and unsplit the window several times into up to 4 panes. At some point, when unsplitting the panes one by one to return to one pane, I got a break window with this error:
The TEdit window disappeared leaving this corrupted screen: The context of the error:
Medley head is mk88--Split-screen-updates-and-color:
Maiko head is master:
|
I forgot to mention that I run Medley under VNC. |
Maybe that will really turn off the splitting region.
I've been testing the past few commits up to a43a80c and in all of them experienced issues and errors when Sometimes the text is highlighted in reverse but nothing happens when releasing
Then I
The context:
Aside from that I no longer get crashes when splitting and unsplitting. In addition the mouse pointer no longer turns into a square when hovering close to the right edge of the window. |
I pushed some a few changes having to do with the menu bar behavior for tabs. I also fixed up some mentions of XCCS on the way to MCCS. Note that there is currently a pdf hardcopy problem with this PR: The default color is BLACK, and that is one of the ways of specifying colors according to the documentation (man color). But postscript (\DSPCOLOR.PSC) only accepts a number between 0 and 1, which is not a legitimate way of specifying colors. So it fails. Immediate fix is to MOVD(NILL \DSPCOLOR.PSC). But probably the argument checking should be installed in the generic DSPCOLOR, bringing in some of the predicates from LLCOLOR. And postscript eventually should be changed to approximate more of what can be specified. |
@pamoroso I have not been able to replicate the faillure with your one-two... example. The closest I have come is to type a single line "one" with no EOL into an empty window, then ctrl-middle-select. The screen doesn't get updated (the letters o n e are still there), and they disappear with redisplay or with typing in. So I think I missed a case where the line should be updated, but it doesn't cause an error. Is there any more specific recipe to get the break? |
…b.com/Interlisp/medley into rmk88--Split-screen-updates-and-color
@pamoroso I believe I have fixed the screen update for an edit (delete) to the top line. I still don't get a break. |
I updated Medley to 54f1768 and built it with
Here are the dribble files: clos-error-dribble.zip I haven't changed anything in my Linux Mint 22.1 Cinnamon setup and Maiko is on master/4994982. |
I believe I have fixed the break reported by @pamoroso . It had to do with clicking on an empty line at the end of the file, not related to deletion or middle-button. |
I updated to 3136cd8 but the build still fails with the same error. |
Is this only in the apps loadup? I think only notecards loads the tedit process killer, if that's where the problem lies. |
Yes I get the error only in the apps loadup, building with I tested TEdit and no longer get breaks when clicking on an empty line at the end of the file. |
Only called by TEDIT-PROCESS-KILLER (not in MS database), was out of date
@pamoroso I restored the function \TEDIT.ACTIVE.WINDOWP. lispusers/TEDIT-PROCESS-KILLER (which is not in the MS database) was its only client, and the function was out of date. Try the apps loadup again |
I find
|
Updating to 2ecea94 builds Medley successfully. But after a series of
The backtrace:
|
The TEdit issue is reproducible more easily:
|
@pamoroso Try this one. |
I confirm af7934e resolves the TEdit quitting issue. |
I tested up to dee919d and I have no issues to report. |
I removed the draft status, I haven't encountered or heard of any new issues. |
On Linux Mint Cinnamon 22.1 I updated to 3520893, opened TEDIT-RELEASENOTES.TEDIT, and split the TEdit window into 7 panes. Then I unsplit the panes in random order until only the full main pane remained in the window. When I |
…b.com/Interlisp/medley into rmk88--Split-screen-updates-and-color
Otherwise meta-3 for the 3rd font might pick a different one
@pamoroso , I still haven't been able to replicate this. I wrote a test jig that opens the file, splits it at the same 7 places in ascending order on every run, but then unsplits the panes in a different random order each time. At the end it executes the function that the Quit menu item uses to say that the editing session is over, and then the document/window cleans itself up and disappears. I've run this maybe 20 times, and it hasn't yet left any orphan panes on the screen. Is there something else that I may be missing? (Meanwhile, I tested color against Herb's upcoming HTML stream, and that works) |
As usual, a lot of files changed. Internal cleanup was mostly aimed at eliminating all internal dependencies on the STREAMHINT xpointer from the TEXTOBJ to the TEXTSTREAM. The xpointer is still there, against the possibility of client code still getting the TEXTOBJ object. But that code must separately hold on to the stream, else it will get collected.
This presents a menu-based interface for splitting and unsplitting windows, without reserving the right-edge slice of the window for that purpose (and the mouse tracking and cursor switching to a little square box). The old behavior is still there, controlled by the variable TEDIT.OP.WIDTH (was 12, near 0).
This supports color (although untested) as a character-looks property COLOR, BLACK by default.
See TEDIT-RELEASENOTES.