Age | Commit message (Collapse) | Author |
|
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.
|
|
Like the clutter based compositor it is based on the code of the simple
manager and it builds on the mb-wm-comp-mgr-xrender code that used to
live under the matchbox directory but has now been moved to part of the
compositor itself.
|
|
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.
|
|
This actually replaces all use of the mb_wm_util_list API so all the
code now just uses the g_list API directly.
|
|
This makes it the responsibility of managers/ to provide their own
CompMgr subclasses if they want to support compositing. This defines a
new manager called "clutter" based on the simple manager and the
mb-wm-comp-mgr-clutter code has been moved under managers/clutter.
The way matchbox is now configured has been tweaked. There is now a
--enable-compositing option that determines if libmatchbox supports
compositing which is required if you want to implement a new manager
that handles compositing. Also there is a --with-managers= option that
takes a coma separated list of which managers to build, including
simple,maemo and clutter.
|
|
There currently lots of inconsistent ways we refer to matchbox 2; it can
be mbwm2, matchbox-wm-2, matchbox2, matchbox-window-manager-2 and things
are also confusing when considering the naming of pkg-config files and for
choosing the directory name for installing headers.
The approach I'm starting to settle on (this goes back on some of the
renaming changes I made recently, so sorry for the churn) is to consider
the canonical name of the project just "matchbox" and then we use the
package/library versioning to define it as "2.0".
Headers now get installed in $prefix/include/matchbox-2.0/matchbox and
the top level header has been renamed from mb-wm.h to matchbox.h. The
pkg-config file will be installed as matchbox-2.0.pc
|
|
|
|
Some misc #include fixes to enable managers/maemo to build again
|
|
The micro organisation of source files was a bit unnecessary given the
small size of matchbox2 and made the makefiles a bit more complex than
needs be. We now just have a single Makefile.am for libmatchbox2 which
uses a few automake conditionals to decide when certain files should be
excluded from the build.
|
|
This updates {simple,maemo}/Makefile.am so they now just link with
libmatchbox2 instead of cherry picking which internal libraries they
want to statically link with.
|
|
This renames the matchbox directory matchbox2 and it also moves the
/matchbox/managers directory to sit alongside the matchbox2 directory.
The idea being that everything under matchbox2 should be code that gets
linked into libmatchbox2 while code sitting alongside can then provide
examples that actually consume the libmatchbox2 api.
|