freenode/#clim - IRC Chatlog
Search
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
22:33:06
jackdaniel
"document this protocol with examples, should cover that and that, we'll help with understanding it if there are doubts of how things work"
0:07:53
nyef
jackdaniel: That sounds interesting. Document it as the spec calls for, as McCLIM implements, or something else?