I mistakenly assumed that using the existing window gutter support was
going to be easier than fixing frame gutters properly. Now that I've tried
to fix all the outstanding bugs, I've just ended up in a mess of twistly
little XEmacs
code paths.
This patch ditches the whole window gutter thing and calculates frame-based
gutter geometries. This magically makes everything work and is what I
should have done in the first place - except I didn't understand the XEmacs
code well enough.
andy
2000-03-01 Andy Piper <andy(a)xemacs.org>
* window.c (window_top_frame_gutter_height): deleted.
(window_bottom_frame_gutter_height): ditto.
(window_left_frame_gutter_height): ditto.
(window_right_frame_gutter_height): ditto.
(window_top_gutter_height): don't use them.
(window_bottom_gutter_height): ditto.
(window_left_gutter_width): ditto.
(window_right_gutter_width): ditto.
(Fsplit_window): ditto.
(Fwindow_pixel_edges): don't use border dimensions here.
* scrollbar.c (update_scrollbar_instance): don't take gutters into account.
(update_scrollbar_instance): ditto.
* redisplay.c (generate_modeline): don't take gutters into account.
(generate_modeline): ditto.
(redisplay_frame): small gutter display optimisation.
* redisplay-x.c (x_output_vertical_divider): don't take gutters into account.
* redisplay-msw.c (mswindows_output_vertical_divider): don't take
gutters into account.
* gutter.h (WINDOW_REAL_*_GUTTER_BOUNDS): remove bogus checks
for window position and type.
* gutter.c (get_gutter_coords): fix for frame gutters.
(update_frame_gutters): update frame geometry if the gutters have
changed.
(init_frame_gutters): record current gutter geometries.
* glyphs-msw.c (mswindows_subwindow_instantiate): remove unused
var.
(mswindows_widget_instantiate): ditto.
* frame.h (struct frame): add current_gutter_bounds.
* frame.c (change_frame_size_1): position window and minibuffer
appropriately taking into account the frame gutters.
* frame-x.c: (x_initialize_frame_size): take into account the
frame gutters.
--------------------------------------------------------------
Dr Andy Piper
Senior Consultant Architect, BEA Systems Ltd