Chris Hanson [Fri, 1 Dec 2000 06:17:00 +0000 (06:17 +0000)]
Create separate fields in X screen structure to hold visibility,
whether window is mapped, and whether window is exposed. Synthesize
SCREEN-VISIBILITY from these fields; previously SCREEN-VISIBILITY held
all this information and was sometimes inaccurate.
Don't attempt to give focus to an unmapped frame. This will only
signal an error.
Don't map an unmapped frame when entering it. Eliminate variable
X-SCREEN-AUTO-RAISE and associated command. Both of these things were
window management; we shouldn't be doing that.
Chris Hanson [Tue, 28 Nov 2000 05:19:05 +0000 (05:19 +0000)]
Fix bug: purify wasn't properly saving and restoring the scan state
around the scan of constant space. Doing this right requires access
to internal state of bchmmg, so I built an abstraction to do this.
Chris Hanson [Sun, 19 Nov 2000 23:27:57 +0000 (23:27 +0000)]
Change IMAIL-SUMMARY-POP-UP-MESSAGE-BUFFER to use POP-UP-BUFFER again.
This should fix the problem of over-splitting windows. Don't use
IMAIL-SUMMARY-POP-UP-MESSAGE-BUFFER for fixed layout; instead simplify
that logic to use WINDOW-SPLIT-VERTICALLY!. Eliminate
SYNC-IMAIL-SUMMARY-BUFFER which was used in only one place.
Chris Hanson [Mon, 30 Oct 2000 19:53:23 +0000 (19:53 +0000)]
Fix bug: previously, selecting one of the buffers of a visible layout
into a window that held a different buffer of that layout would leave
the layout marked as visible. This fix notices this case and unmarks
the layout. However, the selection of the buffer causes the layout to
be reselected, which means the operation has no net effect.
Chris Hanson [Mon, 30 Oct 2000 15:43:28 +0000 (15:43 +0000)]
Fix bug: SELECT-CONTINUATION-BROWSER-BUFFER called BROWSER-SELECT-LINE
assuming that the buffer it had specified for selection was already
selected; this turned out not to be true. So modify the code to pass
the buffer explicitly rather than depend on selection. Also tweak
code that prompts for X window geometry so that it re-prompts if the
user's input isn't valid.
Chris Hanson [Mon, 30 Oct 2000 15:41:04 +0000 (15:41 +0000)]
Fix bug: UNDO-LEAVE-WINDOW! was being called on the wrong window from
SELECT-SCREEN and SELECT-WINDOW. Also change order of arguments to
CHANGE-SELECTED-BUFFER to match order used most other places in this
file.
Chris Hanson [Mon, 30 Oct 2000 15:39:10 +0000 (15:39 +0000)]
Don't abort prompt when an input event arrives; process the event and
restart the prompt. There may be subtle problems with this strategy;
find and fix them.
Chris Hanson [Fri, 27 Oct 2000 04:00:34 +0000 (04:00 +0000)]
When killing buffer, it's possible to signal an error if there are no
other buffers. Previously, this error could have been signalled
_after_ the killing procedure had already killed off any buffer
process, run the kill hooks, etc. Now the error test is done first,
and if the error is signalled, no other action is taken.
Chris Hanson [Fri, 27 Oct 2000 03:16:20 +0000 (03:16 +0000)]
Change MAYBE-SELECT-BUFFER-LAYOUT so that it does nothing if called
while running a layout selector; this will prevent infinite recursions
and that otherwise occur quite easily while instantiating the layout.
Simplify MAYBE-SELECT-BUFFER-LAYOUT so that it doesn't do anything
unless the layout is changing. Previously indirect tests were used,
now we just compare the current layout with the proposed layout and
implement the changes.
Chris Hanson [Thu, 26 Oct 2000 22:16:45 +0000 (22:16 +0000)]
Don't use POP-UP-BUFFER to split the window; use
WINDOW-SPLIT-VERTICALLY! instead. Also, tweak fixed layout generator
so that it doesn't go into infinite recursion.
Chris Hanson [Thu, 26 Oct 2000 18:03:15 +0000 (18:03 +0000)]
Fix long-standing bug that occurred when using multiple screens with a
window manager that supports multiple workspaces: switching workspaces
sometimes caused an error to be signalled by X-WINDOW-SET-INPUT-FOCUS.
The problem is that the workspace switch caused all of Edwin's windows
to be unmapped. Depending on the order in which the unmap events
arrived, Edwin might have queued a request to select another screen.
But since all of the screens were unmapped at the time the request was
processed, the attempt to set the input focus to one of these unmapped
screens always generated an error.
The fix eliminates the code that tried to select another screen.
Instead we depend on the window manager to tell us when another screen
needs to be selected.
Chris Hanson [Thu, 26 Oct 2000 02:31:12 +0000 (02:31 +0000)]
Comment out call to ADD-PRE-SELECT-BUFFER-HOOK. This procedure is
about to be removed from Edwin. It will shortly be replaced by a
different mechanism.
Chris Hanson [Thu, 26 Oct 2000 02:30:07 +0000 (02:30 +0000)]
Eliminate pre-select-buffer-hooks mechanism from previous change.
This turns out not to work quite right for the problem at hand.
Instead implement a buffer-layout mechanism that should solve the
problem more neatly.
Chris Hanson [Fri, 20 Oct 2000 04:33:20 +0000 (04:33 +0000)]
Implement new editor variable imail-summary-height to allow the user
to specify the height of the summary buffer. Normally this is set to
1/4 making the summary 1/4 the height of the screen.
Chris Hanson [Fri, 20 Oct 2000 02:14:59 +0000 (02:14 +0000)]
Fix bug: FLAGS->RMAIL-MARKERS was clobbering its argument to remove
the "seen" flag. This caused messages to be marked "unseen" when they
were written to an RMAIL file.
Chris Hanson [Fri, 20 Oct 2000 00:44:34 +0000 (00:44 +0000)]
Fix bug: WRITE-HEADER-FIELDS was generating the blank-line separator,
but all of the callers assumed that it wasn't. So messages were being
written with an extra newline.