AgeCommit message (Collapse)AuthorFilesLines
2010-11-25theme: Don't _Stop the parser for "</theme>" tagsrib/matchbox-nextRobert Bragg1-5/+1
In xml_element_end_cb we were calling XML_StopParser when finding a </theme> tag, but the semantics of that are the XML_Parse will return an abort error which then results in us reporting a parse error. Instead of explicitly trying to stop the parser we simply ignore the </theme> tags and assume we will get an error from expat if the tag is unbalanced.
2010-11-25theme: fix manual list minupilationRobert Bragg1-4/+2
This is fallout from converting from the custom list implementation to GList. In xml_stack_pop we were using free() instead of g_list_free_1 to free a list node but also we were leaving the prev member of the new top in an inconsistent (non-NULL) state which was confusing the GList implementation resulting in a crash. We now use g_list_delete_link to remove the top of the list.
2010-11-24theme: Check status of XML_ParseRobert Bragg1-1/+1
We were assuming an error with parsing if XML_Parse returned a non-zero value but actually the API is defined so the opposite is true so we now only report a warning when XML_Parse returns zero.
2010-11-24decor: initialise geom before using it for requestRobert Bragg1-0/+2
In mb_wm_decor_grab_handler when handling motion events we would use the motion events to request new client window geometry via mb_wm_client_request_geometry but we weren't initializing the width and height members which could result in the client being killed by the server when failing to allocate an obscene amount of memory.
2010-11-24configure: check for xrender when supporting compositeRobert Bragg1-1/+1
We currently use XRenderFindVisualFormat to determine if a particular window has an alpha component so libmatchbox itself depents on the xrender extension library when support for composite is enabled.
2010-11-24configure: unconditionally check for libexpat.soRobert Bragg1-0/+8
This adds a configure.ac check for expat.h and libexpat.so since the theming code currently assumes this API.
2010-11-24Switch to mb-window-type-xyz.[ch] naming conventionRobert Bragg24-111/+111
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.
2010-09-15theme: don't determine use of compositing in themeRobert Bragg4-39/+1
This removes the option of overriding the use of compositing in a theme.
2010-09-15fix: switch to g_list to avoid using free()Robert Bragg9-12/+12
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.
2010-09-15Overhaul our mainloop integrationRobert Bragg19-1795/+1240
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-08-18managers: Adds an example xrender based compositorRobert Bragg5-2/+170
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-08-18theme: gracefully handle failures to parse a themeRobert Bragg1-2/+10
We now simply print a warning and fallback to the default material if we fail to parse a theme's xml.
2010-08-18fix: rename mb-window-manager -> mb-wm-managerRobert Bragg1-1/+1
2010-08-18build: add missing files for managers/clutterRobert Bragg2-0/+177
2010-08-18rename mb-window-manager -> mb-wm-managerRobert Bragg59-595/+595
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-08-18lists: Completely removes mb_wm_util_listRobert Bragg32-297/+194
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-08-18util: re-implement linked lists using GList APIRobert Bragg2-127/+12
This makes the mb_wm_util_list API pass straight through to the g_list API.
2010-08-18build: Don't provide CompMgr subclasses in libmatchboxRobert Bragg10-177/+104
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-08-18build: Make glib-2.0 a required dependencyRobert Bragg1-2/+1
It doesn't make much sense to have to reimplement basic C utility APIs such as linked lists and hash tables so this makes glib a required dependency for matchbox 2.
2010-08-18Adds an initial .gitignore fileRobert Bragg1-0/+64
2010-08-18build: Another pass at overhauling the naming schemesRobert Bragg88-164/+149
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-08-18rename mb-wm.h -> matchbox.hRobert Bragg30-30/+30
2010-08-18build: Remove object typedefs from mb-wm-types.hRobert Bragg21-91/+174
If you need to use MBWMTheme you should include "mb-wm-theme.h". The previous approach of putting all the object typedefs in mb-wm-types.h feels like it hid odd inter-object dependencies because it helped to avoid circular dependancy issues but imho I think the lines between objects interfaces should be clearer.
2010-08-17comp-mgr-clutter: ports to clutter 1.3Robert Bragg5-396/+746
This gets the clutter compositor working with clutter 1.3
2010-08-17build: fix the build for managers/maemoRobert Bragg12-18/+23
Some misc #include fixes to enable managers/maemo to build again
2010-08-17build: bump pre-requisites for auto{conf,make},libtoolRobert Bragg1-3/+5
we now expect 2.63, 1.11, and 2.26 respectively
2010-08-17build: simplify the build structureRobert Bragg73-230/+146
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-08-17update 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-08-17build: Unconditionally build libmatchbox2Robert Bragg7-22/+3
Move mbwm2 towards primarily providing a library for building window and composite managers. The library is now built unconditionally and the window managers under the managers/ subdirectory should instead be made to link against this library instead of statically linking to the internal .la files.
2010-08-17add a '2' suffix to ENABLE_LIBMATCHBOX conditionalRobert Bragg6-6/+6
2010-08-17rename --enable-libmatchbox to --enable-libmatchbox2Robert Bragg1-6/+6
This simply renames the --enable-libmatchbox configure option to have a 2 suffix.
2010-08-17build: Remove AM_MAINTAINER_MODE from configure.acRobert Bragg1-2/+0
Anyone who builds the matchbox2 source should expect that if they modify configure.ac or a Makefile.am file then the autotool magic should be re-run so the changes take immediate affect. With the AM_MAINTAINER_MODE option though you have to explicitly opt in to the bahaviour that we'd get anyway without using the macro
2010-08-17build: Enable silent automake rulesRobert Bragg1-0/+1
So we can see past all the noise of compiling and actually see compilation warnings we enable the silent automake build rules option in configure.ac
2010-08-17build: updates autogen.sh to handle gtkdocizeRobert Bragg1-2/+40
This nabs the autogen.sh from Clutter as a basis than can handle the gtkdocizing of the project
2010-08-17docs: Adds initial gtk-doc boilerplateRobert Bragg8-1/+194
This adds the basis for creating an API reference for libmatchbox2
2010-08-16re-organize directory structure a bitRobert Bragg87-71/+71
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.
2010-07-21Replace changelog with a pointer to gitwebRoss Burton1-4327/+3
2010-04-12Fix SIGSEGV whne destroying a client with active ping timeoutTomas Frydrych2-42/+22
2010-04-12Make file clean upTomas Frydrych8-43/+43
2008-10-092008-10-09 Tomas Frydrych <tf@linux.intel.com>Tomas Frydrych2-4/+23
* matchbox/core/mb-wm-stack.c: (mb_wm_stack_remove): Fixed bug in stack size accounting (patch by Aurélien Bauchet <abauchet@comwax.com>).
2008-09-262008-09-26 Ross Burton <ross@linux.intel.com>Ross Burton2-0/+7
* matchbox/core/mb-window-manager.c: When the root window resizes, update the work area rectangles.
2008-09-162008-09-16 Tomas Frydrych <tf@linux.intel.com>Tomas Frydrych6-5/+72
* matchbox/core/mb-window-manager.c: * matchbox/core/mb-wm-atoms.c: * matchbox/core/mb-wm-client-window.c: * matchbox/core/mb-wm-client-window.h: * matchbox/core/mb-wm-types.h: Use WM_NORMAL_HINTS for window gravity (instead of the X attribute) and user position (patch by Aurélien Bauchet <abauchet@comwax.com>).
2008-09-152008-09-15 Ross Burton <ross@linux.intel.com>Ross Burton3-1/+25
* matchbox/core/mb-window-manager.[ch]: Make get_desktop_geometry a vfunc, so that subclasses can override it.
2008-09-112008-09-12 Tomas Frydrych <tf@linux.intel.com>Tomas Frydrych3-7/+16
* matchbox/managers/simple/Makefile.am: * matchbox/managers/maemo/Makefile.am: Fixed order of libraries for the linker so we can build with --as-needed.
2008-08-12Missed in last commitRobert Bragg1-1/+7
2008-08-122008-08-12 Robert Bragg <bob@o-hand.com>Robert Bragg8-53/+36
* configure.ac * matchbox/client-types/Makefile.am * matchbox/comp-mgr/Makefile.am * matchbox/core/Makefile.am * matchbox/theme-engines/Makefile.am * matchbox/Makefile.am * matchbox/managers/simple/Makefile.am: Allows building managers and libmatchbox at the same time. By default managers remain disabled if libmatchbox is enabled, but you can now enable managers explicitly to get both. This also removes lots of Makefile.am ifdef checks where we were toggling between noinst_LIBRARIES ending in .a vs .la. All CLIENT_LIBS are listed as .la now and all noinst libs are build as .la. Libtool then figures out the right thing to do.
2008-07-312008-07-31 Robert Bragg <bob@o-hand.com>Robert Bragg2-4/+10
* matchbox/core/mb-wm-client.c: Plumbs in a call to mb_wm_handle_hang_client in mb_wm_client_ping_timeout_cb, so that derivative managers can now just implement wm_class->client_responding and wm_class->client_hang to handle unresponsive clients.
2008-07-302008-07-30 Robert Bragg <bob@o-hand.com>Robert Bragg2-2/+31
* matchbox/core/mb-wm-client.c: Adds a check in mb_wm_client_ping_start that the client supports the NET_WM_PING protocol. Adds a verbose comment in mb_wm_client_deliver_delete about not being able check for failures of WM_DELETE messages. (Since I recently had a problem in a derivative WM that was attempting just that.)
2008-07-292008-07-29 Robert Bragg <bob@o-hand.com>Robert Bragg2-399/+421
* matchbox/theme-engines/mb-wm-theme-png.c: mb_wm_theme_png_get_button_position now propery determines the button positions in the case that the decor has been expanded larger than the themes template image.
2008-07-292008-07-29 Robert Bragg <bob@o-hand.com>Robert Bragg2-1/+6
* configure.ac: Look for clutter-0.8 now instead of 0.7