freenode/#clim - IRC Chatlog
Search
8:29:02
frgo
It's fascinating to see how you guys are talking about XResizeWindow and what not - reminds of 30 years ago when I used that X11 stuff myself (for MB-WIS, the Mercedes Benz Workshop Information System http://ferman1.narod.ru/Merc/wis5.png)
8:30:18
loke
frgo: Well, most people use higher-level constructs. But, when you are working on a high-level construct such as CLIM, then you need to be exposed to those low-level things.
8:32:26
loke
The orange thing is a chain tensioner: https://ep1.pinkbike.org/p3pb2102474/p3pb2102474.jpg
9:13:06
loke
jackdaniel: I'm wondering if perhaps the CLIM code that reconfigures a window _always_ performs both an XMoveWindow and an XResizeWindow together, even when the intent is to only do a resize.
9:18:53
loke
jackdaniel: Hmm... I'm looking at the CLX code, and in it, window psotioning and resizing seems to be implemented using accessors, so that if you SETF WINDOW-X then that is translated to a later invocation of XConfigureWindow.
9:19:42
loke
XConfigureWindow accepts a mask of which values should be changed, so the key is to not SETF the WINDOW-X property at all. Then its position will not change and the window manager will not move it.
9:22:33
loke
OK, there is PORT-SET-MIRROR-TRANSFORMATION which seesm to be called when a window should be resized. The problem is that when it does so, it _also_ sets the X/Y coordinates, which is the actual problem.
9:23:15
loke
The question is how to fix this, could it perhaps just compare if the old and new coordinates are the same, and if so, not SETF them?
9:24:04
loke
(when you SETF this value, even if it's equal to the old value, it sets the flag in value mask which results in a subsequent call to XConfigureWindow with those coordiantes set.