freenode/#clim - IRC Chatlog
Search
6:28:27
jackdaniel
1. we didn't catch invalid coordinates (so problem was masked by invalid request on low enough safety/debug settings)
6:29:33
jackdaniel
3. we called bounding-rectangle on resulting effective-region (what was the major cause of the issue): if regions intersection with sheet native region was NIL we have called effectively (bounding-rectangle +nowhere+)
6:30:17
jackdaniel
and bounding rectangle of nowhere is 0:0 0:0, so disregarding our patient work to find the effective region something from outside it could sneak in if the effective region was nowhere and sheet beginning was not part of the native region
11:31:53
jackdaniel
loke: I'm in the middle of thinking about protocol which will benefit any backend (with default implementation). I need to go somewhere else now and I'm not sure if I'll find for it today, so for your comment I'm publishing an unfinished sketch of "default" implementation here (without comments): https://gist.github.com/dkochmanski/8728089a6976a3481082bf67dfbd66a1
11:43:14
jackdaniel
idea behind this solution is that x11 backend eql-specializes on selection :primary and :clipboard and replace default standard-port based approach
13:32:50
loke
jackdaniel: in your implementation of request-selection, what if there is no active sleection?
13:57:21
jackdaniel
this generalisation would work for arbitrary selections with optional backend specialisation
14:18:08
loke
jackdaniel: The X11 selection machnism is generalised in terms of clipboard/selection, etc. In fact, it support an infite number of "boxes". However, only selection and clipboard is typically used. The old concept of numbered "cut buffers" isn't supported by anything these days.
14:18:29
loke
And othe rplatforms are even more limited. Windows only supports clipboard, afaik. OSX has clipboard+selection
14:19:11
loke
I think having CLIM settle on clipboard and selection is probably enough. If we try to generalise further we may end up in a situation where the mapping from CLIM concepts to native OS concepts are unnatural.
14:20:23
loke
By the way, I managed to override the history stuff in interactor, and replaced it with my own implementation that doesn't interfere with the existing functionality. It's ugly though, and I reference a lot of non-exported symbols to make it work.
14:20:29
loke
Here's the code: https://github.com/lokedhs/maxima-client/blob/master/src/maxima-history.lisp#L52
15:49:24
jackdaniel
loke: having general mechanism in clim will make it possible to map onto underlying display server what fits. for instance for windows we map :clipboard (eql specialisation), for X11 and OSX we map :clipboard and :selection
15:51:02
jackdaniel
so it works as well as it does with hardcoded clipboard and selection but with less verbs to advertise
15:51:32
loke
jackdaniel: I'm not against the general idea. My very first protoype (still in a branch somewhere) used it. In my rewrite, I decided to make it simpler and simply lock down two "boxes"
15:52:15
loke
I did that, because I didn't want to bother with the added complexity, but other than that I have no particular preference.
16:12:43
jackdaniel
adding sanity check for valid coordinates revealed a hidden defect in stream printing interface (found by Nisar), that's good – that gives me idea how we can speed up the interface substantionally