* suggestions: Need a convenient way to bring up GoodNeWS after you're already running vanilla NeWS. i.e. one .ps file you can psh in that initializes everything. It would be nice if it didn't clobber your root menu. Instead, there could be a GoodNeWS window on the screen that you could press the Menu button over to get the GoodNeWS root menu. * sys/extensions.ps: My Sun-4/110 has a sun3 type keyboard, so it does not have a FunctionAlt key, and I had to make the following change to sys/extensions.ps: % NeWSMachine (sun3) eq { % /MetaKey keypos /LeftMeta get 0 get def % } { % /MetaKey keypos /FunctionAlt get 0 get def % } ifelse keypos /FunctionAlt known { /MetaKey keypos /FunctionAlt get 0 get def } { /MetaKey keypos /LeftMeta get 0 get def } ifelse Still doesn't work, because addkbdinterests isn't adding the meta key suite. I put in a horrible kludge to use the keycode for the "Alternate" key on my keyboard (which wasn't in the keypos dict for some reason), for the time being, instead of using the "Left" meta key. (Since because of the way addkbdinterests does not express interest in meta events, you don't get any keyboard events at all when the meta key is held down) * sys/canvas.ps The meta key doesn't work, because of /MetaKeyEvent?, I think... It's looking for /FunctionAlt, and should also be looking for /LeftMeta. * newsdraw: Seems to be in "5 setrasteropcode" mode when I try to scroll using the scroll bars. (using copyarea?) It rather slowly reverses the colors of the destination area it intended to scroll, instead of scrolling it there. XNeWS bug? Turns out copyarea with 5 rasteropcode does not move, it just inverts the destination area. It does correctly cause damage in places that became uncovered though: framebuffer setcanvas erasepage 600 0 translate 0 0 300 300 rectpath random random random setrgbcolor fill 0 0 300 300 ovalpath random random random setrgbcolor fill 5 setrasteropcode % 0 setgray % this cancels the setrasteropcode 10 10 280 280 rectpath 40 40 copyarea In looking for the triggering cause of this bug, I noticed that in sys/menu.ps, the method /ClickMenuBar of class MenuBar leave the rasteropcode in state 5. In newsdraw, assuming gsave/grestore saves and restores the rasteropcode as part of the graphics state, it's unnecessary to save and restore it manualy as in: gsave currentrasteropcode ... 5 setrasteropcode ... setrasteropcode grestore The problem seems to be in tools/newsdraw/editdraw.ps: /DrawMarkers { % -- 5 setrasteropcode fill } def /DrawMarks { % -- Marked { newpath Members exch get /SetMarks ObjectSend DrawMarkers } forall } def I would suggest taking the 5 setrasteropcode out of DrawMarkers, putting it at the beginning of DrawMarks, and wrapping the body of DrawMarks in a gsave/grestore ... /DrawMarkers { % -- fill } def /DrawMarks { % -- gsave 5 setrasteropcode Marked { newpath Members exch get /SetMarks ObjectSend DrawMarkers } forall grestore } def * GoodNeWS canvases: (at least the NeWSDraw canvas) /EventsConsumed = /AllEvents This should be /MatchedEvents. The symptom is that you can't drag OpenLook windows around if you drop them with the cursor over a GoodNeWS window. The tNt window dragging and selection code moves the window to its final destination by sending some sort of selection event that should drop through to the framebuffer but doesn't, because the event gets eaten by the /AllEvents canvas, and never makes it to the framebuffer. Some LiteWindow clients seem to have this problem too. I think the addkbdinterests compatibility code is fucking it up by not redistributing the selection events that aren't ASCII... * sys/fixes.ps: Determination of NeWSMachine is flakey. Should not have to have PATH set up. There should be some other way of determining the machine type. Maybe something like "(%pipe arch) (r) file 80 string readline" as long as we're being system dependant... * HyperNeWS: Requires the file "$HOME/Stacks/.stackdirs" -- or at least I got a dbgbreak on that when I was running the debugger. Use errored instead of stopped?