freenode/#clim - IRC Chatlog
Search
4:36:50
loke
beach`: I decided to implement a font replacement cache, so that I don't have to call out to Fontconfig every time I need to find the correct font for a given character. Drei is still not very efficient, but at least the amplification of its problems due to excessive font lookups have now been dealt with:
5:44:42
loke
I implemented the following function, that has a stable default but which is implemented by the Freetype renderer. The native Truetype renderer could also implement it if someone wanted to, in which case you'd get glyph replacement in Drei there as well:
7:28:00
loke
the pane contains a munch of presentations and stuff, and I just want to clear it all and start over. :-)
7:29:22
jackdaniel
hm, there is also window-clear which resets pane properties like scroll-extent, cursor etc
7:31:03
loke
one weird thing though, if I do window-clear, the contant gets removed, but the new stuff I add isn't painted.
7:35:20
jackdaniel
note-sheet-region-changed is for (suprise suprise) situations when region changes
7:35:55
jackdaniel
not when output-history changes (so it won't necessarily repaint *anything* - for instance if region doesn't change, or it gets smaller)
7:37:28
loke
I want to try :-) Do I have to set the event-timestamp to something, or can I just leave it as NIL?
15:27:56
loke
jackdaniel: I was looking at the possibility of using Xrender to copy the preserved content of a pane after scrolling
15:29:05
loke
Now, I can't just plug in the Xrender code in there, since this is generic code and not specific to CLX
15:29:35
loke
The problem, of course, is that this stuff happens in an :AROUND method, which means that I can't implement a new method that overrides this behaviour in the CLX case
15:29:58
loke
So that's my problem, how should this stuff be redesigned so as to make it possible to customise this behaviour for CLX panes?
15:31:35
loke
Right, but this :AROUND method still gets called (and I tried commenting out the call to DISPATCH-REPAINT, and sure enough, the pane doesn't get repainted anymore when scrolling, so that proves that I'm looking at the right spot
15:32:08
loke
Even with a mixin, that method will still be called, since it's an :AROUND method, won't it?
15:33:09
jackdaniel
I have no good recipe for you, I'd have to work with the code to think of anything good
15:34:43
jackdaniel
ACTION is glad being the rubber duck, his avatar will pretend he's still around ;-)
15:34:52
loke
I really should create another :AROUND method around the clx pane wrapper-thingy, and then call call-next-method with inhibit bound to T
15:35:36
loke
(I still feel it's horribly ugly, I'm not a fan of the overuse of :AROUND methods in clim
15:43:25
loke
jackdaniel: So if I want to specialise on CLX panes only, which class should I specialise this method on?
15:53:52
loke
https://github.com/lokedhs/McCLIM/blob/replace-font/Backends/CLX/frame-manager.lisp#L127