SoC Progress Report: Changing metacity into a window-and-pointer-manager.



SoC Progress Report: May 14, 2007

I've decided that I'll start coding and "learn things on demand".

This week I've looking at metacity's code and tried to add the
necessary infrastructure for the MPX support. Metacity now knows about
our input devices, so we can start implementing the MPX calls.

The first feature that I added was the XSetClientPointer(). which
allows an application to change its current "core pointer". Let me
explain: when an application calls, for example, XGrabPointer(), it
tells X to "grab the pointer", but it doesn't tell which pointer is
going to be grabbed (because when XGrabPointer() was created, they
assumed that there was going to be just one pointer). So now we can
tell which pointer is going to be the client's pointer.

To implement this I had to understand metacity better, and also learn
a little more about GTK. Thanks to my mentor, who answered a lot of
questions!

One problem is that I couldn't test the feature because of a bug in
MPX (which was already fixed but not committed), so I'm going to wait
a little bit more.

There is also another problem: who is going to be metacity's pointer?
When we pop a menu, the pointer that is not the client pointer has
some difficulty in using the menu because the application grab "its"
pointer and not the others. I'll have to study this a little bit
more... We can use the Xi protocol calls here, so we won't need to set
a ClientPointer for metacity, but I think I'll have to talk to someone
who understands gtk implementation before... This is not a big
problem, I'll probably think about this after everything else is done.

This week, I'll study the problems I reported and I'll also start
studying how multiple foci works in MPX.

See you next week!
Paulo.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]