freenode/#clim - IRC Chatlog
Search
4:33:39
loke
beach: I'm looking at input.lisp (part of the CLX backend) and it seems there is an assumption that every pane in CLIM has a corresponding X11 window associated with it.
4:35:29
beach
One important such thing is the limitation that X11 coordinates are limited to 16 bits.
4:35:52
loke
Am I misreading input.lisp? As best as I can tell, it takes the X11 window that is associated with an event, converts that window to the corresponding CLIM pane, creates a CLIM event and dispatches that.
4:37:03
loke
I'm specifically talking about this line of code: https://github.com/lokedhs/McCLIM/blob/clipboard/Backends/CLX/input.lisp#L126
4:38:15
beach
How do you conclude from that line that every pane has an X11 window associated with it?
4:41:47
loke
because at least for some event (the implementation of :SELECTION-CLEAR for example) that is sent as a response, and then there is a method that is implemented for SELECTION-CLEAR on a stream pane that causes it to clear the selection.
4:42:15
loke
If the stream pane didn't have its own window, the SELECTIOn-CLEAR would end up being sent to the containing pane.
4:45:16
loke
beach: it isn't. It's part of the old selection/clipboard stuff, and we already know it was a bit of a hack to begin with.
4:46:53
beach
So even when there is more than one X11 window in an application, events end up in the same place.
4:50:56
loke
beach: so if there are panes that don't have an X11 window, events relating to that pane the corresponding events will be directed to the enclosing panes (the innerpost pane that does have an X11 window, I guess?)
4:51:38
beach
I think one should assume that there could be a single X11 window for the entire application.
4:55:30
loke
Given a pane, call it A, I get the corresponding X11 window... Then, given the same X11 window, I get the corresponding pane, and let's call that pane B
5:01:37
loke
The reason I'm looking at this is because I send an X11 event, and then subsequently receieve a response in another X11 event. I need to correlate the response with the original request, and I had planned to put that information in the associated pane.
5:02:45
loke
However, since the return event can be associated with a different pane as the one used to send, that doesn't work. I'm thinking that the best way to do this is to simply stuff this information in the WINDOW-PLIST that is part of CLX.
5:06:10
jackdaniel
loke: you read it wrong. distribution works also on sheets which doesn't have mirrors
5:06:43
jackdaniel
correct assumption which is in line with the spec is that you can't tell whenever there is a single mirror or mirror-per sheet (or random)
5:07:32
loke
jackdaniel: The code I;m talking about is purely CLX (it's all part of the CLX backend) so my questions are purely based on that.
5:11:03
loke
jackdaniel: Right. So it looks at the event coordinates to determine the correct destination.
5:14:41
jackdaniel
right now I ahve problems with my vps, try things and if they don't work I'll try to read the code with you
5:14:54
loke
Aren't keypress events simply directed to the focused pane (I didn't look at thtat code)
5:15:41
jackdaniel
selection comes to the focused pane too afaikt. either way distribute-event may be not correct for some corner cases, but this is just a prompt to fix that
5:16:33
jackdaniel
my point is that event distribution does not rely on the assumption that there is mirror-per-pane
5:17:30
loke
jackdaniel: Indeed, got it. It's because there is logic (that is not CLX-specific) that resolves that in the best way it can.
5:20:16
loke
The paste request have to be invoked by a pane, one would expect the subsequent delivery of the clipboard content to be delivered to the same pane as the one that made the request. In th eold old code, it didn't. it just assumed that it will be delivered to the correct pane (which seems to have been the focused one).
5:20:54
loke
I will resolve this by tracking the outstanding request in the corresponding xlib window-plist
7:37:51
scymtym
jackdaniel: have you seen https://techfak.de/~jmoringe/moonwalk.ogv ? is this a known problem? i couldn't find an existing issue for it
7:51:34
jackdaniel
my server died for no obvious reason. I've send a ticket to OVH, but my mail is busted temporarily :\