Age | Commit message (Collapse) | Author |
|
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>
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
This adds a configure.ac check for expat.h and libexpat.so since the
theming code currently assumes this API.
|
|
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.
|
|
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.
|
|
We now simply print a warning and fallback to the default material if we
fail to parse a theme's xml.
|
|
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 the mb_wm_util_list API pass straight through to the g_list
API.
|
|
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.
|
|
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.
|
|
|
|
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
|
|
|
|
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.
|
|
Some misc #include fixes to enable managers/maemo to build again
|
|
we now expect 2.63, 1.11, and 2.26 respectively
|
|
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.
|
|
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.
|
|
|
|
This simply renames the --enable-libmatchbox configure option to have a
2 suffix.
|
|
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
|
|
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
|
|
This nabs the autogen.sh from Clutter as a basis than can handle the
gtkdocizing of the project
|
|
This adds the basis for creating an API reference for libmatchbox2
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
|
|
This allows for some damage event compression, improving compositor performance
|
|
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.
|
|
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.
|
|
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).
|
|
|
|
|
|
|
|
* matchbox/core/mb-wm-stack.c:
(mb_wm_stack_remove):
Fixed bug in stack size accounting (patch by Aurélien Bauchet
<abauchet@comwax.com>).
|
|
* matchbox/core/mb-window-manager.c:
When the root window resizes, update the work area rectangles.
|
|
* 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>).
|
|
* matchbox/core/mb-window-manager.[ch]:
Make get_desktop_geometry a vfunc, so that subclasses can override
it.
|