
On Sat, Jun 23, 2007 at 02:21:15PM -0700, David Roundy wrote:
Here's a massive patch to move code over to the new doLayout. I don't recall what tabbed+Xinerama did before, but right now the tabs are only properly printed on the screen that has focus (at least using LayoutScreens to fake Xinerama). I haven't figured out why this is, and am tired, so this is where this is going to be left for the day. It doesn't seem to me like a big deal, since you can't click on those tabs until you put the focus on that screen. Not that I don't want to fix it, but I would like to see these patches applied in spite of the problem, since this particular breakage is mild enough that it shouldn't hurt anyone's productivity.
Regarding this breakage, it occurs to me that it's probably becaused only the focussed layout gets redraw messages. This (presumably) worked because LayoutHooks attached the hooks to the focussed layout, rather than the layout that is adding the hooks, which put them on a different layout, but that worked all right, but seems ugly to me. OTOH, ugly but working has much to be said for it. Still, if we want general purpos hooks unrelated to any particular layout, I'd say that sticking them on a random layout is the wrong thing to do. Now that I know what the trouble is, I also have a good idea what the right fix is: we should examine events and send messages to the layout associated with the screen on which the event is located. At least, if this is possible, that's what we should do. I think most events have a location associated with them, or a window... Another easy fix might be to simply send unidentified events to all visible layouts. We don't want to do this with key strokes, but mouse events, etc should be harmless. David