Skip to content

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

Open
wants to merge 25 commits into
base: master
Choose a base branch
from

Conversation

rmkaplan
Copy link
Contributor

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.

@rmkaplan
Copy link
Contributor Author

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)
Copy link
Contributor

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.

@@ -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)
Copy link
Contributor

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.

@rmkaplan
Copy link
Contributor Author

Updated CHARCODE.ENCODE to pass NONCHARIDENTITY in recursive calls, also reverted internal variable name to CHARNAME (previous replace was over-eager)

@pamoroso
Copy link
Contributor

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 TEDIT.OP.WIDTH is an unbound variable. when evaluating TEDIT.OP.WIDTH.

@rmkaplan
Copy link
Contributor Author

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.

@pamoroso
Copy link
Contributor

pamoroso commented Apr 24, 2025

After experimenting a bit with window splitting as mentioned earlier I executed the Quit title bar command of the TEdit window I was experimenting with. I experimented with the file TEDIT-RELEASENOTES.TEDIT open in TEdit divided into two panes but at the end of the session I unsplit the lower one. Yet after Quit TEdit quit in the state shown in this screenshot:

tedit-split-window

@pamoroso
Copy link
Contributor

I confirm \TEDIT.OP.WIDTH works.

A clarification on my latest post: to quit TEdit I used the Quit command, not Exit.

@rmkaplan
Copy link
Contributor Author

rmkaplan commented Apr 24, 2025 via email

@pamoroso
Copy link
Contributor

I did something similar in the test session and unsplit the lower pane prior to Quitting. In the session I selected some text and copied some to the clipboard. I took no further actions or executed other commands.

By the way, other than the missing title bar the leftover window was an ordinary TEdit window with the document still intact and scrollable.

@pamoroso
Copy link
Contributor

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:

INTERLISP-ERROR

In ERROR:
ARG NOT TEXTOBJ
NIL

The TEdit window disappeared leaving this corrupted screen:

tedit-split-error

The context of the error:

MOUSE/11(debug)BTV
   MESS1 "ARG NOT TEXTOBJ"
   MESS2 NIL
   NOBREAK NIL
ERROR
\LISPERROR
\DTEST.UFN
   PANE {WINDOW}#122,40000
\TEDIT.CURSORMOVEDFN
   FNLST \TEDIT.CURSORMOVEDFN
   WINDOW {WINDOW}#122,40000
   CHECKFORDON'TFLG NIL
DOUSERFNS
   SI::*DUMMY-FOR-CATCH* T
   SI::*CATCH-RETURN-FROM* (&)
WINDOW.MOUSE.HANDLERA0032
   \MHCOM \TEDIT.CURSORMOVEDFN
   \MHPROCESS NIL
   \MHWINDOW {WINDOW}#122,40000
   \MOUSEBUSY T
   SI::NLSETQ-VALUE NIL
   *PROCEED-CASES* (&)
   SI::*NLSETQFLAG* NIL
WINDOW.MOUSE.HANDLER
   \OLDTTY #<Process OLDMOUSE#5/121,127306>
   \MOUSEBUSY NIL
\MOUSE.PROCESS
   *FORM* (\MOUSE.PROCESS)
   *ARGVAL* NIL
   *TAIL* NIL
   *FN* \MOUSE.PROCESS
\EVALFORM
   %#FORM# (\MOUSE.PROCESS)
   *CURRENT-PROCESS* #<Process MOUSE/121,127204>
   HELPFLAG BREAK!
   \CURRENTDISPLAYLINE 0
   \#DISPLAYLINES 40
   \LINEBUF.OFD #<IO Stream on T/174,72500>
   *READTABLE* #<ReadTable INTERLISP/174,71714>
   \PRIMTERMTABLE {TERMTABLEP}#174,64700
   \PRIMTERMSA {CHARTABLE}#167,74404
   TtyDisplayStream 
#<Output Display Stream/173,157000>
   SI::*RESETFORMS* NIL
   \INTERRUPTABLE T
   \TTYWINDOW NIL
   READBUF NIL
   \TERM.OFD #<Output Stream on T/170,120300>
   *STANDARD-OUTPUT* #<Output Stream on T/170,120300>
   *STANDARD-INPUT* #<IO Stream on T/174,72500>
