JeffB, can't you just write something like this, using the "magic" prefix _buffer_add that's called when a new buffer is added?
int next_open_pos = 0;
void _buffer_add_set_new_window_size()
{
if ( next_open_pos == 0 ) { resize_window_left(); next_open_pos = 1; } else { resize_window_right(); next_open_pos = 0; }
}
If that doesn't work in certain cases, it sounds like your resize macros have some issues. Mine don't cause problems and look like this (note that I put my next_open_pos assignments in the resizing functions because I move windows around a lot):
_command resize_window_left() name_info(','VSARG2_MACRO|VSARG2_MARK|VSARG2_REQUIRES_MDI_EDITORCTL)
{
if ( p_window_state == 'N' )
{
_macro('R',1);
_move_window( 0, -1, 610, WINDOW_HEIGHT );
next_open_pos = 1;
}
}