Ok, this time I fixed the problem, which appeared with any change
which resulted in summary frame pixel size change of zero along both
coordinates.
I also made menubar obey to the same mechanism.
Kirill
1998-05-06  Kirill M. Katsnelson  <kkm(a)kis.ru>
	* frame.h (struct frame): Added char_{width,height} member
	variables and access macros
	Added size_slipped redisplay bit and mark/clear macros.
	* redisplay.c (redisplay_frame): Adjust frame size if size slipped 
	bit is set.
	(redisplay_device): Call redisplay_frame if size slipped bit is set.
	
	* frame.c (adjust_frame_size): Redisplay beats frame back in shape 
	with this. Added.
	(frame_size_slipped): Added.
	(internal_set_frame_size): Clear size slipped bit.
	(change_frame_size_1): Store real charsize into frame object.
	(vars_of_frame): Declared adjust-frame-function.
	* frame-msw.c (mswindows_update_frame_external_traits): Same
	change as for frame-x.c
	(mswindows_frame_size_fixed_p): Implemented the method.
	* frame-x.c (x_update_frame_external_traits): Do not call
	Fset_frame_size to adjust frame, redisplay will do.
	* faces.c (update_EmacsFrame): Mark frame as slipped when default
	font changes.
	* toolbar.c (compute_frame_toolbars_data): Removed obsoleted call
	to change_frame_size. Redisplay will fix it later.
	Removed toolbar_*_changed_in_frame specifier
	change handlers.
	(specifier_vars_of_toolbar): Calls to these routed to
	frame_size_slipped generic handler.
	* toolbar-x.c: Removed toolbar_*_changed_in_frame device methods.
	* scrollbar-x.c: Removed scrollbar_*_changed_in_frame device
	methods.
	* scrollbar.c: Removed scrollbar_*_changed_in_frame specifier
	change handlers.
	(specifier_vars_of_scrollbar): Calls to the above changed to
	frame_size_slipped generic handler.
	* menubar-x.c (x_update_frame_menubar_internal): Do not resize
	frame, just mark frame size as slipped.
	* device-x.c: Removed declaration of in_specifier_change_function.
	* EmacsFrame.c (EmacsFrameSetValues): Do not check
	in_specifier_change_function.
	(EmacsFrameSetValues): Simulate a call to resize callback when no
	actual geometry change happened.
	* console.h (struct console_methods): Removed declarations for all 
	<specifier>_changed_in_frame methods for toolbars and scrollbars.
	Added frame_size_fixed_p method.