freenode/#clim - IRC Chatlog
Search
10:26:04
loke
There a lot of code in there, but there is some code rot. Package name collisions with QL packages and stuff. Let me see if I can get it to compile.
10:54:49
loke
I'm thinking that perhaps math-interactor was written with LW CLIM in mind, which is why I'm having some issues.
10:55:22
loke
This thing is seriously complex actually. I'd love to actually make it display somehting so I can see how it looks :-)
13:49:01
nyef
ISTM that the "obvious" thing to do with the layout protocol, mirrored sheets, and toplevel sheets, is to put whatever hooks are required in the toplevel sheet class.
13:49:35
nyef
On the other hand, McCLIM still has that bizarre "stealth mixin" thing going on to confuse the matter, doesn't it?
13:52:26
jackdaniel
but if some external stealth mixin will make McCLIM not working then I'd say it is not McCLIM problem
13:53:07
jackdaniel
small update: I've already fixed the top-level sheet part. now I'm thinking about unifying single-mirrored and full-mirrored code. already removed some unnecessary cruft
13:53:45
jackdaniel
(unifying where it makes sense, because it seems author simply added his own interfaces instead of extending existing ones)
13:54:54
jackdaniel
in half of the situations we call (setf sheet-region/transformation) as in request-sheet-region/transformation
13:56:01
jackdaniel
that is: sets sheet region and requests it (then configure event comes and we do again the same thing but we guard ourself to not do 'request' again with a dynamic variable)
13:56:48
jackdaniel
still analyzing the workflow and how note-sheet-*-changed cooperate in this design
13:59:07
jackdaniel
(with which I agree, exported interface should be named request-sheet-region and setting anything should be at the implementation discretion)
14:02:31
nyef
I wonder if the "right thing" would be for SETF SHEET-REGION on a mirrored sheet to fire off the XConfigureWindow and then *wait for the ConfigureNotify*?
14:03:25
nyef
I'd have to check the base protocol specification and ICCCM to see if that is even plausible, though.
14:06:07
nyef
Okay, it presumes that the mirrored ancestor doesn't have substructure redirection enabled and configured to do screwy things, but that's not a stretch...
14:07:35
jackdaniel
sure, but say it doesn't fit in a mirror – you want to the resize mirror to fit the child
14:08:11
jackdaniel
currently child calls note-mirrored-sheet-child-… (internal interface) *after* changing its size
14:08:51
jackdaniel
which later calls update-mirror-geometry, which trigger configure event which calls (setf sheet-region)
14:09:32
nyef
If you set a sheet region, that is _below_ the level of space requirements and layout.
14:12:57
nyef
The trivial proof is that you can embed a gadget in a stream in a viewport in a vrack, and the gadget may be mirrored.
14:15:49
nyef
Okay, so you have note-sheet-{region,transformation}-changed as the defined interface... Ah!
14:17:08
nyef
But we're given that they're children of a toplevel sheet, and we may presume that nobody has selected for substructure redirection on the toplevel sheet.
14:21:10
nyef
Yeah, I think that it mostly Just Works to slap an :AROUND on SETF SHEET-REGION and SETF SHEET-TRANSFORMATION on the toplevel sheet class.
18:40:15
jackdaniel
some cleanup of unused interfaces and mirroring (without functional changes): https://github.com/robert-strandh/McCLIM/pull/451