Final progress report: Metacity MPX



Hello!

Since this is the last SoC progress report, I've decided to make a
not-so-small text explaining the current state of my project. If you
don't want to read it, skip to the end, there is a smaller version
there.

Toolkit (gtk+) issues:
 - Getting the events:
   - Works with my patch, but not the way I want. I don't like using
strcmp() everytime I get an event to discover which device generated
it. Also, I should review my patch before submitting to the gtk+ guys.
 - Menu Widget:
   - Stopped working on it. Things recently changed in MPX, and we're
also having a problem with grabs. I've talked to Peter Hutterer (who
is responsible for MPX) and this problem is still to be solved in MPX,
so I decided to wait.

Coldplugging:
 - Works.
   - There are issues when there are more mice than keyboards, but
they're not bugs, just doubts about how should metacity behave.

Hotplugging:
 - Not implemented.
   - Hotplugging doesn't seem to be working for me with MPX (I think
I'm doing something wrong). But assuming that MPX works correctly, it
should be easy to implement.

ClientPointer changing:
 - Works.

Device pairing:
 - The internal part works (metacity recognizes and works correctly with pairs).
   - I'm not happy with the way it is working when there is more than
one keyboard associated with a mouse. I'll change this.
 - Letting the client change the pairs wasn't implemented yet, but
this is also easy.

Access control lists managing:
 - Works.

Xi events:
 - Works: we're completelly using Xi events.
   - There is a problem getting events when clients do implicit grabs.
This is the same problem I described in "Menu Widget".

Multiple focus:
 - Works.
   - I'm not happy with the way it works when there are more keyboards
than pointers. I'll change this.
   - There is the implicit grab problem mentioned two times already,
and because of it, you can only change focus using the window frame
for applications that do implicit grabs on the mouse.

Multiple window operations (dragging/resizing, etc):
 - Being implemented.
   - I have a patch in my local branch and I'm fixing the bugs before
committing I was planning to commit this before SoC final timeline,
but things got bigger than I thought.

The WM menu:
 - Explained already: having problems with implicit grabs. (And I also
found a bug today, which will be fixed in the next commit, along with
the multiple operation stuff).

The code itself:
 - Even if it works, I'm not happy with some function prototypes,
variable names and the way I broke metacity's layers. This will be
changed (takes time...).
 - Still need to remove the "--enable-mpx" and make it the only possible option.

The guide to other WM maintainers:
 - Works: doing the final adjusts. It is already at
http://www.inf.ufpr.br/prz05/mpx_wm.pdf , and as I change it I'll
update the link. Thanks to Elijah for the great help on this document!

Other documentation:
 - Works. See http://live.gnome.org/Metacity/Mpx. Will probably put
parts of this text there.

So, in summary:
- Toolkit:
  - Events: works.
  - Menu: has problems.
- Coldplugging:
  - Works.
- Hotplugging:
  - Not implemented.
- ClientPointer changing:
  - Works.
- Device pairing:
  - Internal parts: works.
  - User interface: not implemented.
- Access Control Lists:
  - Works.
- Xi Events:
  - Works.
- Multiple focus:
  - Works.
- Multiple operations:
  - Being implemented.
- The WM menu:
  - Has problems.
- Guide to other WM maintainers:
  - Works.
- How-to:
  - Works.

But there are a lot of things that work but I'm not happy with the way
it is working, and so will be changed. And, of course, there are also
hidden bugs!

So, what's the plan now?
I'll keep developing the project until I implement everything, then
I'll start maintaining it and see what happens when people start using
X.org 7.4. I'll also try to help with the other stuff that need MPX
integration: the toolkit and the
panel.

My thoughts about SoC and GNOME:
Thank you very much for everything!! I really enjoyed being one of the
GNOME's summer of code students! Now I know a lot more about the GNOME
community and I'll try help it become even better. Thank you very
much!

And, of course, I'd like to send some special thaks to my mentor, Elijah Newren!

Cheers,
Paulo.



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