\MAKE.PROCESS0
T

Medley head is mk88--Split-screen-updates-and-color:

commit 1ceb1a42c23cd05d61451f5234b76d4675b44027
Author: rmkaplan <ron.kaplan@post.harvard.edu>
Date:   Thu Apr 24 10:05:37 2025 -0700

    Make the split region really go away by default

Maiko head is master:

commit 4994982a90565ae18d540eb402047a9d6ef5713d
Author: Matt Heffron <heffron@alumni.caltech.edu>
Date:   Tue Feb 11 20:03:01 2025 -0800

    Adds the non-keypad arrow keys to be detected.
    With additional Medley calls to KEYACTION (below), they should work in TTYIN (i.e., XCL and Interlisp EXECs).
    I didn't try TEDIT.
    They are unrecognized in SEDIT. (In any case, their use there probably is pretty restricted by the nature of SEDIT.)
    
    (KEYACTION 'KEYPAD8 '(("Meta,^" 56 NOLOCKSHIFT) . IGNORE))

@pamoroso
Copy link
Contributor

I forgot to mention that I run Medley under VNC.

Maybe that will really turn off the splitting region.
@pamoroso
Copy link
Contributor

I've been testing the past few commits up to a43a80c and in all of them experienced issues and errors when Ctrl-selecting text for deletion, for example Ctrl-middle-click to delete a word.

Sometimes the text is highlighted in reverse but nothing happens when releasing Ctrl and the mouse button. In such cases I Ctrl-middle-click the same text again and get an error. For example, in TEdit I wrote the text:

one

two

three

four

five

Then I Ctrl-middle-clicked each word and blank line until five was only highlighted in reverse with no deletion. Ctrl-middle-clicking again yielded this break window with the error:

TYPE-MISMATCH

In CL::%%NOT-NUMBER-ERROR:
{CL100/22470:Gacha10} is not a number

tedit-delete

The context:

MOUSE/5(debug)BTV
CL::%%NOT-NUMBER-ERROR
\SLOWPLUS2
   LINE {L82/9640: *5-5* FED}
   X 15
   NEWSEL {SEL: unset 101/27238}
   SELOPERATION DELETE
   TSTREAM #<IO Text Stream/130,5500>
   BUTTON MIDDLE
   WORDSELFLG T
   TEXTOBJ {TEXTOBJ}#122,32600
   CHARSLOT NIL
   CLOOKS NIL
   CHNO 5
   X0 NIL
   XLIM 16
   DCH NIL
   SELCHAR NIL
   PASTRIGHT T
   THISLINE {THISLINE}#122,31764
   RIGHTHALF NIL
   CS {}#110,170512
   CHAR NIL
   CHARW {CL100/22470:Gacha10}
   CHARCL NIL
\TEDIT.SCAN.LINE
   X 30
   Y 366
   NEWSEL {SEL: unset 101/27238}
   TSTREAM #<IO Text Stream/130,5500>
   SELOPERATION DELETE
   PANE {WINDOW}#122,26664
   BUTTON MIDDLE
   CURSEL {SEL: 1-3-R � 101/27204}
   REGIONTYPE NIL
   TEXTOBJ {TEXTOBJ}#122,32600
   LINE {L82/9640: *5-5* FED}
   PARAFIRSTCHNO NIL
   PARALASTCHNO NIL
   SELFN NIL
\TEDIT.XYTOSEL
   SI::*CLEANUP-FORMS* SI::RESETUNWIND
   TTYPROC #<Process TEdit/174,24000>
   TSTREAM #<IO Text Stream/130,5500>
   X 30
   Y 366
   DS #<Output Display Stream/130,5700>
   OLDX 30
   OLDY 366
   PREG (0 0 482 380)
   TEXTOBJ {TEXTOBJ}#122,32600
   CURSEL {SEL: 1-3-R � 101/27204}
   NEWSEL {SEL: unset 101/27238}
   CUROPERATION DELETE
   NEWOPERATION DELETE
   PENDINGDEL NIL
   READONLY NIL
