[comp.windows.x] xterm problem

rws@EXPO.LCS.MIT.EDU (Bob Scheifler) (11/22/88)

    A strange quirk is that when you turn off the scroll
    bar and turn it back on and then resize the xterm, the small window
    displays the size in pixels rather than in rows and columns.

You don't say which window manager, but I assume uwm; I cannot
reproduce this problem in R3.

hania@WSL.DEC.COM (11/23/88)

	    A strange quirk is that when you turn off the scroll
	    bar and turn it back on and then resize the xterm, the small window
	    displays the size in pixels rather than in rows and columns.

    You don't say which window manager, but I assume uwm; I cannot
    reproduce this problem in R3.

I have seen so many instances of variations of this problem that I feel
compelled to respond.

The way that an application informs the window manager of the
increments it wants to be resized in is via a property on its top-level
window.  As it happens, the size incerements are bundled in a single
property with other information, such as size.  The application
specifies which part(s) of the property it is setting by setting
appropriate flags, which are also a part of the property.

The important thing to understand is that whenever an application sets
any field in the property (such as size), it effectively wipes out the
old values for all the fields in that property which it is not setting.
 Thus, the application MUST ALWAYS (re)set all of the fields in the
property for which it wants the window manager to keep values.  This is
because of the requirement that the properties on a window always
reflect all of the information there is to be communicated about the
window, without relying on the knowledge of history (because, for
example, a window manager might have crashed, and the restarted wm must
have access to the values for all the fields in the property.)

So the problem you describe with xterm is most likely this: turning the
scroll bar on and off makes xterm set new values for its size, and it
is an error if, when it does that, it does not also set the values for
the resize-increment.  The result of that error is that the previously
set resize increment values no longer apply, and since there are no new
values set, the default (apparently 1) is used.

   Hania