Age | Commit message (Collapse) | Author |
|
As part of an ongoing effort to remove the overloading of the term
"client" in the API this switches the window-type classes to use a
mb-wm-window-type-xyx.[ch] filename scheme and a MBWMWindowTypeXyz
symbol name scheme instead of mb-wm-client-xyz.[ch] and MBWMClientXyz.
|
|
This removes the option of overriding the use of compositing in a theme.
|
|
This fixes some crashes due to lists now being based on the glib slice
allocated but the previous matchbox list API just used malloc/free.
There were some places in matchbox where we were using free() to free
links of a list, but now we need to use g_list_free_1.
|
|
This removes mb-wm-main-context.c since we now just use a glib mainloop
context instead. The new mainloop integration API allows matchbox to be
fed X events from an external toolkit so core matchbox no longer needs
to have any gtk specific event source integration code, since it should
be straightforward for a gtk based wm/compositor to decide to take
ownership of event fetching and pass those events through to matchbox
manually if they want.
In the process of removing references to the mb-wm-main-context API it
was necessary to refactor how we handle mouse grabs for moving and
resizing windows. Previously we would do an X grab and then then
immediately enter a tight loop, polling for X mouse events and handling
them until something triggers an ungrab and then resume fetching events
in the normal way. Now though when we do the mouse grab we just use
mb_wm_manager_add_event_handler to register a temporary interest in
mouse events and mb_wm_manager_remove_event_handler when the grab is
finished. This means we can continue to use the normal event delivery
mechanism during a grab and more importantly we don't block the mainloop
which would really upset window managers and compositors needing to
process other asynchronous events during a grab.
|
|
So the naming of MBWindowManager is consistent with other matchbox
objects the new name is MBWMManager. The API has also been modified so
that method functions aren't simply using the mb_wm_method_name scheme
they new use a mb_wm_manager_method_name scheme. Some of the property
setters were missing an explicit "set" in the name which has been added,
and in anticipation that we will start to replace the use of "client"
with "window" some of methods corresponding to windows have been renamed
ahead of time.
|