I wrote: >> When you save the window positions and then restart, all the windows shift >> down by the height of the titlebar, at least if you're using twm as your >> window manager (I haven't tried anything else). In my case, I just edited >> the file by hand to subtract 19 from each y coordinate. That's not >> something we should expect people to need to do. Mark Wedel replied: > Works properly with fvwm (that is, windows re-appear where specified). I > remember seeing something someplace that twm did something not quite right in > that regard. As of now, I'll just attribute this to a bug in twm. I found this report of a similar problem in another program: http://bugzilla.gnome.org/show_bug.cgi?id=75419 It looks like this may not just be a twm issue. The solution is to change how get_window_coord() in gx11.c works. We might want to replace gdk_window_get_origin() with gdk_window_get_root_origin() or gdk_window_get_deskrelative_origin(). I haven't played with that, and I couldn't find documentation on these functions, so I'm not sure what the difference would be. What I did find was that the following works: /* Gets a specified windows coordinates. This function is pretty much * an exact copy out of the server. */ void get_window_coord(GtkWidget *win, int *x,int *y, int *wx,int *wy, int *w,int *h) { int tmp; gdk_window_get_geometry (win->window, x, y, w, h, &tmp); /* gdk_window_get_root_origin (win->window, wx, wy); */ /* gdk_window_get_deskrelative_origin (win->window, wx, wy); */ gdk_window_get_origin (win->window, wx, wy); wx -= x; wy -= y; } With twm as I have it configured, x is 0 and y is 19; the exact amount of the error. If you can confirm that for window managers where the current system is working x and y are both zero, then it looks like we have a solution. I seem to recall the same problem with the x11 client. Looking at the code, I'm guessing that the same fix may work there. --PC