SI::*UNWIND-PROTECT*
   PANE {WINDOW}#122,26664
   LISPXHIST NIL
   SI::*RESETFORMS* ((& {CURSOR}#157,141334))
   RESETSTATE NIL
MODERN-ORIG-\TEDIT.BUTTONEVENTFN
   WINDOW {WINDOW}#122,26664
   ORIGFUNCTION MODERN-ORIG-\TEDIT.BUTTONEVENTFN
   ANYWHERE NIL
   TITLEPROPORTION NIL
   CORNERREGION (756 358 490 400)
   TOPMARGIN 12
   CORNER NIL
   ATTACHEDREGION NIL
MODERNWINDOW.BUTTONEVENTFN
   WINDOW {WINDOW}#122,26664
   ORIGFUNCTION MODERN-ORIG-\TEDIT.BUTTONEVENTFN
   ANYWHERE NIL
   TITLEPROPORTION NIL
   CORNERREGION (756 358 490 400)
   TOPMARGIN "* Tedit Window"
MODERNWINDOW.BUTTONEVENTFN
   W {WINDOW}#122,26664
   STREAM NIL
\TEDIT.BUTTONEVENTFN
   W {WINDOW}#122,26664
   STREAM NIL
\TEDIT.BUTTONEVENTFN
   SI::*DUMMY-FOR-CATCH* T
   SI::*CATCH-RETURN-FROM* (&)
\PROTECTED.APPLYA0001
   FN \TEDIT.BUTTONEVENTFN
   WINDOW {WINDOW}#122,26664
   SI::NLSETQ-VALUE NIL
   *PROCEED-CASES* (&)
   SI::*NLSETQFLAG* NIL
\PROTECTED.APPLY
   \MHCOM \TEDIT.BUTTONEVENTFN
   \MHPROCESS #<Process TEdit/174,24000>
   \MHWINDOW {WINDOW}#122,26664
   \MOUSEBUSY T
WINDOW.MOUSE.HANDLER
   \OLDTTY #<Process TEdit/174,24000>
   \MOUSEBUSY NIL
\MOUSE.PROCESS
   *FORM* (\MOUSE.PROCESS)
   *ARGVAL* NIL
   *TAIL* NIL
   *FN* \MOUSE.PROCESS
\EVALFORM
   %#FORM# (\MOUSE.PROCESS)
   *CURRENT-PROCESS* #<Process OLDMOUSE/174,24410>
   HELPFLAG BREAK!
   \CURRENTDISPLAYLINE 0
   \#DISPLAYLINES 40
   \LINEBUF.OFD #<IO Stream on T/174,72500>
   *READTABLE* #<ReadTable INTERLISP/174,71714>
   \PRIMTERMTABLE {TERMTABLEP}#174,64740
   \PRIMTERMSA {CHARTABLE}#174,65000
   TtyDisplayStream 
#<Output Display Stream/146,12300>
   SI::*RESETFORMS* NIL
   \INTERRUPTABLE T
   \TTYWINDOW NIL
   READBUF NIL
   \TERM.OFD #<Output Stream on T/170,116300>
   *STANDARD-OUTPUT* #<Output Stream on T/170,116300>
   *STANDARD-INPUT* #<IO Stream on T/174,72500>
\MAKE.PROCESS0
T

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.

@rmkaplan
Copy link
Contributor Author

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.

@rmkaplan
Copy link
Contributor Author

@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?

@MattHeffron
Copy link
Contributor

@rmkaplan See my PR #2127 for my attempt to support correct color specifications.

@rmkaplan
Copy link
Contributor Author

@pamoroso I believe I have fixed the screen update for an edit (delete) to the top line. I still don't get a break.

@pamoroso
Copy link
Contributor

I updated Medley to 54f1768 and built it with loadup-all.sh -apps but it broke with the error Can't find package CLOS to look up symbol LOAD-CLOS:

clos-error

>>>>> START loadup-full-from-lisp
"/home/paolo/medley/medley/../maiko/linux.x86_64/lde" "/tmp/loadups-17757/lisp.sysout" -id "loadup_1" -title "Medley Interlisp :: loadup_1" -g 1024x768 -sc 1024x768 -noscroll
MEDLEYDIR: "/home/paolo/medley/medley"
LOGINDIR: "/tmp/loadups-17757/logindir"
GREET FILE: "/home/paolo/medley/medley/greetfiles/NOGREET"
REM.CM FILE: "/tmp/loadups-17757/loadup-full-from-lisp.cm"
VMEM FILE: "/tmp/loadups-17757/logindir/vmem/lisp_loadup_1.virtualmem"
+++++ SUCCESS +++++
..... files created .....
-rw-rw-r-- 1 paolo paolo 10166 Apr 27 11:06 /tmp/loadups-17757/full.dribble
-rw-rw-r-- 1 paolo paolo 10846208 Apr 27 11:06 /tmp/loadups-17757/full.sysout
<<<<< END loadup-full-from-lisp

>>>>> START loadup-apps-from-full
"/home/paolo/medley/medley/../maiko/linux.x86_64/lde" "/tmp/loadups-17757/full.sysout" -id "loadup_1" -title "Medley Interlisp :: loadup_1" -g 1024x768 -sc 1024x768 -noscroll
MEDLEYDIR: "/home/paolo/medley/medley"
LOGINDIR: "/tmp/loadups-17757/logindir"
GREET FILE: "/home/paolo/medley/medley/greetfiles/NOGREET"
REM.CM FILE: "/tmp/loadups-17757/loadup-apps-from-full.cm"
VMEM FILE: "/tmp/loadups-17757/logindir/vmem/lisp_loadup_1.virtualmem"

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.

@rmkaplan
Copy link
Contributor Author

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.

@pamoroso
Copy link
Contributor

I updated to 3136cd8 but the build still fails with the same error.

@rmkaplan
Copy link
Contributor Author

Is this only in the apps loadup? I think only notecards loads the tedit process killer, if that's where the problem lies.

@pamoroso
Copy link
Contributor

Yes I get the error only in the apps loadup, building with loadup-all.sh completes successfully.

I tested TEdit and no longer get breaks when clicking on an empty line at the end of the file. Ctrl-middle-selecting works as expected too.

Only called by TEDIT-PROCESS-KILLER (not in MS database), was out of date
@rmkaplan
Copy link
Contributor Author

@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

@nbriggs
Copy link
Contributor

nbriggs commented Apr 27, 2025

I find grep -ri "foo" * (from the medley directory) to be more reliable than MS at finding uses, and fast enough (10s) even though it's searching a lot of data - e.g.

briggs@macrobiotic medley % grep -ri '\\TEDIT.ACTIVE.WINDOWP'  *
Binary file internal/venuesysouts/full.venuesysout matches
Binary file library/tedit/TEDIT-WINDOW.LCOM matches
library/tedit/TEDIT-WINDOW:        (FNS \TEDIT.CURSORMOVEDFN \TEDIT.CURSOROUTFN \TEDIT.ACTIVE.WINDOWP \TEDIT.EXPANDFN 
library/tedit/TEDIT-WINDOW:(\TEDIT.ACTIVE.WINDOWP
library/tedit/TEDIT-WINDOW:\TEDIT.ACTIVE.WINDOWP 51177 . 52228) (\TEDIT.EXPANDFN 52230 . 52793) (\TEDIT.MAINW 52795 . 54075) (
Binary file lispusers/TEDIT-PROCESS-KILLER.LCOM matches
lispusers/tedit-process-killer:                                               (PROCESSP :IN \TEDIT.ACTIVE.WINDOWP))
lispusers/tedit-process-killer:[XCL:REINSTALL-ADVICE '(PROCESSP :IN \TEDIT.ACTIVE.WINDOWP)
lispusers/tedit-process-killer:       '((:LAST (RETURN (OR !VALUE (WITHOUT-TEDIT-PROCESS (STKARG 'W '\TEDIT.ACTIVE.WINDOWP]
lispusers/tedit-process-killer:       (PROCESSP :IN \TEDIT.ACTIVE.WINDOWP))
Binary file loadups/whereis.hash matches
Binary file loadups/full.sysout.~2~ matches
Binary file loadups/full.sysout.~1~ matches
Binary file loadups/full.sysout.~3~ matches
Binary file loadups/apps.sysout matches
Binary file loadups/full.sysout matches
Binary file loadups/build/whereis.hash matches
Binary file loadups/build/full.sysout.~2~ matches
Binary file loadups/build/full.sysout.~1~ matches
Binary file loadups/build/full.sysout.~3~ matches
Binary file loadups/build/apps.sysout matches
Binary file loadups/build/full.sysout matches
Binary file loadups/full.sysout.~4~ matches
obsolete/library/new/TEDIT:                                           (\TEDIT.ACTIVE.WINDOWP TEDIT.DEFAULT.WINDOW))
Binary file obsolete/library/new/TEDIT.LCOM matches
Binary file obsolete/library/new/TEDITWINDOW.LCOM matches

@pamoroso
Copy link
Contributor

Updating to 2ecea94 builds Medley successfully. But after a series of Ctrl-middle-select tests as described above, when quitting TEdit with Quit and confirming with one or two left-clicks TEdit closes and this break window shows up:

INTERLISP-ERROR

ARG NOT TEXTOBJ
NIL

tedit-quit-error

The backtrace:

MOUSE/5(debug)BTV
   MESS1 "ARG NOT TEXTOBJ"
   MESS2 NIL
   NOBREAK NIL
ERROR
\LISPERROR
\DTEST.UFN
   PANE {WINDOW}#122,23264
\TEDIT.CURSORMOVEDFN
   FNLST \TEDIT.CURSORMOVEDFN
   WINDOW {WINDOW}#122,23264
   CHECKFORDON'TFLG NIL
DOUSERFNS
   SI::*DUMMY-FOR-CATCH* T
   SI::*CATCH-RETURN-FROM* (&)
WINDOW.MOUSE.HANDLERA0032
   \MHCOM \TEDIT.CURSORMOVEDFN
   \MHPROCESS NIL
   \MHWINDOW {WINDOW}#122,23264
   \MOUSEBUSY T
   SI::NLSETQ-VALUE NIL
   *PROCEED-CASES* (&)
   SI::*NLSETQFLAG* NIL
WINDOW.MOUSE.HANDLER
   \OLDTTY #<Process TEdit/122,16614>
   \MOUSEBUSY NIL
\MOUSE.PROCESS
   *FORM* (\MOUSE.PROCESS)
   *ARGVAL* NIL
   *TAIL* NIL
   *FN* \MOUSE.PROCESS
\EVALFORM
   %#FORM# (\MOUSE.PROCESS)
   *CURRENT-PROCESS* #<Process OLDMOUSE/174,24410>
   HELPFLAG BREAK!
   \CURRENTDISPLAYLINE 0
   \#DISPLAYLINES 40
   \LINEBUF.OFD #<IO Stream on T/174,72500>
   *READTABLE* #<ReadTable INTERLISP/174,71714>
   \PRIMTERMTABLE {TERMTABLEP}#174,64740
   \PRIMTERMSA {CHARTABLE}#174,65000
   TtyDisplayStream 
#<Output Display Stream/130,12100>
   SI::*RESETFORMS* NIL
   \INTERRUPTABLE T
   \TTYWINDOW NIL
   READBUF NIL
   \TERM.OFD #<Output Stream on T/170,116300>
   *STANDARD-OUTPUT* #<Output Stream on T/170,116300>
   *STANDARD-INPUT* #<IO Stream on T/174,72500>
\MAKE.PROCESS0
T

@pamoroso
Copy link
Contributor

The TEdit issue is reproducible more easily:

  1. open TEdit
  2. type a space
  3. execute the Quit command
  4. left-click once or twice to confirm quitting (until TEdit closes and the break window shows up)

@rmkaplan
Copy link
Contributor Author

@pamoroso Try this one.

@pamoroso
Copy link
Contributor

I confirm af7934e resolves the TEdit quitting issue.

@rmkaplan rmkaplan marked this pull request as draft April 28, 2025 19:04
@pamoroso
Copy link
Contributor

I tested up to dee919d and I have no issues to report.

@rmkaplan rmkaplan marked this pull request as ready for review May 4, 2025 17:51
@rmkaplan
Copy link
Contributor Author

rmkaplan commented May 4, 2025

I removed the draft status, I haven't encountered or heard of any new issues.

@pamoroso
Copy link
Contributor

pamoroso commented May 4, 2025

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 Quit TEdit I ran into the same issue reported earlier, i.e. leftover windows:

tedit-split-issue

@rmkaplan
Copy link
Contributor Author

rmkaplan commented May 4, 2025

@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)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants