path: root/managers
AgeCommit message (Collapse)AuthorFilesLines
2010-12-09Overhaul our mainloop integrationRobert Bragg4-50/+18
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.
2010-12-09managers: Adds an example xrender based compositorRobert Bragg4-0/+2064
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.
2010-12-09rename mb-window-manager -> mb-wm-managerRobert Bragg10-55/+55
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.
2010-12-09lists: Completely removes mb_wm_util_listRobert Bragg3-12/+12
This actually replaces all use of the mb_wm_util_list API so all the code now just uses the g_list API directly.
2010-12-09build: Don't provide CompMgr subclasses in libmatchboxRobert Bragg7-27/+2621
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.
2010-12-09build: Another pass at overhauling the naming schemesRobert Bragg8-8/+8
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
2010-12-09rename mb-wm.h -> matchbox.hRobert Bragg6-6/+6
2010-12-09build: fix the build for managers/maemoRobert Bragg5-16/+5
Some misc #include fixes to enable managers/maemo to build again
2010-12-09build: simplify the build structureRobert Bragg1-4/+1
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.
2010-12-09update managers to link with libmatchbox2Robert Bragg2-71/+17
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.
2010-12-09re-organize directory structure a bitRobert Bragg14-0/+1236
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.