381 Commits

Author SHA1 Message Date
Zhai, Edwin
f1df83b62c makefile: Fix tabs vs space issue
Fix following build error:
| Makefile:734: *** missing separator (did you mean TAB instead of 8 spaces?).  Stop.
| ERROR: oe_runmake failed

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2011-07-11 10:23:00 +01:00
Robert Bragg
8c59f1a511 theme: Don't _Stop the parser for "</theme>" tags
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-12-09 22:46:48 +00:00
Robert Bragg
43c8ac7890 theme: fix manual list manipulation
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-12-09 22:46:48 +00:00
Robert Bragg
bf22db7f5d theme: Check status of XML_Parse
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-12-09 22:46:48 +00:00
Robert Bragg
8e2d625c63 decor: initialise geom before using it for request
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-12-09 22:46:48 +00:00
Robert Bragg
59aa976f6a configure: check for xrender when supporting composite
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-12-09 22:46:48 +00:00
Robert Bragg
6110929163 configure: unconditionally check for libexpat.so
This adds a configure.ac check for expat.h and libexpat.so since the
theming code currently assumes this API.
2010-12-09 22:46:48 +00:00
Robert Bragg
eac6c1665a Switch to mb-window-type-xyz.[ch] naming convention
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-12-09 22:46:48 +00:00
Robert Bragg
28886622db theme: don't determine use of compositing in theme
This removes the option of overriding the use of compositing in a theme.
2010-12-09 22:46:47 +00:00
Robert Bragg
af87de80a4 fix: switch to g_list to avoid using free()
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-12-09 22:46:47 +00:00
Robert Bragg
ea84bd26d7 Overhaul our mainloop integration
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-09 22:46:47 +00:00
Robert Bragg
4105968374 managers: Adds an example xrender based compositor
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-09 22:46:47 +00:00
Robert Bragg
fe05e654ee theme: gracefully handle failures to parse a theme
We now simply print a warning and fallback to the default material if we
fail to parse a theme's xml.
2010-12-09 22:46:47 +00:00
Robert Bragg
2840ebd7b2 rename mb-window-manager -> mb-wm-manager
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-09 22:46:47 +00:00
Robert Bragg
a8e582f0d5 lists: Completely removes mb_wm_util_list
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-09 22:46:47 +00:00
Robert Bragg
eb3bf71e65 util: re-implement linked lists using GList API
This makes the mb_wm_util_list API pass straight through to the g_list
API.
2010-12-09 22:46:47 +00:00
Robert Bragg
3b3051ee42 build: Don't provide CompMgr subclasses in libmatchbox
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-09 22:46:46 +00:00
Robert Bragg
98e75aaa63 build: Make glib-2.0 a required dependency
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-12-09 22:46:46 +00:00
Robert Bragg
94908a7596 Adds some more files to .gitignore 2010-12-09 22:46:31 +00:00
Robert Bragg
7d2876023f build: Another pass at overhauling the naming schemes
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-09 22:38:47 +00:00
Robert Bragg
1356ae017f rename mb-wm.h -> matchbox.h 2010-12-09 22:38:46 +00:00
Robert Bragg
d01676b803 build: Remove object typedefs from mb-wm-types.h
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-12-09 22:38:46 +00:00
Robert Bragg
0f0c5a9d6e build: fix the build for managers/maemo
Some misc #include fixes to enable managers/maemo to build again
2010-12-09 22:38:46 +00:00
Robert Bragg
c44faf9339 build: bump pre-requisites for auto{conf,make},libtool
we now expect 2.63, 1.11, and 2.26 respectively
2010-12-09 22:38:46 +00:00
Robert Bragg
dfd3718ca6 build: simplify the build structure
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-09 22:38:46 +00:00
Robert Bragg
9bfc0ed6d3 update managers to link with libmatchbox2
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-09 22:38:45 +00:00
Robert Bragg
3293e138d7 build: Unconditionally build libmatchbox2
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-12-09 22:38:45 +00:00
Robert Bragg
2d9ec0f5b6 add a '2' suffix to ENABLE_LIBMATCHBOX conditional 2010-12-09 22:38:45 +00:00
Robert Bragg
7d7ca9c21a rename --enable-libmatchbox to --enable-libmatchbox2
This simply renames the --enable-libmatchbox configure option to have a
2 suffix.
2010-12-09 22:38:45 +00:00
Robert Bragg
10fbcdd59a build: Remove AM_MAINTAINER_MODE from configure.ac
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-12-09 22:38:45 +00:00
Robert Bragg
78ef3623a9 build: Enable silent automake rules
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-12-09 22:38:45 +00:00
Robert Bragg
c0d229963f build: updates autogen.sh to handle gtkdocize
This nabs the autogen.sh from Clutter as a basis than can handle the
gtkdocizing of the project
2010-12-09 22:38:45 +00:00
Robert Bragg
11915c567c docs: Adds initial gtk-doc boilerplate
This adds the basis for creating an API reference for libmatchbox2
2010-12-09 22:38:45 +00:00
Robert Bragg
1704d70f85 re-organize directory structure a bit
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-12-09 22:38:44 +00:00
Tomas Frydrych
c3555db842 check we have expat.h 2010-11-25 12:35:05 +00:00
Tomas Frydrych
00ff057eab .gitignore 2010-11-21 14:06:42 +00:00
Tomas Frydrych
50d946f6e3 [MBWMCompMgrClutter] run scale effects from center of actor 2010-11-21 13:59:50 +00:00
Tomas Frydrych
a4ddc95c75 [MBWMClientWindow] Support multiple items in _NET_WM_WINDOW_TYPE property
Handle the propery as per EWMH spec: find the first value we understand; the
content of the whole property is made available for custom implemenations via
the net_type_full/net_type_full_size members.
2010-11-21 13:59:50 +00:00
Tomas Frydrych
0807cb72c1 [MBWMCompMgrClutter] general code clean up 2010-11-21 13:59:50 +00:00
Tomas Frydrych
aff4b38e4d [MNWMCompMgrClutter] use bounding box damage, rather than non-empty
This allows for some damage event compression, improving compositor performance
2010-11-21 13:59:50 +00:00
Tomas Frydrych
d93db5b1cc [MBWMCompMgrClutterClient] implement freezing of updates
Attempt to freeze updates to client texture during effect progress.

