Age | Commit message (Collapse) | Author |
|
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.
|
|
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 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
|
|
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.
|
|
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 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.
|
|
|
|
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).
|
|
|
|
* 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.
|
|
* configure.ac:
Look for clutter-0.8 now instead of 0.7
|
|
* configure.ac:
Adds a -I$(top_builddir) to MBWM_INCS for finding mb-wm-config.h
when doing out of tree builds.
* matchbox/client-types/Makefile.am:
* matchbox/comp-mgr/Makefile.am:
* matchbox/theme-engines/Makefile.am:
Removes us of wildcards for setting pkginclude_HEADERS variables.
Automake doesn't support wildcards.
|
|
* configure.ac:
* matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c:
Use ClutterGLXTexturePixmap when building agains clutter GLX
backend.
|
|
* configure.ac:
When using xfixes and xext, make sure they make it into the .pc
file.
|
|
* configure.ac:
* matchbox/mb-wm-config.h.in:
Added missing MBWM_WANT_DEBUG to mb-wm-config.h.
* matchbox/core/mb-wm.h:
Ensure mb-wm-config.h is included before all other mbwm includes.
* matchbox/client-types/mb-wm-client-app.c:
* matchbox/client-types/mb-wm-client-desktop.c:
* matchbox/client-types/mb-wm-client-dialog.c:
* matchbox/client-types/mb-wm-client-input.c:
* matchbox/client-types/mb-wm-client-menu.c:
* matchbox/client-types/mb-wm-client-note.c:
* matchbox/client-types/mb-wm-client-override.c:
* matchbox/client-types/mb-wm-client-panel.c:
* matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c:
* matchbox/comp-mgr/mb-wm-comp-mgr-xrender.c:
* matchbox/comp-mgr/mb-wm-comp-mgr.c:
* matchbox/core/mb-window-manager.c:
* matchbox/core/mb-wm-client-base.c:
* matchbox/core/mb-wm-debug.c:
* matchbox/core/mb-wm-debug.h:
* matchbox/core/mb-wm-decor.c:
* matchbox/core/mb-wm-layout.c:
* matchbox/core/mb-wm-macros.h:
* matchbox/core/mb-wm-main-context.c:
* matchbox/core/mb-wm-object.c:
* matchbox/core/mb-wm-object.h:
* matchbox/core/mb-wm-root-window.c:
* matchbox/core/xas.c:
* matchbox/managers/maemo/Makefile.am:
* matchbox/managers/maemo/maemo-input.c:
* matchbox/managers/maemo/maemo-window-manager.c:
* matchbox/managers/maemo/maemo-toolbar.c:
* matchbox/managers/maemo/maemo-window-manager.h:
* matchbox/managers/maemo/matchbox-window-manager-2-maemo.c:
* matchbox/managers/simple/matchbox-window-manager-2-simple.c:
* matchbox/theme-engines/mb-wm-theme-png.c:
* matchbox/theme-engines/mb-wm-theme.c:
Replaced #ifdef MBWM_WANT_DEBUG with #if MBWM_WANT_DEBUG.
* matchbox/managers/maemo/maemo-window-manager.c:
(maemo_window_manager_class_type):
Fixed incorrect object initialization.
|
|
* configure.ac:
Added libpng to the required packages for libmatchbox2 when
building png theme.
|
|
* matchbox/theme-engines/mb-wm-theme.c
Some theme.xml schema changes. clr-* now color-*
All x/y width/height attributes related to specifying regions within
a template image are now prefixed template-*
* doc/MBWM2-Overview.xml
Documentation updated in line with schema changes
* matchbox/managers/maemo/theme/theme.xml
* matchbox/managers/maemo/theme/background.png
* matchbox/managers/maemo/theme/Makefile.am
* data/themes/Default/theme.xml
* data/themes/PngSample/theme.xml
* data/themes/PngSample/background.png
* data/themes/PngSample/Makefile.am
Existing themes updated to use the new attribute names and
background.png images have been renamed to template.png
* configure.ac
* data/themes/Makefile.am
Install the PngSample theme by default if PNG theme engine enabled
|
|
* configure.ac
fix for clutter composite manager: glib main loop had accidentally
been disabled
|
|
* configure.ac
* matchbox/comp-mgr/Makefile.am
* matchbox/comp-mgr/mb-wm-comp-mgr-xrender.c
* matchbox/comp-mgr/mb-wm-comp-mgr-xrender.h
* matchbox/core/mb-window-manager.c
* matchbox/managers/simple/Makefile.am
* matchbox/managers/simple/matchbox-window-manager-2-simple.c
* matchbox/mb-wm-config.h.in
Adds an --enable-composite-managers=A,B,C.. config option
and renames the "default" composite manager to "xrender"
|
|
* configure.ac:
Changed --enable-gtk and --enable-pango to --with-*.
|
|
* configure.ac
* doc/MBWM2-Overview.xml
* matchbox/core/mb-wm-types.h
* matchbox/mb-wm-config.h.in
* matchbox/theme-engines/Makefile.am
* matchbox/theme-engines/mb-wm-theme-cairo.c
* matchbox/theme-engines/mb-wm-theme-cairo.h
* matchbox/theme-engines/mb-wm-theme.c
* matchbox/theme-engines/mb-wm-theme.h
Removes all references to the cairo theme engine
|
|
- some bits disabled by default
- adds a new --enable-pango option that will be optionally used by the
png theme engine
- adds a new --enable-matchbox-remote option
|
|
* configure.ac:
* Makefile.am:
* util/Makefile.am:
* util/matchbox-remote.c:
Added matchbox-remote (from mbwm1 + -select-desktop option).
|
|
* configure.ac:
Fixed incorrect string quoting.
* matchbox/comp-mgr/mb-wm-comp-mgr-clutter.c:
* matchbox/comp-mgr/mb-wm-comp-mgr-default.c:
* matchbox/comp-mgr/mb-wm-comp-mgr.c:
(mb_wm_comp_mgr_unregister_client):
Moved shared code into the public function, and removed
unnecessary implementations from the default and clutter managers.
Removed call to mb_wm_comp_mgr_client_hide() as this interfers
with managers implementing an unmap effect.
* matchbox/comp-mgr/mb-wm-comp-mgr.h:
Added MBWMCompMgr::unmap_notify virtual.
* matchbox/comp-mgr/mb-wm-comp-mgr.c:
(mb_wm_comp_mgr_map_notify):
(mb_wm_comp_mgr_unmap_notify):
Moved the effects handling for map and umap events out of
MBWindowManager into the CM.
(mb_wm_comp_mgr_client_run_effect):
Take a temporary reference of the CM client object to enusure that
it is not destroyed while an effect is running.
* matchbox/core/mb-window-manager.c:
(mb_wm_handle_unmap_notify):
Removed handling of CM unmap effect.
(mb_wm_unmanage_client):
Extra comments.
|
|
* configure.ac:
* data/libmatchbox2-0.1.pc.in:
Fixed Requires field of pc file.
|
|
* configure.ac:
* data/libmatchbox2-0.1.pc.in:
Fixed pkgconfig include path.
|
|
* configure.ac:
Bumped clutter requirement to 0.7.
* matchbox/theme-engines/mb-wm-theme-cairo.c:
(mb_wm_theme_cairo_init):
Removed call to gtk_init (must be called by the application main()
function so display connection can be set up correctly.
* matchbox/managers/simple/matchbox-window-manager-2-simple.c:
(main):
Call gtk_init() if GTK integration is enabled.
|
|
* configure.ac:
* matchbox/comp-mgr/Makefile.am:
* matchbox/mb-wm-config.h.in:
* matchbox/core/mb-window-manager.c:
Added --enable-compositing-manager=framework-only to make it
possible to build libmatchox with compositing capabilites, but
without any of the provided backends.
* matchbox/core/mb-window-manager.c:
(mb_wm_main_loop):
Added missing xeven callback to the plain main glib loop.
* matchbox/core/mb-wm-main-context.c:
(mb_wm_main_context_init):
Removed unused code.
|
|
* configure.ac:
Fixed the header dirctory for libmatchbox.
* matchbox/core/mb-window-manager.c:
Fixed stray #ifdef.
|
|
* configure.ac:
* matchbox/core/mb-window-manager.c:
* matchbox/core/mb-window-manager.h:
* matchbox/core/mb-wm-client-base.c:
* matchbox/core/mb-wm-client-window.c:
* matchbox/core/mb-wm-client.c:
* matchbox/core/mb-wm-client.h:
* matchbox/core/mb-wm-main-context.c:
* matchbox/core/mb-wm-main-context.h:
* matchbox/core/mb-wm-root-window.c:
* matchbox/core/mb-wm-types.h:
* matchbox/core/mb-wm-util.h:
* matchbox/managers/maemo/maemo-window-manager.c:
* matchbox/managers/simple/matchbox-window-manager-2-simple.c:
* matchbox/mb-wm-config.h.in:
* matchbox/theme-engines/mb-wm-theme-cairo.c:
* matchbox/theme-engines/mb-wm-theme-xml.c:
* matchbox/theme-engines/mb-wm-theme-xml.h:
* matchbox/theme-engines/mb-wm-theme.c:
* matchbox/theme-engines/mb-wm-theme.h:
Manually generate mb-wm-config.h so as to avoid any clashes with
with any auto-generated application config.h.
Changed number of #ifdef's to #if's following the changes to
mb-wm-config.h.
|
|
* configure.ac, *.am, *.h:
Changes for building mbwm2 as a library (based on patch by Johan
Bilien):
Moved 'src' to 'matchbox'; fixed up headers to use #include <>.
Moved config.h to matchbox/mb-wm-config.h.
Added --enable-libmatchbox configure option, libmatchbox2.pc.in
|
|
* configure.ac:
Improved help for --enable-compositing-manager.
* src/theme-engines/mb-wm-theme.c:
(mb_wm_theme_new):
Try to load default theme when no theme is specified.
Turn compositing on by default.
* src/core/mb-window-manager.c:
(mb_wm_process_cmdline):
Added -help option for those uncomfortable with self-documenting
source code.
|
|
* configure.ac
* src/comp-mgr/Makefile.am:
* src/comp-mgr/mb-wm-comp-mgr-default.c:
* src/comp-mgr/mb-wm-comp-mgr-default.h:
* src/comp-mgr/mb-wm-comp-mgr.c:
* src/comp-mgr/mb-wm-comp-mgr.h:
* src/core/mb-window-manager.c:
* src/core/mb-window-manager.h:
* src/core/mb-wm-client.c:
* src/core/mb-wm-main-context.c:
* src/core/mb-wm-object-props.h:
* src/core/mb-wm-types.h:
* src/managers/maemo/maemo-window-manager.c:
* src/managers/simple/matchbox-window-manager-2-simple.c:
Changes to improve the flexibility of the compositor framework.
Framework for compositor effects.
Initial implementation of a clutter-based compositor.
* src/theme-engines/mb-wm-theme-xml.c:
* src/theme-engines/mb-wm-theme-xml.h:
* src/theme-engines/mb-wm-theme.c:
* src/theme-engines/mb-wm-theme.h:
Added support for effects.
* data/themes/Default/theme.xml:
Added sample effect for application clients.
|
|
* configure.ac:
* Makefile.am:
* doc/Makefile.am:
Added doc directory to the autofoo build tree.
|
|
* configure.ac:
Check for Xext.
* doc/MBWM2-Overview.xml:
Updated documentation.
* src/core/mb-wm-client-base.c:
(mb_wm_client_base_display_sync):
* src/core/mb-wm-client.c:
* src/core/mb-wm-client.h:
(mb_wm_client_init):
(mb_wm_client_is_argb32):
Added new mb_wm_client_is_argb32() function to simplify checking
for visual type.
* src/core/mb-wm-object-props.h:
* src/theme-engines/mb-wm-theme-xml.h:
* src/theme-engines/mb-wm-theme.c:
* src/theme-engines/mb-wm-theme.h:
* src/theme-engines/mb-wm-theme-cairo.c:
* src/theme-engines/mb-wm-theme-simple.c:
Implemented shaped windows in PNG themes.
* src/managers/maemo/theme/background.png:
* src/managers/maemo/theme/theme.xml:
Tweaked sample maemo theme to use shaped windows for dialogs and
notifications.
|
|
* configure.ac:
* src/managers/maemo/Makefile.am:
* src/managers/maemo/theme/background.png:
* src/managers/maemo/theme/theme.xml:
Added a simple mockup of maemo png-based theme to facilitate testing.
* src/client-types/mb-wm-client-dialog.c:
(mb_wm_client_dialog_init):
Correctly set up initial dialog geomtry.
* src/managers/maemo/maemo-toolbar.c:
Tweaked fallback geometry values.
* src/theme-engines/mb-wm-theme-png.c:
Fixed drawing decors that require scaling.
|
|
* configure.ac:
* src/core/mb-wm-main-context.c:
* src/core/mb-wm-main-context.h:
* src/core/mb-wm-types.h:
* src/core/mb-wm-client.c:
--enable-glib-main-loop: glib main loop support.
* src/core/mb-wm-util.h:
Fixed handling of inline keyword when using glib.
* src/theme-engines/mb-wm-theme-cairo.h:
* src/theme-engines/mb-wm-theme-simple.h:
* src/theme-engines/mb-wm-theme.c:
* src/theme-engines/mb-wm-theme.h:
* src/core/mb-wm-client-base.c:
* src/core/mb-wm-client-base.h:
* src/core/mb-wm-client.h:
* src/core/mb-wm-decor.c:
Added missing prototypes and includes.
* src/core/mb-window-manager.c:
(mb_wm_handle_config_request):
(mb_wm_handle_map_request):
* src/core/mb-wm-object.c:
(mb_wm_object_init_recurse:
Fixed missing return value.
|
|
* configure.ac:
* src/Makefile.am:
* src/core/Makefile.am:
* src/managers/maemo/Makefile.am:
* src/managers/simple/Makefile.am:
* src/comp-mgr/mb-wm-comp-mgr.c:
* src/comp-mgr/mb-wm-comp-mgr.h:
* src/core/mb-wm-types.h:
* src/core/mb-wm-client.c:
* src/core/mb-wm-client.h:
* src/core/mb-wm-main-context.c:
* src/core/mb-wm-object-props.h:
* src/core/mb-window-manager.c:
* src/core/mb-window-manager.h:
* src/core/mb-wm-atoms.c:
* src/core/mb-wm-client-base.c:
Added composite manager.
* src/theme-engines/mb-wm-theme-cairo.c:
* src/theme-engines/mb-wm-theme-simple.c:
* src/theme-engines/mb-wm-theme-xml.c:
* src/theme-engines/mb-wm-theme-xml.h:
* src/theme-engines/mb-wm-theme.c:
* src/theme-engines/mb-wm-theme.h:
* data/themes/Default/theme.xml:
Added clr-shadow and clr-lowlight properties to theme.
* src/core/mb-wm-client-window.c:
* src/core/mb-wm-client-window.h:
Handling of initial _NET_WM_STATE property.
* src/core/mb-wm-root-window.c:
Handling of _MB_COMMAND ClientMessage.
|
|
* configure.ac:
Added checks for Xfixes and XCursor.
* src/core/mb-window-manager.c:
* src/core/mb-window-manager.h:
(mb_wm_set_cursor):
New function.
|
|
* src/core/mb-wm-client.h:
* src/core/mb-wm-layout.c:
Added LayoutPrefFixedX, LayoutPrefFixedY to allow for themes to
specify client size (e.g., png theme may want to specify height of
a horizontal panel to tie with size of other elements on screen).
Added LayoutPrefOverlaps to indicate that client expects to
overlap with other clients rather than lay exclusive claim to its
allocated real-estate (e.g., maemo toolbar).
* src/core/mb-wm-types.h:
Changed MBGeom.width and MBGeom.height from unsigned to signed so
that negative values can be used to indicate that value is not set
when querying theme for client geometry.
* src/theme-engines/mb-wm-theme.c:
* src/theme-engines/mb-wm-theme.h:
(mb_wm_theme_get_client_geometry):
Function to query if theme requests specific geometry values for
particular client type.
* src/theme-engines/mb-wm-theme-xml.c
(mb_wm_xml_client_new):
Initialized x, y, width and height values to -1.
* configure.ac:
* src/managers/Makefile.am:
* src/managers/maemo/Makefile.am:
* src/managers/maemo/maemo-toolbar.c:
* src/managers/maemo/maemo-toolbar.h:
* src/managers/maemo/maemo-window-manager.c:
* src/managers/maemo/maemo-window-manager.h:
* src/managers/maemo/matchbox-window-manager-2-maemo.c:
Added maemo directory for maemo-specific WM.
|