On Fri, 2009-01-30 at 20:38 +0100, Alexander Larsson wrote: > I'm running a full gnome session with the client-side-windows branch > here. There are a few minor issues I'm working on, but overall it just > works(tm). I'll send a new status report soon. > > However, there is a specific issue with metacity that I'd like some > feedback on. Metacity uses gdk to handle the frame window for managed > children. This window will get the clients window reparented into it, > however metacity never accesses that window as a gdk window (i.e. it > doesn't call gdk_window_foreign_new on the xid) , so gdk doesn't know > about it. > > This means that as gdk knows there are no children of the frame, and > thus the event emulation code won't send a leave for inferior event to > the frame when the mouse moves from the frame to the client window. This > means metacity won't reset the cursor on the frame, thus affecting the > default cursor in the client window. (In X the default cursor is > inherited from the parent.) > > Now, how do we solve this? There are two possibilities. Either we add > special code to metacity so that it creates the child window as a gdk > object and keeps it updated as to the size when the frame is resized. > > Or, we add some hacks to gdk to track this case and make it work. One > way is to detect native Inferior Leave events on windows with no > children and use XQueryTree to find the windows. Resizes can be tracked > with ConfigureEvents. I'm attaching a patch that implements this.
Although I believe there is a problem, It's not clear from the above what it is. Is there problem that Metacity isn't it getting a GDK leave event? If that's the problem, why can't you just convert the native event to a GDK event and send that along? And how are ConfigureEvents related? - Owen _______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-devel-list