NB: Whether this works depends on how tfp is implemented by the driver; it is
advisable that any effects around the unmap/minimize events are implemented in
a fashion that can cope with the content of the client window going black
during the effect.
2010-11-21 13:59:50 +00:00
Tomas Frydrych
a80132bc4e [MBWMCompMgrClutter] Implement compositor stack freezing
Some effects (notably the Unmap one) need to be able to freeze the
compositor stack for duration of the effect, otherwise the animated actor
disappears below the top.
2010-11-21 13:59:39 +00:00
Tomas Frydrych
93a1efc9d6 [MBWMCompMgrClutter] Update for Clutter 1.0
Rewrite animations in the clutter compositor using ClutterAnimation API

Require clutter 1.5.6 (should be possible to use cluter 1.2.x, but there is
a bug in the 1.3/1.4 series that makes it unusable for us; this is fixed in
1.5.6).
2010-11-21 13:48:24 +00:00
Ross Burton
f792dedbd0 Replace changelog with a pointer to gitweb 2010-07-21 13:55:09 +01:00
Tomas Frydrych
18ab9c7e4f Fix SIGSEGV whne destroying a client with active ping timeout 2010-04-12 09:36:37 +00:00
Tomas Frydrych
3ea749ba3a Make file clean up 2010-04-12 09:36:30 +00:00
Tomas Frydrych
6b9824d241 2008-10-09 Tomas Frydrych <tf@linux.intel.com>
* 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-10-09 08:18:05 +00:00
Ross Burton
3cd719b10b 2008-09-26 Ross Burton <ross@linux.intel.com>
* matchbox/core/mb-window-manager.c:
	When the root window resizes, update the work area rectangles.
2008-09-26 12:51:33 +00:00
Tomas Frydrych
df84de0127 2008-09-16 Tomas Frydrych <tf@linux.intel.com>
* 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-16 10:58:01 +00:00
Ross Burton
4b29b8d0d8 2008-09-15 Ross Burton <ross@linux.intel.com>
* matchbox/core/mb-window-manager.[ch]:
	Make get_desktop_geometry a vfunc, so that subclasses can override
	it.
2008-09-15 17:57:39 +00:00