Merge lp:~unity-team/compiz/trunk.stackattackhack into lp:~compiz/compiz/ubuntu

Proposed by Sam Spilsbury
Status: Superseded
Proposed branch: lp:~unity-team/compiz/trunk.stackattackhack
Merge into: lp:~compiz/compiz/ubuntu
Diff against target: 314740 lines (+312738/-0)
376 files modified
.gitignore (+1/-0)
AUTHORS (+29/-0)
CMakeLists.txt (+130/-0)
COPYING (+6/-0)
COPYING.GPL (+340/-0)
COPYING.LGPL (+510/-0)
COPYING.MIT (+21/-0)
ChangeLog (+1795/-0)
Doxyfile (+1514/-0)
INSTALL (+18/-0)
NEWS (+498/-0)
README (+8/-0)
RELEASING (+75/-0)
TODO (+22/-0)
cmake/CMakeLists.txt (+32/-0)
cmake/CompizBcop.cmake (+41/-0)
cmake/CompizCommon.cmake (+277/-0)
cmake/CompizDefaults.cmake (+15/-0)
cmake/CompizDefaults.cmake.in (+5/-0)
cmake/CompizGconf.cmake (+52/-0)
cmake/CompizPackage.cmake (+101/-0)
cmake/CompizPlugin.cmake (+440/-0)
cmake/FindCompiz.cmake (+94/-0)
cmake/all_plugins_in_folder_example-CMakeLists.txt (+10/-0)
cmake/base.cmake (+63/-0)
cmake/plugin_extensions/CompizGenGconf.cmake (+79/-0)
cmake/plugin_extensions/CompizGenInstallData.cmake (+25/-0)
cmake/plugin_extensions/CompizGenInstallImages.cmake (+25/-0)
compiz.pc.in (+12/-0)
config.h.core.in (+5/-0)
gtk/CMakeLists.txt (+93/-0)
gtk/config.h.gtk.in (+25/-0)
gtk/gnome/50-compiz-desktop-key.xml.in (+16/-0)
gtk/gnome/50-compiz-key.xml.in (+28/-0)
gtk/gnome/CMakeLists.txt (+84/-0)
gtk/gnome/compiz-window-manager.c (+505/-0)
gtk/gnome/compiz-window-manager.h (+39/-0)
gtk/gnome/compiz-wm.desktop.in (+17/-0)
gtk/gnome/compiz.desktop.in (+15/-0)
gtk/window-decorator/CMakeLists.txt (+81/-0)
gtk/window-decorator/TODO (+18/-0)
gtk/window-decorator/actionmenu.c (+134/-0)
gtk/window-decorator/blurprops.c (+89/-0)
gtk/window-decorator/cairo.c (+915/-0)
gtk/window-decorator/decorator.c (+1301/-0)
gtk/window-decorator/decorprops.c (+161/-0)
gtk/window-decorator/events.c (+1177/-0)
gtk/window-decorator/forcequit.c (+201/-0)
gtk/window-decorator/frames.c (+316/-0)
gtk/window-decorator/gdk.c (+106/-0)
gtk/window-decorator/gtk-window-decorator.c (+453/-0)
gtk/window-decorator/gtk-window-decorator.h (+1140/-0)
gtk/window-decorator/gwd.schemas.in (+81/-0)
gtk/window-decorator/metacity.c (+1634/-0)
gtk/window-decorator/settings.c (+546/-0)
gtk/window-decorator/style.c (+66/-0)
gtk/window-decorator/switcher.c (+515/-0)
gtk/window-decorator/tooltip.c (+205/-0)
gtk/window-decorator/util.c (+299/-0)
gtk/window-decorator/wnck.c (+709/-0)
images/CMakeLists.txt (+9/-0)
include/CMakeLists.txt (+11/-0)
include/compiz-common.h.in (+9/-0)
include/compiz.h (+98/-0)
include/core/CMakeLists.txt (+30/-0)
include/core/action.h (+178/-0)
include/core/atoms.h (+162/-0)
include/core/core.h (+88/-0)
include/core/countedlist.h (+114/-0)
include/core/icon.h (+53/-0)
include/core/match.h (+95/-0)
include/core/modifierhandler.h (+114/-0)
include/core/option.h (+243/-0)
include/core/output.h (+70/-0)
include/core/plugin.h (+332/-0)
include/core/pluginclasses.h (+70/-0)
include/core/pluginclasshandler.h (+167/-0)
include/core/point.h (+110/-0)
include/core/propertywriter.h (+54/-0)
include/core/rect.h (+227/-0)
include/core/region.h (+191/-0)
include/core/screen.h (+481/-0)
include/core/serialization.h (+158/-0)
include/core/session.h (+53/-0)
include/core/size.h (+69/-0)
include/core/timer.h (+116/-0)
include/core/window.h (+567/-0)
include/core/wrapsystem.h (+184/-0)
include/decoration.h (+432/-0)
kde/CMakeLists.txt (+1/-0)
kde/window-decorator-kde4/CMakeLists.txt (+76/-0)
kde/window-decorator-kde4/Makefile.am (+49/-0)
kde/window-decorator-kde4/decorator.cpp (+937/-0)
kde/window-decorator-kde4/decorator.h (+168/-0)
kde/window-decorator-kde4/kdecoration_plugins.cpp (+212/-0)
kde/window-decorator-kde4/kdecoration_plugins.h (+90/-0)
kde/window-decorator-kde4/main.cpp (+132/-0)
kde/window-decorator-kde4/options.cpp (+186/-0)
kde/window-decorator-kde4/options.h (+140/-0)
kde/window-decorator-kde4/org.kde.KWin.xml (+10/-0)
kde/window-decorator-kde4/paintredirector.cpp (+124/-0)
kde/window-decorator-kde4/paintredirector.h (+60/-0)
kde/window-decorator-kde4/switcher.cpp (+330/-0)
kde/window-decorator-kde4/switcher.h (+88/-0)
kde/window-decorator-kde4/utils.cpp (+249/-0)
kde/window-decorator-kde4/utils.h (+75/-0)
kde/window-decorator-kde4/window.cpp (+1940/-0)
kde/window-decorator-kde4/window.h (+276/-0)
legacy/compiz-cube.h (+230/-0)
legacy/compiz-cube.pc.in (+13/-0)
legacy/fs.xml.in (+13/-0)
legacy/fuse.cpp (+1442/-0)
legacy/gconf.cpp (+848/-0)
legacy/gconf.xml.in (+18/-0)
legacy/metadata.cpp (+1160/-0)
legacy/metadata.h (+106/-0)
legacy/minimize.cpp (+1059/-0)
legacy/minimize.xml.in (+43/-0)
legacy/privatemetadata.h (+40/-0)
legacy/video.cpp (+1329/-0)
legacy/video.xml.in (+14/-0)
libdecoration/CMakeLists.txt (+59/-0)
libdecoration/config.h.libdecoration.in (+4/-0)
libdecoration/decoration.c (+2987/-0)
libdecoration/libdecoration.pc.in (+12/-0)
metadata/CMakeLists.txt (+52/-0)
metadata/core.xml.in (+275/-0)
plugins/CMakeLists.txt (+10/-0)
plugins/annotate/CMakeLists.txt (+5/-0)
plugins/annotate/annotate.xml.in (+92/-0)
plugins/annotate/src/annotate.cpp (+980/-0)
plugins/annotate/src/annotate.h (+213/-0)
plugins/blur/CMakeLists.txt (+16/-0)
plugins/blur/blur.xml.in (+112/-0)
plugins/blur/src/blur.cpp (+2333/-0)
plugins/blur/src/blur.h (+241/-0)
plugins/clone/CMakeLists.txt (+5/-0)
plugins/clone/clone.xml.in (+22/-0)
plugins/clone/src/clone.cpp (+595/-0)
plugins/clone/src/clone.h (+147/-0)
plugins/commands/CMakeLists.txt (+5/-0)
plugins/commands/commands.xml.in (+385/-0)
plugins/commands/src/commands.cpp (+132/-0)
plugins/commands/src/commands.h (+50/-0)
plugins/compiztoolbox/CMakeLists.txt (+5/-0)
plugins/compiztoolbox/compiz-compiztoolbox.pc.in (+12/-0)
plugins/compiztoolbox/compiztoolbox.xml.in (+13/-0)
plugins/compiztoolbox/include/compiztoolbox/compiztoolbox.h (+168/-0)
plugins/compiztoolbox/src/compiztoolbox.cpp (+742/-0)
plugins/composite/CMakeLists.txt (+5/-0)
plugins/composite/compiz-composite.pc.in (+12/-0)
plugins/composite/composite.xml.in (+35/-0)
plugins/composite/include/composite/composite.h (+414/-0)
plugins/composite/src/composite.cpp (+103/-0)
plugins/composite/src/privates.h (+157/-0)
plugins/composite/src/screen.cpp (+997/-0)
plugins/composite/src/window.cpp (+640/-0)
plugins/copytex/CMakeLists.txt (+5/-0)
plugins/copytex/copytex.xml.in (+12/-0)
plugins/copytex/src/copytex.cpp (+341/-0)
plugins/copytex/src/copytex.h (+114/-0)
plugins/cube/CMakeLists.txt (+5/-0)
plugins/cube/compiz-cube.pc.in (+12/-0)
plugins/cube/cube.xml.in (+167/-0)
plugins/cube/include/cube/cube.h (+181/-0)
plugins/cube/src/cube.cpp (+1772/-0)
plugins/cube/src/privates.h (+183/-0)
plugins/dbus/CMakeLists.txt (+37/-0)
plugins/dbus/dbus.xml.in (+14/-0)
plugins/dbus/src/dbus.cpp (+2046/-0)
plugins/dbus/src/dbus.h (+185/-0)
plugins/decor/CMakeLists.txt (+14/-0)
plugins/decor/decor.xml.in (+75/-0)
plugins/decor/src/decor.cpp (+2160/-0)
plugins/decor/src/decor.h (+252/-0)
plugins/fade/CMakeLists.txt (+5/-0)
plugins/fade/fade.xml.in (+85/-0)
plugins/fade/src/fade.cpp (+398/-0)
plugins/fade/src/fade.h (+102/-0)
plugins/gnomecompat/CMakeLists.txt (+5/-0)
plugins/gnomecompat/gnomecompat.xml.in (+59/-0)
plugins/gnomecompat/src/gnomecompat.cpp (+131/-0)
plugins/gnomecompat/src/gnomecompat.h (+53/-0)
plugins/imgpng/CMakeLists.txt (+5/-0)
plugins/imgpng/imgpng.xml.in (+16/-0)
plugins/imgpng/src/imgpng.cpp (+358/-0)
plugins/imgpng/src/imgpng.h (+69/-0)
plugins/imgsvg/CMakeLists.txt (+5/-0)
plugins/imgsvg/imgsvg.xml.in (+24/-0)
plugins/imgsvg/src/imgsvg.cpp (+637/-0)
plugins/imgsvg/src/imgsvg.h (+136/-0)
plugins/ini/CMakeLists.txt (+5/-0)
plugins/ini/ini.xml.in (+13/-0)
plugins/ini/src/ini.cpp (+611/-0)
plugins/ini/src/ini.h (+106/-0)
plugins/inotify/CMakeLists.txt (+10/-0)
plugins/inotify/inotify.xml.in (+14/-0)
plugins/inotify/src/inotify.cpp (+169/-0)
plugins/inotify/src/inotify.h (+66/-0)
plugins/kde/CMakeLists.txt (+22/-0)
plugins/kde/kde.xml.in (+15/-0)
plugins/kde/src/dispatcher.cpp (+265/-0)
plugins/kde/src/dispatcher.h (+79/-0)
plugins/kde/src/kde.cpp (+68/-0)
plugins/kde/src/kde.h (+60/-0)
plugins/kde/src/socket.cpp (+67/-0)
plugins/kde/src/socket.h (+44/-0)
plugins/kde/src/timer.cpp (+69/-0)
plugins/kde/src/timer.h (+55/-0)
plugins/move/CMakeLists.txt (+5/-0)
plugins/move/move.xml.in (+48/-0)
plugins/move/src/move.cpp (+725/-0)
plugins/move/src/move.h (+129/-0)
plugins/obs/CMakeLists.txt (+5/-0)
plugins/obs/obs.xml.in (+161/-0)
plugins/obs/src/obs.cpp (+332/-0)
plugins/obs/src/obs.h (+102/-0)
plugins/opengl/CMakeLists.txt (+8/-0)
plugins/opengl/compiz-opengl.pc.in (+12/-0)
plugins/opengl/include/opengl/fragment.h (+124/-0)
plugins/opengl/include/opengl/matrix.h (+66/-0)
plugins/opengl/include/opengl/opengl.h (+590/-0)
plugins/opengl/include/opengl/texture.h (+223/-0)
plugins/opengl/include/opengl/vector.h (+127/-0)
plugins/opengl/opengl.xml.in (+48/-0)
plugins/opengl/src/fragment.cpp (+1145/-0)
plugins/opengl/src/matrix.cpp (+440/-0)
plugins/opengl/src/opengl.cpp (+101/-0)
plugins/opengl/src/paint.cpp (+1262/-0)
plugins/opengl/src/privatefragment.h (+54/-0)
plugins/opengl/src/privates.h (+172/-0)
plugins/opengl/src/privatetexture.h (+85/-0)
plugins/opengl/src/screen.cpp (+1235/-0)
plugins/opengl/src/texture.cpp (+616/-0)
plugins/opengl/src/vector.cpp (+276/-0)
plugins/opengl/src/window.cpp (+364/-0)
plugins/place/CMakeLists.txt (+5/-0)
plugins/place/place.xml.in (+168/-0)
plugins/place/src/place.cpp (+1713/-0)
plugins/place/src/place.h (+141/-0)
plugins/regex/CMakeLists.txt (+5/-0)
plugins/regex/regex.xml.in (+14/-0)
plugins/regex/src/regex.cpp (+328/-0)
plugins/regex/src/regexplugin.h (+79/-0)
plugins/resize/CMakeLists.txt (+5/-0)
plugins/resize/resize.xml.in (+193/-0)
plugins/resize/src/resize.cpp (+1824/-0)
plugins/resize/src/resize.h (+187/-0)
plugins/rotate/CMakeLists.txt (+5/-0)
plugins/rotate/rotate.xml.in (+278/-0)
plugins/rotate/src/rotate.cpp (+1086/-0)
plugins/rotate/src/rotate.h (+173/-0)
plugins/scale/CMakeLists.txt (+5/-0)
plugins/scale/compiz-scale.pc.in (+12/-0)
plugins/scale/include/scale/scale.h (+173/-0)
plugins/scale/scale.xml.in (+179/-0)
plugins/scale/src/privates.h (+187/-0)
plugins/scale/src/scale.cpp (+1809/-0)
plugins/screenshot/CMakeLists.txt (+5/-0)
plugins/screenshot/screenshot.xml.in (+35/-0)
plugins/screenshot/src/screenshot.cpp (+365/-0)
plugins/screenshot/src/screenshot.h (+83/-0)
plugins/switcher/CMakeLists.txt (+5/-0)
plugins/switcher/src/switcher.cpp (+1193/-0)
plugins/switcher/src/switcher.h (+180/-0)
plugins/switcher/switcher.xml.in (+170/-0)
plugins/water/CMakeLists.txt (+5/-0)
plugins/water/src/water.cpp (+1356/-0)
plugins/water/src/water.h (+173/-0)
plugins/water/water.xml.in (+64/-0)
plugins/wobbly/CMakeLists.txt (+5/-0)
plugins/wobbly/src/wobbly.cpp (+2380/-0)
plugins/wobbly/src/wobbly.h (+369/-0)
plugins/wobbly/wobbly.xml.in (+126/-0)
plugins/zoom/CMakeLists.txt (+5/-0)
plugins/zoom/src/zoom.cpp (+742/-0)
plugins/zoom/src/zoom.h (+112/-0)
plugins/zoom/zoom.xml.in (+66/-0)
po/CMakeLists.txt (+56/-0)
po/ChangeLog (+25/-0)
po/POTFILES.in (+28/-0)
po/af.po (+3123/-0)
po/ar.po (+3009/-0)
po/as.po (+2624/-0)
po/be.po (+2738/-0)
po/bg.po (+3776/-0)
po/bn.po (+3576/-0)
po/bn_IN.po (+3566/-0)
po/bs.po (+3251/-0)
po/ca.po (+4148/-0)
po/cs.po (+4706/-0)
po/cy.po (+3267/-0)
po/da.po (+4135/-0)
po/de.po (+4823/-0)
po/el.po (+3334/-0)
po/en_GB.po (+3713/-0)
po/en_US.po (+2766/-0)
po/es.po (+4751/-0)
po/et.po (+3726/-0)
po/eu.po (+3222/-0)
po/fa.po (+2634/-0)
po/fi.po (+4724/-0)
po/fr.po (+3378/-0)
po/gl.po (+3329/-0)
po/gu.po (+3345/-0)
po/he.po (+3550/-0)
po/hi.po (+3799/-0)
po/hr.po (+3652/-0)
po/hu.po (+3218/-0)
po/id.po (+3178/-0)
po/it.po (+3436/-0)
po/ja.po (+2974/-0)
po/ka.po (+2999/-0)
po/km.po (+3751/-0)
po/ko.po (+3177/-0)
po/lo.po (+2997/-0)
po/lt.po (+3754/-0)
po/mk.po (+3017/-0)
po/ml_IN.po (+3000/-0)
po/mr.po (+2780/-0)
po/nb.po (+3358/-0)
po/nl.po (+3457/-0)
po/or.po (+3439/-0)
po/pa.po (+3861/-0)
po/pl.po (+3753/-0)
po/pt.po (+3309/-0)
po/pt_BR.po (+3363/-0)
po/ro.po (+3628/-0)
po/ru.po (+3258/-0)
po/sk.po (+3295/-0)
po/sl.po (+3772/-0)
po/sr.po (+3965/-0)
po/sv.po (+3389/-0)
po/ta.po (+3068/-0)
po/tr.po (+3558/-0)
po/uk.po (+3501/-0)
po/vi.po (+3000/-0)
po/xh.po (+3115/-0)
po/zh_CN.po (+4367/-0)
po/zh_TW.po (+4366/-0)
po/zu.po (+3115/-0)
src/CMakeLists.txt (+63/-0)
src/action.cpp (+655/-0)
src/actions.cpp (+289/-0)
src/atoms.cpp (+324/-0)
src/event.cpp (+2027/-0)
src/eventsource.cpp (+93/-0)
src/icon.cpp (+46/-0)
src/main.cpp (+283/-0)
src/match.cpp (+744/-0)
src/modifierhandler.cpp (+207/-0)
src/option.cpp (+982/-0)
src/output.cpp (+90/-0)
src/plugin.cpp (+701/-0)
src/pluginclasses.cpp (+74/-0)
src/point.cpp (+100/-0)
src/privateaction.h (+55/-0)
src/privatematch.h (+88/-0)
src/privateoption.h (+97/-0)
src/privateregion.h (+41/-0)
src/privatescreen.h (+551/-0)
src/privatewindow.h (+327/-0)
src/propertywriter.cpp (+242/-0)
src/rect.cpp (+285/-0)
src/region.cpp (+425/-0)
src/screen.cpp (+4881/-0)
src/session.cpp (+429/-0)
src/size.cpp (+50/-0)
src/string.cpp (+88/-0)
src/timer.cpp (+272/-0)
src/window.cpp (+5875/-0)
src/windowgeometry.cpp (+228/-0)
xslt/CMakeLists.txt (+13/-0)
xslt/bcop.xslt (+1581/-0)
xslt/compiz_gconf_schemas.xslt (+410/-0)
xslt/default_plugins.xslt (+76/-0)
To merge this branch: bzr merge lp:~unity-team/compiz/trunk.stackattackhack
Reviewer Review Type Date Requested Status
compiz packagers Pending
Review via email: mp+55525@code.launchpad.net

This proposal has been superseded by a proposal from 2011-03-30.

Description of the change

Adds the timeout stack sync

To post a comment you must log in.

Unmerged revisions

2724. By Sam Spilsbury

add stack attack hack

2723. By David Barth

Helps with the weird ordering issues in alt-tab, but isn't a real fix (#175874)

2722. By David Barth

Fixes problems with gitk - Bug #743011: Windows that reparent away from the root before they are mapped can cause other windows to become invisible (and compiz to crash)

2721. By Jay Taoko

* Fix to avoid compiz detection by fglrx driver: bug #740298

2720. By David Barth

merging an upstream fix for invisible windows, to reconstitute the content of the beta-1 package

2719. By Sam Spilsbury

Revert "If an unexpected window gets focus (e.g. by a client calling XSetInputFocus directly), make sure that moving the input focus to a default window still works when that window is closed."

This reverts commit 1fb701594b78e950c031974d83c3566d1d648156.

There are some problems created by this commit, reverting for now until they
can be evauluated

Conflicts:

 src/event.cpp

2718. By soreau

Remove unused macro.

2717. By Sam Spilsbury

Set unmanaging before managed

2716. By Sam Spilsbury

Only set w->unmanaging if the window was actually managed

Forward port 84a27e08e8e2f6c3a70ee7966624411e0e330db4 to master

2715. By Sam Spilsbury

Merge https://github.com/robtaylor/compiz

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file '.gitignore'
2--- .gitignore 1970-01-01 00:00:00 +0000
3+++ .gitignore 2011-03-30 12:34:28 +0000
4@@ -0,0 +1,1 @@
5+po/compiz.pot
6
7=== added file 'AUTHORS'
8--- AUTHORS 1970-01-01 00:00:00 +0000
9+++ AUTHORS 2011-03-30 12:34:28 +0000
10@@ -0,0 +1,29 @@
11+compiz and the standard set of plugins are designed and written by
12+
13+David Reveman <davidr@novell.com>
14+
15+with additional functionality by
16+
17+Radek Doulik <rodo@novell.com> IO multiplexing
18+Mirco Müller <macslow@bangang.de> Skydome support in cube plugin
19+Søren Sandmann <sandmann@redhat.com> plane plugin
20+Dan Winship <danw@novell.com> gconf-dump plugin
21+Brian Paul <brian.paul@tungstengraphics.com> Matrix functions
22+
23+and other contributions by
24+
25+Mike Cook <mcook@novell.com>
26+Mike Dransfield <mike@blueroot.co.uk>
27+Diogo Ferreira <diogo@underdev.org>
28+gandalfn <gandalfn@club-internet.fr>
29+Guillaume <ixcemix@gmail.com>
30+Kristian Høgsberg <krh@redhat.com>
31+Dennis Kasprzyk <onestone@beryl-project.org>
32+Gerd Kohlberger <lowfi@chello.at>
33+Volker Krause <vkrause@kde.org>
34+moppsy <moppsy@comcast.net>
35+Jeremy C. Reed <reed@reedmedia.net>
36+Thierry Reding <thierry@gilfi.de>
37+Julian Sikorski <lordzanon@poczta.onet.pl>
38+Quinn Storm <livinglatexkali@gmail.com>
39+Erkin Bahceci <erkinbah@gmail.com>
40
41=== added file 'CMakeLists.txt'
42--- CMakeLists.txt 1970-01-01 00:00:00 +0000
43+++ CMakeLists.txt 2011-03-30 12:34:28 +0000
44@@ -0,0 +1,130 @@
45+project (compiz)
46+
47+set (CMAKE_MODULE_PATH_ORIG ${CMAKE_MODULE_PATH})
48+set (COMPIZ_CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
49+set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${COMPIZ_CMAKE_MODULE_PATH})
50+include (CompizCommon)
51+include (CompizPackage)
52+include (cmake/base.cmake)
53+include (CheckFunctionExists)
54+
55+
56+set (CMAKE_CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo;MinSizeRe" CACHE INTERNAL "" FORCE)
57+if (NOT CMAKE_BUILD_TYPE)
58+ set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build type (Debug/Release/RelWithDebInfo/MinSizeRe)" FORCE)
59+endif (NOT CMAKE_BUILD_TYPE)
60+
61+# compiz package version number
62+# An odd micro number indicates in-progress development.
63+# An even micro number indicates a released version.
64+set (COMPIZ_VERSION_MAJOR 0)
65+set (COMPIZ_VERSION_MINOR 9)
66+set (COMPIZ_VERSION_MICRO 4)
67+set (COMPIZ_VERSION_MACRO 0)
68+set (VERSION ${COMPIZ_VERSION_MAJOR}.${COMPIZ_VERSION_MINOR}.${COMPIZ_VERSION_MICRO}.${COMPIZ_VERSION_MACRO})
69+
70+set (DECOR_INTERFACE_VERSION 20110130)
71+
72+if (COMPIZ_PACKAGING_ENABLED)
73+ set (prefix ${CMAKE_INSTALL_PREFIX} CACHE PATH "prefix")
74+ set (exec_prefix ${CMAKE_INSTALL_PREFIX}/bin CACHE PATH "bindir")
75+ set (libdir ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "libdir")
76+ set (includedir ${CMAKE_INSTALL_PREFIX}/include CACHE PATH "includedir")
77+ set (datadir ${CMAKE_INSTALL_PREFIX}/share CACHE PATH "datadir")
78+else (COMPIZ_PACKAGING_ENABLED)
79+ set (prefix ${CMAKE_INSTALL_PREFIX} )
80+ set (exec_prefix ${CMAKE_INSTALL_PREFIX}/bin )
81+ set (libdir ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX})
82+ set (includedir ${CMAKE_INSTALL_PREFIX}/include )
83+ set (datadir ${CMAKE_INSTALL_PREFIX}/share )
84+endif (COMPIZ_PACKAGING_ENABLED)
85+
86+set (compiz_plugindir ${libdir}/compiz)
87+set (compiz_sharedir ${datadir}/compiz/)
88+set (compiz_metadatadir ${datadir}/compiz)
89+set (COMPIZ_I18N_DIR ${CMAKE_SOURCE_DIR}/po)
90+
91+set (ALL_LINGUAS af ar bg bn bn_IN bs ca cs cy da de el en_GB en_US es eu et fi fr gl gu he hi hr hu id it ja ka km ko lo lt mk mr nb nl or pa pl pt pt_BR ro ru sk sl sr sv ta tr uk vi xh zh_CN zh_TW zu)
92+set (GETTEXT_PACKAGE compiz)
93+
94+find_package (Boost 1.34.0 REQUIRED serialization)
95+
96+set (COMPIZ_REQUIRES
97+ x11
98+ xext
99+ xdamage
100+ xcomposite
101+ x11-xcb
102+ xrandr
103+ xinerama
104+ xext
105+ ice
106+ sm
107+ libxml-2.0
108+ libxslt
109+ glib-2.0
110+ gio-2.0
111+ glibmm-2.4
112+ "libstartup-notification-1.0 >= 0.7"
113+)
114+
115+set (DECORATION_REQUIRES xrender)
116+
117+compiz_pkg_check_modules (COMPIZ REQUIRED ${COMPIZ_REQUIRES})
118+compiz_pkg_check_modules (LIBDECORATION REQUIRED ${DECORATION_REQUIRES})
119+
120+list (APPEND COMPIZ_LIBRARIES ${Boost_LIBRARIES})
121+
122+include (CompizDefaults)
123+
124+set (COMPIZ_CFLAGS "${COMPIZ_CFLAGS} -I${Boost_INCLUDE_DIR}")
125+
126+set (_compiz_package_string "Compiz ${VERSION}")
127+set (_compiz_package "Compiz")
128+
129+compiz_configure_file (${compiz_SOURCE_DIR}/config.h.core.in ${compiz_BINARY_DIR}/generated/config.h)
130+
131+compiz_configure_file (
132+ ${CMAKE_SOURCE_DIR}/include/compiz-common.h.in
133+ ${CMAKE_BINARY_DIR}/generated/compiz-common.h
134+)
135+
136+install (
137+ FILES ${CMAKE_BINARY_DIR}/generated/compiz-common.h
138+ DESTINATION ${COMPIZ_DESTDIR}${includedir}/compiz
139+)
140+
141+compiz_configure_file (
142+ ${CMAKE_SOURCE_DIR}/compiz.pc.in
143+ ${CMAKE_BINARY_DIR}/compiz.pc
144+ COMPIZ_REQUIRES
145+ COMPIZ_CFLAGS
146+)
147+
148+install (
149+ FILES ${CMAKE_BINARY_DIR}/compiz.pc
150+ DESTINATION ${COMPIZ_DESTDIR}${libdir}/pkgconfig
151+)
152+
153+add_subdirectory (cmake)
154+add_subdirectory (include)
155+add_subdirectory (images)
156+add_subdirectory (libdecoration)
157+add_subdirectory (gtk)
158+add_subdirectory (kde)
159+add_subdirectory (po)
160+add_subdirectory (metadata)
161+add_subdirectory (src)
162+add_subdirectory (xslt)
163+add_subdirectory (plugins)
164+
165+compiz_ensure_linkage ()
166+compiz_package_generation ("Compiz")
167+compiz_add_uninstall ()
168+compiz_add_git_dist ()
169+
170+_print_configure_results ()
171+
172+_check_compiz_cmake_macro (${CMAKE_MODULE_PATH_ORIG})
173+
174+
175
176=== added file 'COPYING'
177--- COPYING 1970-01-01 00:00:00 +0000
178+++ COPYING 2011-03-30 12:34:28 +0000
179@@ -0,0 +1,6 @@
180+Most of the code is MIT licensed, some code is instead licensed
181+under the LGPL and some under the GPL. Each source code file
182+contain a header that describes the license for the code in that
183+specific file.
184+
185+For More information see COPYING.GPL, COPYING.LGPL and COPYING.MIT.
186
187=== added file 'COPYING.GPL'
188--- COPYING.GPL 1970-01-01 00:00:00 +0000
189+++ COPYING.GPL 2011-03-30 12:34:28 +0000
190@@ -0,0 +1,340 @@
191+ GNU GENERAL PUBLIC LICENSE
192+ Version 2, June 1991
193+
194+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
195+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
196+ Everyone is permitted to copy and distribute verbatim copies
197+ of this license document, but changing it is not allowed.
198+
199+ Preamble
200+
201+ The licenses for most software are designed to take away your
202+freedom to share and change it. By contrast, the GNU General Public
203+License is intended to guarantee your freedom to share and change free
204+software--to make sure the software is free for all its users. This
205+General Public License applies to most of the Free Software
206+Foundation's software and to any other program whose authors commit to
207+using it. (Some other Free Software Foundation software is covered by
208+the GNU Library General Public License instead.) You can apply it to
209+your programs, too.
210+
211+ When we speak of free software, we are referring to freedom, not
212+price. Our General Public Licenses are designed to make sure that you
213+have the freedom to distribute copies of free software (and charge for
214+this service if you wish), that you receive source code or can get it
215+if you want it, that you can change the software or use pieces of it
216+in new free programs; and that you know you can do these things.
217+
218+ To protect your rights, we need to make restrictions that forbid
219+anyone to deny you these rights or to ask you to surrender the rights.
220+These restrictions translate to certain responsibilities for you if you
221+distribute copies of the software, or if you modify it.
222+
223+ For example, if you distribute copies of such a program, whether
224+gratis or for a fee, you must give the recipients all the rights that
225+you have. You must make sure that they, too, receive or can get the
226+source code. And you must show them these terms so they know their
227+rights.
228+
229+ We protect your rights with two steps: (1) copyright the software, and
230+(2) offer you this license which gives you legal permission to copy,
231+distribute and/or modify the software.
232+
233+ Also, for each author's protection and ours, we want to make certain
234+that everyone understands that there is no warranty for this free
235+software. If the software is modified by someone else and passed on, we
236+want its recipients to know that what they have is not the original, so
237+that any problems introduced by others will not reflect on the original
238+authors' reputations.
239+
240+ Finally, any free program is threatened constantly by software
241+patents. We wish to avoid the danger that redistributors of a free
242+program will individually obtain patent licenses, in effect making the
243+program proprietary. To prevent this, we have made it clear that any
244+patent must be licensed for everyone's free use or not licensed at all.
245+
246+ The precise terms and conditions for copying, distribution and
247+modification follow.
248+
249
250+ GNU GENERAL PUBLIC LICENSE
251+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
252+
253+ 0. This License applies to any program or other work which contains
254+a notice placed by the copyright holder saying it may be distributed
255+under the terms of this General Public License. The "Program", below,
256+refers to any such program or work, and a "work based on the Program"
257+means either the Program or any derivative work under copyright law:
258+that is to say, a work containing the Program or a portion of it,
259+either verbatim or with modifications and/or translated into another
260+language. (Hereinafter, translation is included without limitation in
261+the term "modification".) Each licensee is addressed as "you".
262+
263+Activities other than copying, distribution and modification are not
264+covered by this License; they are outside its scope. The act of
265+running the Program is not restricted, and the output from the Program
266+is covered only if its contents constitute a work based on the
267+Program (independent of having been made by running the Program).
268+Whether that is true depends on what the Program does.
269+
270+ 1. You may copy and distribute verbatim copies of the Program's
271+source code as you receive it, in any medium, provided that you
272+conspicuously and appropriately publish on each copy an appropriate
273+copyright notice and disclaimer of warranty; keep intact all the
274+notices that refer to this License and to the absence of any warranty;
275+and give any other recipients of the Program a copy of this License
276+along with the Program.
277+
278+You may charge a fee for the physical act of transferring a copy, and
279+you may at your option offer warranty protection in exchange for a fee.
280+
281+ 2. You may modify your copy or copies of the Program or any portion
282+of it, thus forming a work based on the Program, and copy and
283+distribute such modifications or work under the terms of Section 1
284+above, provided that you also meet all of these conditions:
285+
286+ a) You must cause the modified files to carry prominent notices
287+ stating that you changed the files and the date of any change.
288+
289+ b) You must cause any work that you distribute or publish, that in
290+ whole or in part contains or is derived from the Program or any
291+ part thereof, to be licensed as a whole at no charge to all third
292+ parties under the terms of this License.
293+
294+ c) If the modified program normally reads commands interactively
295+ when run, you must cause it, when started running for such
296+ interactive use in the most ordinary way, to print or display an
297+ announcement including an appropriate copyright notice and a
298+ notice that there is no warranty (or else, saying that you provide
299+ a warranty) and that users may redistribute the program under
300+ these conditions, and telling the user how to view a copy of this
301+ License. (Exception: if the Program itself is interactive but
302+ does not normally print such an announcement, your work based on
303+ the Program is not required to print an announcement.)
304+
305
306+These requirements apply to the modified work as a whole. If
307+identifiable sections of that work are not derived from the Program,
308+and can be reasonably considered independent and separate works in
309+themselves, then this License, and its terms, do not apply to those
310+sections when you distribute them as separate works. But when you
311+distribute the same sections as part of a whole which is a work based
312+on the Program, the distribution of the whole must be on the terms of
313+this License, whose permissions for other licensees extend to the
314+entire whole, and thus to each and every part regardless of who wrote it.
315+
316+Thus, it is not the intent of this section to claim rights or contest
317+your rights to work written entirely by you; rather, the intent is to
318+exercise the right to control the distribution of derivative or
319+collective works based on the Program.
320+
321+In addition, mere aggregation of another work not based on the Program
322+with the Program (or with a work based on the Program) on a volume of
323+a storage or distribution medium does not bring the other work under
324+the scope of this License.
325+
326+ 3. You may copy and distribute the Program (or a work based on it,
327+under Section 2) in object code or executable form under the terms of
328+Sections 1 and 2 above provided that you also do one of the following:
329+
330+ a) Accompany it with the complete corresponding machine-readable
331+ source code, which must be distributed under the terms of Sections
332+ 1 and 2 above on a medium customarily used for software interchange; or,
333+
334+ b) Accompany it with a written offer, valid for at least three
335+ years, to give any third party, for a charge no more than your
336+ cost of physically performing source distribution, a complete
337+ machine-readable copy of the corresponding source code, to be
338+ distributed under the terms of Sections 1 and 2 above on a medium
339+ customarily used for software interchange; or,
340+
341+ c) Accompany it with the information you received as to the offer
342+ to distribute corresponding source code. (This alternative is
343+ allowed only for noncommercial distribution and only if you
344+ received the program in object code or executable form with such
345+ an offer, in accord with Subsection b above.)
346+
347+The source code for a work means the preferred form of the work for
348+making modifications to it. For an executable work, complete source
349+code means all the source code for all modules it contains, plus any
350+associated interface definition files, plus the scripts used to
351+control compilation and installation of the executable. However, as a
352+special exception, the source code distributed need not include
353+anything that is normally distributed (in either source or binary
354+form) with the major components (compiler, kernel, and so on) of the
355+operating system on which the executable runs, unless that component
356+itself accompanies the executable.
357+
358+If distribution of executable or object code is made by offering
359+access to copy from a designated place, then offering equivalent
360+access to copy the source code from the same place counts as
361+distribution of the source code, even though third parties are not
362+compelled to copy the source along with the object code.
363+
364
365+ 4. You may not copy, modify, sublicense, or distribute the Program
366+except as expressly provided under this License. Any attempt
367+otherwise to copy, modify, sublicense or distribute the Program is
368+void, and will automatically terminate your rights under this License.
369+However, parties who have received copies, or rights, from you under
370+this License will not have their licenses terminated so long as such
371+parties remain in full compliance.
372+
373+ 5. You are not required to accept this License, since you have not
374+signed it. However, nothing else grants you permission to modify or
375+distribute the Program or its derivative works. These actions are
376+prohibited by law if you do not accept this License. Therefore, by
377+modifying or distributing the Program (or any work based on the
378+Program), you indicate your acceptance of this License to do so, and
379+all its terms and conditions for copying, distributing or modifying
380+the Program or works based on it.
381+
382+ 6. Each time you redistribute the Program (or any work based on the
383+Program), the recipient automatically receives a license from the
384+original licensor to copy, distribute or modify the Program subject to
385+these terms and conditions. You may not impose any further
386+restrictions on the recipients' exercise of the rights granted herein.
387+You are not responsible for enforcing compliance by third parties to
388+this License.
389+
390+ 7. If, as a consequence of a court judgment or allegation of patent
391+infringement or for any other reason (not limited to patent issues),
392+conditions are imposed on you (whether by court order, agreement or
393+otherwise) that contradict the conditions of this License, they do not
394+excuse you from the conditions of this License. If you cannot
395+distribute so as to satisfy simultaneously your obligations under this
396+License and any other pertinent obligations, then as a consequence you
397+may not distribute the Program at all. For example, if a patent
398+license would not permit royalty-free redistribution of the Program by
399+all those who receive copies directly or indirectly through you, then
400+the only way you could satisfy both it and this License would be to
401+refrain entirely from distribution of the Program.
402+
403+If any portion of this section is held invalid or unenforceable under
404+any particular circumstance, the balance of the section is intended to
405+apply and the section as a whole is intended to apply in other
406+circumstances.
407+
408+It is not the purpose of this section to induce you to infringe any
409+patents or other property right claims or to contest validity of any
410+such claims; this section has the sole purpose of protecting the
411+integrity of the free software distribution system, which is
412+implemented by public license practices. Many people have made
413+generous contributions to the wide range of software distributed
414+through that system in reliance on consistent application of that
415+system; it is up to the author/donor to decide if he or she is willing
416+to distribute software through any other system and a licensee cannot
417+impose that choice.
418+
419+This section is intended to make thoroughly clear what is believed to
420+be a consequence of the rest of this License.
421+
422
423+ 8. If the distribution and/or use of the Program is restricted in
424+certain countries either by patents or by copyrighted interfaces, the
425+original copyright holder who places the Program under this License
426+may add an explicit geographical distribution limitation excluding
427+those countries, so that distribution is permitted only in or among
428+countries not thus excluded. In such case, this License incorporates
429+the limitation as if written in the body of this License.
430+
431+ 9. The Free Software Foundation may publish revised and/or new versions
432+of the General Public License from time to time. Such new versions will
433+be similar in spirit to the present version, but may differ in detail to
434+address new problems or concerns.
435+
436+Each version is given a distinguishing version number. If the Program
437+specifies a version number of this License which applies to it and "any
438+later version", you have the option of following the terms and conditions
439+either of that version or of any later version published by the Free
440+Software Foundation. If the Program does not specify a version number of
441+this License, you may choose any version ever published by the Free Software
442+Foundation.
443+
444+ 10. If you wish to incorporate parts of the Program into other free
445+programs whose distribution conditions are different, write to the author
446+to ask for permission. For software which is copyrighted by the Free
447+Software Foundation, write to the Free Software Foundation; we sometimes
448+make exceptions for this. Our decision will be guided by the two goals
449+of preserving the free status of all derivatives of our free software and
450+of promoting the sharing and reuse of software generally.
451+
452+ NO WARRANTY
453+
454+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
455+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
456+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
457+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
458+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
459+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
460+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
461+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
462+REPAIR OR CORRECTION.
463+
464+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
465+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
466+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
467+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
468+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
469+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
470+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
471+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
472+POSSIBILITY OF SUCH DAMAGES.
473+
474+ END OF TERMS AND CONDITIONS
475+
476
477+ How to Apply These Terms to Your New Programs
478+
479+ If you develop a new program, and you want it to be of the greatest
480+possible use to the public, the best way to achieve this is to make it
481+free software which everyone can redistribute and change under these terms.
482+
483+ To do so, attach the following notices to the program. It is safest
484+to attach them to the start of each source file to most effectively
485+convey the exclusion of warranty; and each file should have at least
486+the "copyright" line and a pointer to where the full notice is found.
487+
488+ <one line to give the program's name and a brief idea of what it does.>
489+ Copyright (C) <year> <name of author>
490+
491+ This program is free software; you can redistribute it and/or modify
492+ it under the terms of the GNU General Public License as published by
493+ the Free Software Foundation; either version 2 of the License, or
494+ (at your option) any later version.
495+
496+ This program is distributed in the hope that it will be useful,
497+ but WITHOUT ANY WARRANTY; without even the implied warranty of
498+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
499+ GNU General Public License for more details.
500+
501+ You should have received a copy of the GNU General Public License
502+ along with this program; if not, write to the Free Software
503+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
504+
505+
506+Also add information on how to contact you by electronic and paper mail.
507+
508+If the program is interactive, make it output a short notice like this
509+when it starts in an interactive mode:
510+
511+ Gnomovision version 69, Copyright (C) year name of author
512+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
513+ This is free software, and you are welcome to redistribute it
514+ under certain conditions; type `show c' for details.
515+
516+The hypothetical commands `show w' and `show c' should show the appropriate
517+parts of the General Public License. Of course, the commands you use may
518+be called something other than `show w' and `show c'; they could even be
519+mouse-clicks or menu items--whatever suits your program.
520+
521+You should also get your employer (if you work as a programmer) or your
522+school, if any, to sign a "copyright disclaimer" for the program, if
523+necessary. Here is a sample; alter the names:
524+
525+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
526+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
527+
528+ <signature of Ty Coon>, 1 April 1989
529+ Ty Coon, President of Vice
530+
531+This General Public License does not permit incorporating your program into
532+proprietary programs. If your program is a subroutine library, you may
533+consider it more useful to permit linking proprietary applications with the
534+library. If this is what you want to do, use the GNU Library General
535+Public License instead of this License.
536
537=== added file 'COPYING.LGPL'
538--- COPYING.LGPL 1970-01-01 00:00:00 +0000
539+++ COPYING.LGPL 2011-03-30 12:34:28 +0000
540@@ -0,0 +1,510 @@
541+
542+ GNU LESSER GENERAL PUBLIC LICENSE
543+ Version 2.1, February 1999
544+
545+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
546+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
547+ Everyone is permitted to copy and distribute verbatim copies
548+ of this license document, but changing it is not allowed.
549+
550+[This is the first released version of the Lesser GPL. It also counts
551+ as the successor of the GNU Library Public License, version 2, hence
552+ the version number 2.1.]
553+
554+ Preamble
555+
556+ The licenses for most software are designed to take away your
557+freedom to share and change it. By contrast, the GNU General Public
558+Licenses are intended to guarantee your freedom to share and change
559+free software--to make sure the software is free for all its users.
560+
561+ This license, the Lesser General Public License, applies to some
562+specially designated software packages--typically libraries--of the
563+Free Software Foundation and other authors who decide to use it. You
564+can use it too, but we suggest you first think carefully about whether
565+this license or the ordinary General Public License is the better
566+strategy to use in any particular case, based on the explanations
567+below.
568+
569+ When we speak of free software, we are referring to freedom of use,
570+not price. Our General Public Licenses are designed to make sure that
571+you have the freedom to distribute copies of free software (and charge
572+for this service if you wish); that you receive source code or can get
573+it if you want it; that you can change the software and use pieces of
574+it in new free programs; and that you are informed that you can do
575+these things.
576+
577+ To protect your rights, we need to make restrictions that forbid
578+distributors to deny you these rights or to ask you to surrender these
579+rights. These restrictions translate to certain responsibilities for
580+you if you distribute copies of the library or if you modify it.
581+
582+ For example, if you distribute copies of the library, whether gratis
583+or for a fee, you must give the recipients all the rights that we gave
584+you. You must make sure that they, too, receive or can get the source
585+code. If you link other code with the library, you must provide
586+complete object files to the recipients, so that they can relink them
587+with the library after making changes to the library and recompiling
588+it. And you must show them these terms so they know their rights.
589+
590+ We protect your rights with a two-step method: (1) we copyright the
591+library, and (2) we offer you this license, which gives you legal
592+permission to copy, distribute and/or modify the library.
593+
594+ To protect each distributor, we want to make it very clear that
595+there is no warranty for the free library. Also, if the library is
596+modified by someone else and passed on, the recipients should know
597+that what they have is not the original version, so that the original
598+author's reputation will not be affected by problems that might be
599+introduced by others.
600+
601
602+ Finally, software patents pose a constant threat to the existence of
603+any free program. We wish to make sure that a company cannot
604+effectively restrict the users of a free program by obtaining a
605+restrictive license from a patent holder. Therefore, we insist that
606+any patent license obtained for a version of the library must be
607+consistent with the full freedom of use specified in this license.
608+
609+ Most GNU software, including some libraries, is covered by the
610+ordinary GNU General Public License. This license, the GNU Lesser
611+General Public License, applies to certain designated libraries, and
612+is quite different from the ordinary General Public License. We use
613+this license for certain libraries in order to permit linking those
614+libraries into non-free programs.
615+
616+ When a program is linked with a library, whether statically or using
617+a shared library, the combination of the two is legally speaking a
618+combined work, a derivative of the original library. The ordinary
619+General Public License therefore permits such linking only if the
620+entire combination fits its criteria of freedom. The Lesser General
621+Public License permits more lax criteria for linking other code with
622+the library.
623+
624+ We call this license the "Lesser" General Public License because it
625+does Less to protect the user's freedom than the ordinary General
626+Public License. It also provides other free software developers Less
627+of an advantage over competing non-free programs. These disadvantages
628+are the reason we use the ordinary General Public License for many
629+libraries. However, the Lesser license provides advantages in certain
630+special circumstances.
631+
632+ For example, on rare occasions, there may be a special need to
633+encourage the widest possible use of a certain library, so that it
634+becomes a de-facto standard. To achieve this, non-free programs must
635+be allowed to use the library. A more frequent case is that a free
636+library does the same job as widely used non-free libraries. In this
637+case, there is little to gain by limiting the free library to free
638+software only, so we use the Lesser General Public License.
639+
640+ In other cases, permission to use a particular library in non-free
641+programs enables a greater number of people to use a large body of
642+free software. For example, permission to use the GNU C Library in
643+non-free programs enables many more people to use the whole GNU
644+operating system, as well as its variant, the GNU/Linux operating
645+system.
646+
647+ Although the Lesser General Public License is Less protective of the
648+users' freedom, it does ensure that the user of a program that is
649+linked with the Library has the freedom and the wherewithal to run
650+that program using a modified version of the Library.
651+
652+ The precise terms and conditions for copying, distribution and
653+modification follow. Pay close attention to the difference between a
654+"work based on the library" and a "work that uses the library". The
655+former contains code derived from the library, whereas the latter must
656+be combined with the library in order to run.
657+
658
659+ GNU LESSER GENERAL PUBLIC LICENSE
660+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
661+
662+ 0. This License Agreement applies to any software library or other
663+program which contains a notice placed by the copyright holder or
664+other authorized party saying it may be distributed under the terms of
665+this Lesser General Public License (also called "this License").
666+Each licensee is addressed as "you".
667+
668+ A "library" means a collection of software functions and/or data
669+prepared so as to be conveniently linked with application programs
670+(which use some of those functions and data) to form executables.
671+
672+ The "Library", below, refers to any such software library or work
673+which has been distributed under these terms. A "work based on the
674+Library" means either the Library or any derivative work under
675+copyright law: that is to say, a work containing the Library or a
676+portion of it, either verbatim or with modifications and/or translated
677+straightforwardly into another language. (Hereinafter, translation is
678+included without limitation in the term "modification".)
679+
680+ "Source code" for a work means the preferred form of the work for
681+making modifications to it. For a library, complete source code means
682+all the source code for all modules it contains, plus any associated
683+interface definition files, plus the scripts used to control
684+compilation and installation of the library.
685+
686+ Activities other than copying, distribution and modification are not
687+covered by this License; they are outside its scope. The act of
688+running a program using the Library is not restricted, and output from
689+such a program is covered only if its contents constitute a work based
690+on the Library (independent of the use of the Library in a tool for
691+writing it). Whether that is true depends on what the Library does
692+and what the program that uses the Library does.
693+
694+ 1. You may copy and distribute verbatim copies of the Library's
695+complete source code as you receive it, in any medium, provided that
696+you conspicuously and appropriately publish on each copy an
697+appropriate copyright notice and disclaimer of warranty; keep intact
698+all the notices that refer to this License and to the absence of any
699+warranty; and distribute a copy of this License along with the
700+Library.
701+
702+ You may charge a fee for the physical act of transferring a copy,
703+and you may at your option offer warranty protection in exchange for a
704+fee.
705+
706
707+ 2. You may modify your copy or copies of the Library or any portion
708+of it, thus forming a work based on the Library, and copy and
709+distribute such modifications or work under the terms of Section 1
710+above, provided that you also meet all of these conditions:
711+
712+ a) The modified work must itself be a software library.
713+
714+ b) You must cause the files modified to carry prominent notices
715+ stating that you changed the files and the date of any change.
716+
717+ c) You must cause the whole of the work to be licensed at no
718+ charge to all third parties under the terms of this License.
719+
720+ d) If a facility in the modified Library refers to a function or a
721+ table of data to be supplied by an application program that uses
722+ the facility, other than as an argument passed when the facility
723+ is invoked, then you must make a good faith effort to ensure that,
724+ in the event an application does not supply such function or
725+ table, the facility still operates, and performs whatever part of
726+ its purpose remains meaningful.
727+
728+ (For example, a function in a library to compute square roots has
729+ a purpose that is entirely well-defined independent of the
730+ application. Therefore, Subsection 2d requires that any
731+ application-supplied function or table used by this function must
732+ be optional: if the application does not supply it, the square
733+ root function must still compute square roots.)
734+
735+These requirements apply to the modified work as a whole. If
736+identifiable sections of that work are not derived from the Library,
737+and can be reasonably considered independent and separate works in
738+themselves, then this License, and its terms, do not apply to those
739+sections when you distribute them as separate works. But when you
740+distribute the same sections as part of a whole which is a work based
741+on the Library, the distribution of the whole must be on the terms of
742+this License, whose permissions for other licensees extend to the
743+entire whole, and thus to each and every part regardless of who wrote
744+it.
745+
746+Thus, it is not the intent of this section to claim rights or contest
747+your rights to work written entirely by you; rather, the intent is to
748+exercise the right to control the distribution of derivative or
749+collective works based on the Library.
750+
751+In addition, mere aggregation of another work not based on the Library
752+with the Library (or with a work based on the Library) on a volume of
753+a storage or distribution medium does not bring the other work under
754+the scope of this License.
755+
756+ 3. You may opt to apply the terms of the ordinary GNU General Public
757+License instead of this License to a given copy of the Library. To do
758+this, you must alter all the notices that refer to this License, so
759+that they refer to the ordinary GNU General Public License, version 2,
760+instead of to this License. (If a newer version than version 2 of the
761+ordinary GNU General Public License has appeared, then you can specify
762+that version instead if you wish.) Do not make any other change in
763+these notices.
764+
765
766+ Once this change is made in a given copy, it is irreversible for
767+that copy, so the ordinary GNU General Public License applies to all
768+subsequent copies and derivative works made from that copy.
769+
770+ This option is useful when you wish to copy part of the code of
771+the Library into a program that is not a library.
772+
773+ 4. You may copy and distribute the Library (or a portion or
774+derivative of it, under Section 2) in object code or executable form
775+under the terms of Sections 1 and 2 above provided that you accompany
776+it with the complete corresponding machine-readable source code, which
777+must be distributed under the terms of Sections 1 and 2 above on a
778+medium customarily used for software interchange.
779+
780+ If distribution of object code is made by offering access to copy
781+from a designated place, then offering equivalent access to copy the
782+source code from the same place satisfies the requirement to
783+distribute the source code, even though third parties are not
784+compelled to copy the source along with the object code.
785+
786+ 5. A program that contains no derivative of any portion of the
787+Library, but is designed to work with the Library by being compiled or
788+linked with it, is called a "work that uses the Library". Such a
789+work, in isolation, is not a derivative work of the Library, and
790+therefore falls outside the scope of this License.
791+
792+ However, linking a "work that uses the Library" with the Library
793+creates an executable that is a derivative of the Library (because it
794+contains portions of the Library), rather than a "work that uses the
795+library". The executable is therefore covered by this License.
796+Section 6 states terms for distribution of such executables.
797+
798+ When a "work that uses the Library" uses material from a header file
799+that is part of the Library, the object code for the work may be a
800+derivative work of the Library even though the source code is not.
801+Whether this is true is especially significant if the work can be
802+linked without the Library, or if the work is itself a library. The
803+threshold for this to be true is not precisely defined by law.
804+
805+ If such an object file uses only numerical parameters, data
806+structure layouts and accessors, and small macros and small inline
807+functions (ten lines or less in length), then the use of the object
808+file is unrestricted, regardless of whether it is legally a derivative
809+work. (Executables containing this object code plus portions of the
810+Library will still fall under Section 6.)
811+
812+ Otherwise, if the work is a derivative of the Library, you may
813+distribute the object code for the work under the terms of Section 6.
814+Any executables containing that work also fall under Section 6,
815+whether or not they are linked directly with the Library itself.
816+
817
818+ 6. As an exception to the Sections above, you may also combine or
819+link a "work that uses the Library" with the Library to produce a
820+work containing portions of the Library, and distribute that work
821+under terms of your choice, provided that the terms permit
822+modification of the work for the customer's own use and reverse
823+engineering for debugging such modifications.
824+
825+ You must give prominent notice with each copy of the work that the
826+Library is used in it and that the Library and its use are covered by
827+this License. You must supply a copy of this License. If the work
828+during execution displays copyright notices, you must include the
829+copyright notice for the Library among them, as well as a reference
830+directing the user to the copy of this License. Also, you must do one
831+of these things:
832+
833+ a) Accompany the work with the complete corresponding
834+ machine-readable source code for the Library including whatever
835+ changes were used in the work (which must be distributed under
836+ Sections 1 and 2 above); and, if the work is an executable linked
837+ with the Library, with the complete machine-readable "work that
838+ uses the Library", as object code and/or source code, so that the
839+ user can modify the Library and then relink to produce a modified
840+ executable containing the modified Library. (It is understood
841+ that the user who changes the contents of definitions files in the
842+ Library will not necessarily be able to recompile the application
843+ to use the modified definitions.)
844+
845+ b) Use a suitable shared library mechanism for linking with the
846+ Library. A suitable mechanism is one that (1) uses at run time a
847+ copy of the library already present on the user's computer system,
848+ rather than copying library functions into the executable, and (2)
849+ will operate properly with a modified version of the library, if
850+ the user installs one, as long as the modified version is
851+ interface-compatible with the version that the work was made with.
852+
853+ c) Accompany the work with a written offer, valid for at least
854+ three years, to give the same user the materials specified in
855+ Subsection 6a, above, for a charge no more than the cost of
856+ performing this distribution.
857+
858+ d) If distribution of the work is made by offering access to copy
859+ from a designated place, offer equivalent access to copy the above
860+ specified materials from the same place.
861+
862+ e) Verify that the user has already received a copy of these
863+ materials or that you have already sent this user a copy.
864+
865+ For an executable, the required form of the "work that uses the
866+Library" must include any data and utility programs needed for
867+reproducing the executable from it. However, as a special exception,
868+the materials to be distributed need not include anything that is
869+normally distributed (in either source or binary form) with the major
870+components (compiler, kernel, and so on) of the operating system on
871+which the executable runs, unless that component itself accompanies
872+the executable.
873+
874+ It may happen that this requirement contradicts the license
875+restrictions of other proprietary libraries that do not normally
876+accompany the operating system. Such a contradiction means you cannot
877+use both them and the Library together in an executable that you
878+distribute.
879+
880
881+ 7. You may place library facilities that are a work based on the
882+Library side-by-side in a single library together with other library
883+facilities not covered by this License, and distribute such a combined
884+library, provided that the separate distribution of the work based on
885+the Library and of the other library facilities is otherwise
886+permitted, and provided that you do these two things:
887+
888+ a) Accompany the combined library with a copy of the same work
889+ based on the Library, uncombined with any other library
890+ facilities. This must be distributed under the terms of the
891+ Sections above.
892+
893+ b) Give prominent notice with the combined library of the fact
894+ that part of it is a work based on the Library, and explaining
895+ where to find the accompanying uncombined form of the same work.
896+
897+ 8. You may not copy, modify, sublicense, link with, or distribute
898+the Library except as expressly provided under this License. Any
899+attempt otherwise to copy, modify, sublicense, link with, or
900+distribute the Library is void, and will automatically terminate your
901+rights under this License. However, parties who have received copies,
902+or rights, from you under this License will not have their licenses
903+terminated so long as such parties remain in full compliance.
904+
905+ 9. You are not required to accept this License, since you have not
906+signed it. However, nothing else grants you permission to modify or
907+distribute the Library or its derivative works. These actions are
908+prohibited by law if you do not accept this License. Therefore, by
909+modifying or distributing the Library (or any work based on the
910+Library), you indicate your acceptance of this License to do so, and
911+all its terms and conditions for copying, distributing or modifying
912+the Library or works based on it.
913+
914+ 10. Each time you redistribute the Library (or any work based on the
915+Library), the recipient automatically receives a license from the
916+original licensor to copy, distribute, link with or modify the Library
917+subject to these terms and conditions. You may not impose any further
918+restrictions on the recipients' exercise of the rights granted herein.
919+You are not responsible for enforcing compliance by third parties with
920+this License.
921+
922
923+ 11. If, as a consequence of a court judgment or allegation of patent
924+infringement or for any other reason (not limited to patent issues),
925+conditions are imposed on you (whether by court order, agreement or
926+otherwise) that contradict the conditions of this License, they do not
927+excuse you from the conditions of this License. If you cannot
928+distribute so as to satisfy simultaneously your obligations under this
929+License and any other pertinent obligations, then as a consequence you
930+may not distribute the Library at all. For example, if a patent
931+license would not permit royalty-free redistribution of the Library by
932+all those who receive copies directly or indirectly through you, then
933+the only way you could satisfy both it and this License would be to
934+refrain entirely from distribution of the Library.
935+
936+If any portion of this section is held invalid or unenforceable under
937+any particular circumstance, the balance of the section is intended to
938+apply, and the section as a whole is intended to apply in other
939+circumstances.
940+
941+It is not the purpose of this section to induce you to infringe any
942+patents or other property right claims or to contest validity of any
943+such claims; this section has the sole purpose of protecting the
944+integrity of the free software distribution system which is
945+implemented by public license practices. Many people have made
946+generous contributions to the wide range of software distributed
947+through that system in reliance on consistent application of that
948+system; it is up to the author/donor to decide if he or she is willing
949+to distribute software through any other system and a licensee cannot
950+impose that choice.
951+
952+This section is intended to make thoroughly clear what is believed to
953+be a consequence of the rest of this License.
954+
955+ 12. If the distribution and/or use of the Library is restricted in
956+certain countries either by patents or by copyrighted interfaces, the
957+original copyright holder who places the Library under this License
958+may add an explicit geographical distribution limitation excluding those
959+countries, so that distribution is permitted only in or among
960+countries not thus excluded. In such case, this License incorporates
961+the limitation as if written in the body of this License.
962+
963+ 13. The Free Software Foundation may publish revised and/or new
964+versions of the Lesser General Public License from time to time.
965+Such new versions will be similar in spirit to the present version,
966+but may differ in detail to address new problems or concerns.
967+
968+Each version is given a distinguishing version number. If the Library
969+specifies a version number of this License which applies to it and
970+"any later version", you have the option of following the terms and
971+conditions either of that version or of any later version published by
972+the Free Software Foundation. If the Library does not specify a
973+license version number, you may choose any version ever published by
974+the Free Software Foundation.
975+
976
977+ 14. If you wish to incorporate parts of the Library into other free
978+programs whose distribution conditions are incompatible with these,
979+write to the author to ask for permission. For software which is
980+copyrighted by the Free Software Foundation, write to the Free
981+Software Foundation; we sometimes make exceptions for this. Our
982+decision will be guided by the two goals of preserving the free status
983+of all derivatives of our free software and of promoting the sharing
984+and reuse of software generally.
985+
986+ NO WARRANTY
987+
988+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
989+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
990+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
991+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
992+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
993+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
994+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
995+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
996+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
997+
998+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
999+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
1000+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
1001+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
1002+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
1003+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
1004+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
1005+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
1006+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
1007+DAMAGES.
1008+
1009+ END OF TERMS AND CONDITIONS
1010+
1011
1012+ How to Apply These Terms to Your New Libraries
1013+
1014+ If you develop a new library, and you want it to be of the greatest
1015+possible use to the public, we recommend making it free software that
1016+everyone can redistribute and change. You can do so by permitting
1017+redistribution under these terms (or, alternatively, under the terms
1018+of the ordinary General Public License).
1019+
1020+ To apply these terms, attach the following notices to the library.
1021+It is safest to attach them to the start of each source file to most
1022+effectively convey the exclusion of warranty; and each file should
1023+have at least the "copyright" line and a pointer to where the full
1024+notice is found.
1025+
1026+
1027+ <one line to give the library's name and a brief idea of what it does.>
1028+ Copyright (C) <year> <name of author>
1029+
1030+ This library is free software; you can redistribute it and/or
1031+ modify it under the terms of the GNU Lesser General Public
1032+ License as published by the Free Software Foundation; either
1033+ version 2.1 of the License, or (at your option) any later version.
1034+
1035+ This library is distributed in the hope that it will be useful,
1036+ but WITHOUT ANY WARRANTY; without even the implied warranty of
1037+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1038+ Lesser General Public License for more details.
1039+
1040+ You should have received a copy of the GNU Lesser General Public
1041+ License along with this library; if not, write to the Free Software
1042+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
1043+
1044+Also add information on how to contact you by electronic and paper mail.
1045+
1046+You should also get your employer (if you work as a programmer) or
1047+your school, if any, to sign a "copyright disclaimer" for the library,
1048+if necessary. Here is a sample; alter the names:
1049+
1050+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
1051+ library `Frob' (a library for tweaking knobs) written by James
1052+ Random Hacker.
1053+
1054+ <signature of Ty Coon>, 1 April 1990
1055+ Ty Coon, President of Vice
1056+
1057+That's all there is to it!
1058+
1059+
1060
1061=== added file 'COPYING.MIT'
1062--- COPYING.MIT 1970-01-01 00:00:00 +0000
1063+++ COPYING.MIT 2011-03-30 12:34:28 +0000
1064@@ -0,0 +1,21 @@
1065+
1066+Copyright © 2005 Novell, Inc.
1067+
1068+Permission to use, copy, modify, distribute, and sell this software
1069+and its documentation for any purpose is hereby granted without
1070+fee, provided that the above copyright notice appear in all copies
1071+and that both that copyright notice and this permission notice
1072+appear in supporting documentation, and that the name of
1073+Novell, Inc. not be used in advertising or publicity pertaining to
1074+distribution of the software without specific, written prior permission.
1075+Novell, Inc. makes no representations about the suitability of this
1076+software for any purpose. It is provided "as is" without express or
1077+implied warranty.
1078+
1079+NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
1080+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
1081+NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
1082+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
1083+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
1084+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
1085+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1086\ No newline at end of file
1087
1088=== added file 'ChangeLog'
1089--- ChangeLog 1970-01-01 00:00:00 +0000
1090+++ ChangeLog 2011-03-30 12:34:28 +0000
1091@@ -0,0 +1,1795 @@
1092+2006-06-21 David Reveman <davidr@novell.com>
1093+
1094+ * src/window.c: Add updateTransientHint to protect against circular
1095+ transient dependencies. (bnc 186825)
1096+
1097+2006-06-20 David Reveman <davidr@novell.com>
1098+
1099+ * src/window.c (addWindowSizeChanges): Constrain window
1100+ dimensions if they are too large.
1101+
1102+ * gnome/window-decorator/gnome-window-decorator.c (get_mwm_prop):
1103+ Trap X errors.
1104+
1105+2006-06-20 Dan Winship <danw@novell.com>
1106+
1107+ * configure.ac (ALL_LINGUAS): Add pl
1108+
1109+2006-06-16 David Reveman <davidr@novell.com>
1110+
1111+ * plugins/compiz.schemas.in.in: Regen.
1112+
1113+ * plugins/switcher.c:
1114+ * plugins/scale.c: Add modal dialogs and fullscreen windows
1115+ to default window types. (bnc 185749)
1116+
1117+ * gnome/window-decorator/gnome-window-decorator.c: Track motif
1118+ WM hints and disable decorations when application wants no
1119+ titlebar. (bnc 185852)
1120+
1121+2006-06-15 David Reveman <davidr@novell.com>
1122+
1123+ * plugins/cube.c (cubePaintTransformedScreen): Remove
1124+ PAINT_SCREEN_CLEAR_MASK from mask.
1125+
1126+ * plugins/switcher.c (switchPaintScreen): Add PAINT_SCREEN_CLEAR_MASK
1127+ when zooming. (bnc 183676)
1128+
1129+ * src/paint.c (paintTransformedScreen): Clear color buffer if
1130+ PAINT_SCREEN_CLEAR_MASK is present.
1131+
1132+ * include/compiz.h: Add PAINT_SCREEN_CLEAR_MASK.
1133+
1134+ * gnome/window-decorator/gnome-window-decorator.c: Add DM selection
1135+ support and --repalce option so it's possible to replace an
1136+ existing window decorator in the same way as it's possible to replace
1137+ a window manager. (bnc 185296)
1138+ (close_button_event):
1139+ (max_button_event):
1140+ (min_button_event): De-highlight on NotifyGrab. (bnc 185293)
1141+
1142+2006-06-12 Dan Winship <danw@novell.com>
1143+
1144+ * plugins/cube.c:
1145+ * plugins/switcher.c: Mark cube as needing to load before switcher
1146+ rather than marking switcher as requiring cube. bnc #183676.
1147+
1148+ * plugins/gconf-dump.c (dumpPluginOptions): Output load_before and
1149+ requires for all plugins, even if the list is empty, to ensure
1150+ that an empty value in a new release overrides a non-empty value
1151+ in an older release.
1152+
1153+ * plugins/compiz.schemas.in.in: regen
1154+
1155+2006-06-09 Dan Winship <danw@novell.com>
1156+
1157+ * configure.ac: add translations
1158+
1159+2006-06-09 David Reveman <davidr@novell.com>
1160+
1161+ * plugins/move.c (moveHandleMotionEvent): Handle shaded windows
1162+ better.
1163+
1164+ * src/window.c (maximizeWindow):
1165+ * src/event.c (handleEvent): Allow windows to be both maximized
1166+ and shaded.
1167+
1168+ * src/window.c: Update addWindowSizeChanges so it can be used by
1169+ moveResizeWindow.
1170+ (updateWindowAttributes): Add missing sendSyncRequest call.
1171+ (addWindowSizeChanges): Make maximized window placement a bit better.
1172+ (moveResizeWindow): Adjust window geometry using
1173+ addWindowSizeChanges. (bnc 183121)
1174+
1175+ * src/window.c: Only allow shading on windows with top decoration.
1176+
1177+ * src/event.c (handleEvent): Check that shade action is allowed
1178+ before shading a window.
1179+
1180+2006-06-08 David Reveman <davidr@novell.com>
1181+
1182+ * plugins/decoration.c (decorInitWindow):
1183+ * plugins/minimize.c (minInitWindow):
1184+ * src/window.c (addWindow): Handle initially shaded windows
1185+ correctly.
1186+
1187+ * plugins/switcher.c (switchTerminate): Only use hideWindow
1188+ if switcher window is managed and mapped.
1189+ (switchInitiate): Only use showWindow if switcher window is
1190+ hidden. (bnc 182519)
1191+
1192+ * plugins/minimize.c (minHandleEvent): Make sure we adjust the window
1193+ region correctly when it's being unshaded.
1194+
1195+2006-06-07 David Reveman <davidr@novell.com>
1196+
1197+ * configure.ac: Bump version to 0.0.13.
1198+
1199+ * plugins/compiz.schemas.in.in: Regen.
1200+
1201+ * src/window.c: Add window shading support.
1202+
1203+ * src/screen.c:
1204+ * src/paint.c:
1205+ * src/event.c: Adjust for window shading support.
1206+ (handleEvent): Handle RESTACK client messages with sibling None
1207+ correctly.
1208+
1209+ * src/event.c:
1210+ * src/display.c: Add toggle window shade binding.
1211+
1212+ * plugins/minimize.c: Add window shading animation support.
1213+
1214+ * plugins/fade.c:
1215+ * plugins/place.c:
1216+ * plugins/resize.c:
1217+ * plugins/scale.c:
1218+ * plugins/switcher.c:
1219+ * plugins/decoration.c: Adjust for window shading support.
1220+
1221+ * include/compiz.h: Add window shading support.
1222+
1223+ * gnome/window-decorator/gnome-window-decorator.c: lower_window ->
1224+ restack_window and change it so it can be used for both
1225+ raising and lowering a window.
1226+ Add support for double_click_titlebar setting.
1227+ (title_event): Don't activate window on titlebar click only
1228+ raise it. Use double_click_action to determine what should be
1229+ done when titlebar is double clicked.
1230+ (update_event_windows): Remove vertical resize event windows
1231+ when top level window is shaded.
1232+ (window_state_changed): Update event windows when window state
1233+ changed.
1234+
1235+ * gnome/window-decorator/gnome-window-decorator.c:
1236+ * gnome/compiz-window-manager.c: Add support for shade double click
1237+ setting.
1238+
1239+ * plugins/compiz.schemas.in.in: Regen.
1240+
1241+ * plugins/cube.c (cubePaintTransformedScreen):
1242+ * plugins/wobbly.c (wobblyDrawWindowGeometry):
1243+ * plugins/switcher.c (switchPaintWindow):
1244+ * src/paint.c (drawWindowGeometry): Disable client-side texture
1245+ coordinate arrays that are not used. (bnc #182430)
1246+
1247+ * plugins/compiz.schemas.in.in:
1248+ * plugins/resize.c:
1249+ * plugins/move.c: Add initiate_keyboard binding which is more
1250+ appropriate for key-binding as it moves the cursor to middle of
1251+ window.
1252+
1253+2006-06-06 David Reveman <davidr@novell.com>
1254+
1255+ * plugins/switcher.c: Track thumbnail damage correctly.
1256+ (switchPaintScreen): Only intercept paintScreen when screen is
1257+ grabbed or we're zooming and ss->translate > 0.001.
1258+ (switchPaintScreen): Paint switcher window correctly when we're
1259+ not zooming.
1260+ Add cube as a dependency to make sure background is rendered
1261+ correctly when zooming.
1262+ (bnc #181909)
1263+
1264+ * src/window.c (moveResizeWindow, ensureWindowVisibility):
1265+ Don't make sure fullscreen windows are in workarea.
1266+ (fdo #7115) (bnc #181907)
1267+
1268+ * src/event.c (handleEvent): Track XA_WM_CLASS property changes.
1269+
1270+ * src/window.c:
1271+ * include/compiz.h: remove updateWindowClass and update
1272+ updateWindowClassHints.
1273+
1274+2006-06-02 David Reveman <davidr@novell.com>
1275+
1276+ * configure.ac: Bump version to 0.0.12.
1277+
1278+ * src/event.c (handleEvent): Fix typo.
1279+
1280+ * gnome/window-decorator/gnome-window-decorator.c:
1281+ Hide tooltips on NotifyGrab. (bnc #180692)
1282+
1283+2006-06-01 Dan Winship <danw@novell.com>
1284+
1285+ * src/event.c (handleEvent): If we receive a _NET_SHOWING_DESKTOP
1286+ request with no window set, set the flag on all screens. (Fixes
1287+ the KDE "show desktop" applet.) Also, don't allow a client to
1288+ change its _NET_WM_DESKTOP.
1289+
1290+ * src/window.c (addWindow): Set _NET_WM_DESKTOP on all windows to
1291+ 0; KDE's pager and tasklist require this to be set. (bnc 178320)
1292+
1293+2006-06-01 David Reveman <davidr@novell.com>
1294+
1295+ * include/compiz.h:
1296+ * src/window.c: Add updateWindowClass.
1297+
1298+2006-05-31 David Reveman <davidr@novell.com>
1299+
1300+ * include/compiz.h:
1301+ * src/screen.c:
1302+ * src/display.c: Add hide_skip_taskbar_windows option. (bnc 180055)
1303+
1304+ * include/compiz.h:
1305+ * src/window.c: Add getStartupId.
1306+
1307+ * src/screen.c: Save initial viewport when startup notification
1308+ is received. Fix implementation of applyStartupProperties.
1309+ (bnc 180224)
1310+
1311+ * src/event.c (handleEvent): Handle startup ID property changes.
1312+
1313+ * plugins/place.c: Adjust work area to initial viewport.
1314+
1315+ * plugins/cube.c (cubePaintTransformedScreen): Disable skydome
1316+ animation while cube is unfolded. (bnc 179833)
1317+
1318+ * plugins/switcher.c (switchPaintWindow): Make sure selected window is
1319+ not clipped incorrectly when some window is transformed. (bnc 179828)
1320+
1321+ * plugins/move.c (moveHandleEvent): Initialize xRoot and yRoot.
1322+ (bnc 179902)
1323+
1324+ * src/Makefile.am (INCLUDES): Add @GL_CFLAGS@. (Eric Work)
1325+
1326+2006-05-30 Dan Winship <danw@novell.com>
1327+
1328+ * configure.ac: Check libwnck for wnck_window_has_name (new in
1329+ HEAD).
1330+
1331+ * gnome/window-decorator/gnome-window-decorator.c
1332+ (wnck_window_get_real_name): #if HAVE_WNCK_WINDOW_HAS_NAME,
1333+ redefine wnck_window_get_name to return NULL if the window only
1334+ has a fallback name. bnc 173059.
1335+
1336+ * src/event.c (handleEvent): call moveInputFocusToOtherWindow()
1337+ before destroyWindow() when processing a DestroyNotify, or else
1338+ the input focus can get stranded.
1339+
1340+2006-05-26 David Reveman <davidr@novell.com>
1341+
1342+ * plugins/compiz.schemas.in.in: Regen.
1343+
1344+ * plugins/scale.c (SCALE_SLOPPY_FOCUS_DEFAULT): TRUE.
1345+
1346+ * plugins/decoration.c (decorWindowUpdate): No drop-shadow decoration
1347+ on windows with below state.
1348+
1349+ * src/window.c (recalcWindowType): Treat dock windows with below state
1350+ as normal windows. (bnc #178316)
1351+
1352+ * plugins/cube.c (cubePaintTransformedScreen): Avoid optimized case
1353+ when more than 4 cube sides.
1354+
1355+2006-05-25 David Reveman <davidr@novell.com>
1356+
1357+ * plugins/compiz.schemas.in.in: Regen.
1358+
1359+ * src/window.c (moveResizeWindow): Don't adjust position for NorthWest
1360+ gravity. (bnc 178765) (fdo #6992)
1361+
1362+ * plugins/compiz.schemas.in.in:
1363+ * include/compiz.h:
1364+ * src/event.c (handleEvent):
1365+ * src/display.c: Add maximize_window_horizontally,
1366+ maximize_window_vertically, toggle_window_maximized,
1367+ toggle_window_maximized_horizontally,
1368+ toggle_window_maximized_vertically.
1369+
1370+ * src/event.c (handleEvent): Track changes to maximizeWindow function.
1371+
1372+ * plugins/move.c (moveHandleMotionEvent): Make sure we have a saved
1373+ width before we use it. Track changes to maximizeWindow function.
1374+
1375+ * plugins/wobbly.c (wobblyHandleEvent): Handle the case where
1376+ window is not both vertically and horizontally maximized better.
1377+
1378+ * include/compiz.h: Add MAXIMIZE_STATE macro.
1379+
1380+ * include/compiz.h:
1381+ * src/window.c: Remove unmaximizeWindow and make maximizeWindow
1382+ take a state mask so it can be used for both maximizing and
1383+ unmaximizing.
1384+
1385+ * plugins/switcher.c: Don't add windows that appear after the switcher
1386+ is popped up. (bnc 178350)
1387+ (switchWindowRemove): Don't create a new list. Instead remove
1388+ window from the existing list and make sure we're positioned
1389+ correctly.
1390+
1391+2006-05-24 David Reveman <davidr@novell.com>
1392+
1393+ * plugins/scale.c (scaleMoveFocusWindow): When moving to window on
1394+ left, make sure the window we're moving to is completely left of
1395+ currently selected window. And same thing when moving to window on
1396+ right, top, bottom.
1397+ (layoutThumbs): Set slot->x2 and slot->y2 correctly. (bnc 178216)
1398+
1399+2006-05-23 David Reveman <davidr@novell.com>
1400+
1401+ * plugins/water.c: GL_UNSIGNED_INT_8_8_8_8_REV as pixel data type on
1402+ MSBFirst machines.
1403+
1404+ * src/texture.c: Include config.h before compiz.h so that
1405+ IMAGE_BYTE_ORDER is defined correctly. (bnc 178171)
1406+
1407+ * include/compiz.h: Define LSBFirst, MSBFirst, IMAGE_BYTE_ORDER,
1408+ BITMAP_BIT_ORDER. (bnc 178171)
1409+
1410+2006-05-23 Dan Winship <danw@novell.com>
1411+
1412+ * plugins/switcher.c (switchToWindow): use ss->windows here as
1413+ well so that multiple activeNum==0 windows don't get skipped.
1414+ (switchTerminate): Remove the screen grab right away so that
1415+ keystrokes don't get dropped. bnc 177650
1416+ (switchPreparePaintScreen, switchPaintScreen,
1417+ switchDonePaintScreen): update for that
1418+
1419+2006-05-22 Dan Winship <danw@novell.com>
1420+
1421+ * src/window.c (moveResizeWindow): deal with both vertical and
1422+ horizontal struts; but not when moving a dock window
1423+
1424+ * plugins/switcher.c (switchHandleEvent): Check init_all binding
1425+ before init, so you can bind "<Alt>" to init_all and so end up
1426+ with "<Alt>Tab" being init_all rather than init (but with no way
1427+ to get "init"...). bnc 173376
1428+
1429+2006-05-21 David Reveman <davidr@novell.com>
1430+
1431+ * src/display.c (addDisplay): Select for button events on root windows.
1432+
1433+ * configure.ac: Bump version to 0.0.11.
1434+
1435+ * gnome/window-decorator/gnome-window-decorator.c: Fix shadow
1436+ performance by separating the convolution filter into one vertical and
1437+ one horizontal pass.
1438+
1439+ * src/window.c (mapWindow): Give sync request on map another try, it
1440+ seems to be working now.
1441+
1442+ * src/window.c (addWindow): Allow XGetWindowAttributes to fail.
1443+ (bnc 173416).
1444+
1445+ * src/window.c (addWindow): Initialize managed to false. Set managed
1446+ to true if widows is viewable.
1447+
1448+ * src/event.c (handleEvent): Set managed to false when window
1449+ transitions to withdrawn state.
1450+ (handleEvent): Set managed to true when we get MapRequest.
1451+ (handleEvent): Constrain configure request if window is managed.
1452+
1453+ * include/compiz.h: Add "managed" variable that is true while
1454+ windows is managed.
1455+
1456+2006-05-19 David Reveman <davidr@novell.com>
1457+
1458+ * plugins/switcher.c (ICON_SIZE): Allow use of larger window icons.
1459+
1460+2006-05-18 Dan Winship <danw@novell.com>
1461+
1462+ * plugins/wobbly.c (WOBBLY_FOCUS_DEFAULT): Set this to "None" to
1463+ match wobblyInitScreen() so that it actually works right.
1464+
1465+ * plugins/compiz.schemas.in.in: regen
1466+
1467+2006-05-18 Dan Winship <danw@novell.com>
1468+
1469+ * src/session.c (saveYourselfCallback): if we have a
1470+ RestartCommand registered with the session manager, update the
1471+ --sm-client-id in it to match the id we were assigned. bnc 176746
1472+
1473+ * src/main.c (main, usage): remove unused --sm-save-file arg and
1474+ fix documentation of --sm-client-id.
1475+
1476+2006-05-17 David Reveman <davidr@novell.com>
1477+
1478+ * plugins/compiz.schemas.in.in: Regen (Overlay Icon).
1479+
1480+ * plugins/switcher.c (switchPaintScreen): Don't remove switcher
1481+ from window list, just temporarily mark it as destroyed. This fixes
1482+ issue with switcher decorations disappearing when some window is
1483+ unmapped.
1484+
1485+ * src/screen.c (updateDefaultIcon): width and height should be
1486+ unsigned.
1487+
1488+ * gnome/window-decorator/gnome-window-decorator.c: Add minimal
1489+ option that can be used to run g-w-d with drop-shadows but without full
1490+ window decorations.
1491+
1492+ * plugins/minimize.c (minHandleEvent): Restore window position
1493+ when transitioning to withdrawn state.
1494+
1495+ * plugins/scale.c: Remove next_window binding and fix so that arrow
1496+ keys can be used to select window.
1497+ Focus new window when pointer enter window decorations and sloppy focus
1498+ is used.
1499+ Remove scaleSelectWindow.
1500+
1501+ * plugins/scale.c: Icon support (Nat Friedman).
1502+
1503+2006-05-17 Dan Winship <danw@novell.com>
1504+
1505+ * src/display.c (handleSelectionClear, eventLoop): don't process
1506+ exit-on-selection-clear until the event queue is empty, or else
1507+ MapRequest and ConfigureRequest events could get lost. bnc 175558
1508+
1509+2006-05-14 David Reveman <davidr@novell.com>
1510+
1511+ * src/event.c (handleEvent): mapNum might be 0 if we found the window
1512+ unmapped when trying to bind it to a texture.
1513+
1514+2006-05-12 David Reveman <davidr@novell.com>
1515+
1516+ * src/screen.c (enterShowDesktopMode): Only go into show desktop mode
1517+ when some window is being hidden.
1518+
1519+ * src/event.c (handleWindowDamageRect): Make sure placed is set to true
1520+ when no plugin is doing placement.
1521+ (handleEvent): Don't set WM_STATE on override redirect windows.
1522+
1523+ * plugins/switcher.c (isSwitchWin): Don't show windows that ask not to
1524+ be in tasklists.
1525+
1526+ * plugins/rotate.c (rotateHandleEvent): Only adjust viewport if window
1527+ has been placed.
1528+
1529+ * plugins/minimize.c (minHandleEvent): Reset everything when going
1530+ into withdrawn state.
1531+
1532+ * src/window.c (moveResizeWindow): Handle west and north gravity
1533+ correctly.
1534+
1535+2006-05-11 David Reveman <davidr@novell.com>
1536+
1537+ * src/display.c (addDisplay):
1538+ * src/screen.c (addScreen): Move server grab to addDisplay to make
1539+ sure that no windows are created between XSelectInput and XQueryTree
1540+ as that would result in them being added two times.
1541+
1542+ * src/window.c (moveResizeWindow): Fix typo, CWY should be CWX.
1543+ (moveResizeWindow): Constrain Y position so that window titlebar is
1544+ visible.
1545+ (restoreWindowGeometry): Fix issue with going from maximized state
1546+ to non-maximized state without changing the window size.
1547+
1548+ * gnome/window-decorator/gnome-window-decorator.c
1549+ (max_window_name_width): Make sure title text fit in titlebar.
1550+
1551+2006-05-11 Dan Winship <danw@novell.com>
1552+
1553+ * plugins/gconf-compiz-utils.c (gconfStringToBinding): Treat "" as
1554+ meaning "disabled"
1555+
1556+2006-05-11 David Reveman <davidr@novell.com>
1557+
1558+ * gnome/window-decorator/gnome-window-decorator.c (action_menu_map):
1559+ Don't show window action menu on desktop and dock windows.
1560+
1561+ * src/event.c (handleEvent): Allow click on window decorations
1562+ to trigger window action menu.
1563+
1564+ * plugins/place.c (placeWindow): Place fullscreen and maximized
1565+ windows correctly.
1566+ (placeWindow): Only clip dialog position to screen if parent is
1567+ visible in current viewport.
1568+
1569+2006-05-09 David Reveman <davidr@novell.com>
1570+
1571+ * plugins/switcher.c (switchPaintThumb): Rearrange code so we handle
1572+ the case when bindWindow fails.
1573+
1574+ * src/paint.c (paintWindow): Bail out if window is not mapped.
1575+
1576+ * src/window.c (bindWindow): Make sure window is mapped when
1577+ getting the window pixmap. (bnc 173248)
1578+
1579+ * plugins/compiz.schemas.in.in: Regen.
1580+
1581+ * plugins/cube.c (CUBE_MIPMAP_DEFAULT): Enable by default as
1582+ performance seem to be OK now when new mipmaps are only generated
1583+ when necessary.
1584+
1585+ * src/texture.c (enableTexture): Don't generate new mipmaps
1586+ every time the texture is used.
1587+
1588+2006-05-08 David Reveman <davidr@novell.com>
1589+
1590+ * plugins/switcher.c: Allow switcher to be initiated with prev
1591+ bindings. (Quinn Storm)
1592+
1593+2006-05-07 David Reveman <davidr@novell.com>
1594+
1595+ * plugins/compiz.schemas.in.in: Regen.
1596+
1597+ * plugins/switcher.c: Add icon support, minimized windows support
1598+ and allow switcher to show up when only one selectable window exist.
1599+
1600+ * images/Makefile.am: Add default icon image.
1601+
1602+ * include/compiz.h:
1603+ * src/texture.c:
1604+ * src/event.c (handleEvent):
1605+ * src/screen.c:
1606+ * src/display.c:
1607+ * src/window.c: Add WM icon interface.
1608+
1609+ * gnome/window-decorator/gnome-window-decorator.c: Compute
1610+ switcher title text width correctly.
1611+
1612+ * src/event.c (handleEvent): Insert windows correctly when
1613+ reparenting.
1614+
1615+2006-05-07 Dan Winship <danw@novell.com>
1616+
1617+ * configure.ac: Add --with-scale-corner option and make
1618+ compiz.schemas reflect it; the best corner to use depends on where
1619+ the panels are and what's on them, so distros will want to
1620+ override this to match their default panel layout.
1621+
1622+ * src/event.c (eventMatches): Fix the the "water plugin gets
1623+ mysteriously activated when activating some other keybinding" bug.
1624+
1625+2006-05-05 Dan Winship <danw@novell.com>
1626+
1627+ * Makefile.am:
1628+ * autogen.sh:
1629+ * configure.ac: require intltool for option-description
1630+ translation
1631+
1632+ * plugins/Makefile.am: translate compiz.schemas.in into
1633+ compiz.schemas
1634+
1635+2006-05-05 Dan Winship <danw@novell.com>
1636+
1637+ * src/display.c (COMMAND_OPTION): Put numbers into the shortDescs
1638+ of the command and run_command options
1639+
1640+ * plugins/wobbly.c (WOBBLY_SNAP_MODIFIERS_DEFAULT): Use Shift
1641+ rather than Control, for consistency with Metacity, and to remove
1642+ the ambiguity about whether Ctrl+Alt+Button1 should be "grab cube"
1643+ or "move with snapping". (bnc 169402)
1644+
1645+ * plugins/compiz.schemas: regen
1646+
1647+2006-05-05 David Reveman <davidr@novell.com>
1648+
1649+ * plugins/compiz.schemas: Regen.
1650+
1651+ * gnome/window-decorator/gnome-window-decorator.c: Forward
1652+ metacity's bell settings to compiz.
1653+
1654+ * plugins/water.c:
1655+ * plugins/wobbly.c:
1656+ * plugins/fade.c: Add visual bell.
1657+
1658+ * include/compiz.h:
1659+ * src/display.c: Add audible bell option.
1660+
1661+2006-05-04 David Reveman <davidr@novell.com>
1662+
1663+ * src/window.c (getModalTransient): Avoid infinite recursion when more
1664+ than one group transient got modal state.
1665+
1666+2006-05-03 David Reveman <davidr@novell.com>
1667+
1668+ * plugins/move.c:
1669+ * plugins/resize.c (resizeHandleMotionEvent): Don't constrain the
1670+ cursor.
1671+
1672+ * plugins/rotate.c (rotateHandleEvent): Use defaultViewportForWindow
1673+ to figure out which viewport we should move to. (bnc 152677)
1674+
1675+ * src/window.c (addWindowSizeChanges): Offset x coordinate with
1676+ default viewport coordinate. (bnc 171465)
1677+ (updateWindowAttributes): Always add windows size changes. (bnc 171465)
1678+
1679+ * include/compiz.h:
1680+ * src/window.c (defaultViewportForWindow): Add defaultViewportForWindow
1681+ function that computes the default viewport for a window.
1682+
1683+2006-05-02 David Reveman <davidr@novell.com>
1684+
1685+ * plugins/cube.c (cubePaintTransformedScreen): Bump up size a bit more
1686+ to make sure the cube unfolds completely.
1687+
1688+ * src/event.c (handleEvent): Not constraints should be applied to
1689+ ConfigureRequests for withdrawn windows. (bnc 171143)
1690+
1691+ * src/window.c (syncWindowPosition): We never need to send synthetic
1692+ ConfigureNotify events as we're not reparenting windows.
1693+
1694+2006-05-02 Dan Winship <danw@novell.com>
1695+
1696+ * plugins/gconf-dump.c: rewrite to make compiz.schema regeneration
1697+ a little easier, and to make it possible to generate schema files
1698+ for third-party plugins. Include plugin descriptions and
1699+ dependency information in the schema.
1700+
1701+ * plugins/Makefile.am: add a rule to generate compiz.schemas
1702+
1703+ * plugins/compiz.schemas: regen
1704+
1705+ * plugins/cube.c, plugins/decoration.c, plugins/fade.c,
1706+ plugins/gconf.c, plugins/minimize.c, plugins/wobbly.c:
1707+ s/expose/scale/ in dependencies
1708+
1709+2006-05-02 David Reveman <davidr@novell.com>
1710+
1711+ * include/compiz.h:
1712+ * configure.ac: Don't require glproto, include necessary enums in
1713+ compiz.h.
1714+
1715+ * src/texture.c:
1716+ * include/compiz.h: Update to latest EXT_tfp spec. Requires an
1717+ X server that has also been updated.
1718+
1719+ * configure.ac: Require glproto >= 1.4.7 with final EXT_tfp tokens.
1720+
1721+2006-05-01 David Reveman <davidr@novell.com>
1722+
1723+ * src/window.c (circulateWindow):
1724+ * src/event.c (handleEvent): Use getTopWindow instead of
1725+ reverseWindows->id as reverseWindows might be a destroyed window.
1726+
1727+ * include/compiz.h:
1728+ * src/screen.c: Add getTopWindow function that returns top window.
1729+
1730+2006-04-30 David Reveman <davidr@novell.com>
1731+
1732+ * plugins/compiz.schemas: Regen.
1733+
1734+ * plugins/decoration.c (decorWindowUpdate): Don't decorate fullscreen
1735+ windows.
1736+
1737+ * plugins/cube.c: Add initial support for unfolding the cube. Default
1738+ key-binding is <Control><Alt>Down.
1739+
1740+ * plugins/rotate.c (rotateHandleEvent): Fix absolute rotation.
1741+
1742+ * plugins/switcher.c: Fix so that bring-to-front doesn't change
1743+ the actual stacking order.
1744+ Add zoom option, enable it by default so it gets some testing.
1745+ Made bring-to-front enabled by default as it makes zoom functionality
1746+ more useful.
1747+ Made switcher window always rendered above all other windows and
1748+ not affected by screen transformations.
1749+
1750+ * src/event.c (handleEvent): Send configure notify before mapping
1751+ window if PPosition or USPosition is set.
1752+
1753+ * src/screen.c (insertWindowIntoScreen): Sibling above doesn't have to
1754+ be mapped. This change seem to currently by causing the
1755+ stacking order of some override-redirect windows to be incorrect.
1756+ Don't insert window when aboveId doesn't match an existing window.
1757+ (removeScreenGrab): ifdef DEBUG around abort.
1758+
1759+ * src/event.c (handleEvent): Only update active window property
1760+ when it's changing.
1761+
1762+ * src/window.c (sendConfigureNotify): Make sure the latest
1763+ window attributes are put in the ConfigureNotify.
1764+ (moveResizeWindow): Only send sync request if window is mapped.
1765+
1766+ * plugins/rotate.c: Add support for edge-flipping when using
1767+ drag-and-drop. Remove edge_flip and flip_move options and add
1768+ edge_flip_pointer, edge_flip_move, edge_flip_dnd.
1769+
1770+ * src/screen.c:
1771+ * src/display.c:
1772+ * include/compiz.h:
1773+ Make screen edges drag-and-drop aware.
1774+
1775+ * plugins/zoom.c:
1776+ * plugins/water.c:
1777+ * plugins/switcher.c:
1778+ * plugins/scale.c:
1779+ * plugins/rotate.c:
1780+ * plugins/resize.c:
1781+ * plugins/move.c:
1782+ * src/scren.c:
1783+ * include/compiz.h:
1784+ Variable argument list to otherScreenGrabExist, last argument must
1785+ be 0.
1786+
1787+ * src/event.c:
1788+ * src/display.c:
1789+ * include/compiz.h: Add raise-on-click option.
1790+
1791+ * gnome/window-decorator/gnome-window-decorator.c (title_event):
1792+ Activate window when clicking titlebar.
1793+
1794+2006-04-28 David Reveman <davidr@novell.com>
1795+
1796+ * gnome/window-decorator/gnome-window-decorator.c: Back out last change
1797+ as it clearly didn't fix anything. XFixed being defined as "int"
1798+ is perfectly fine of course. libXrender is currently broken on 64bit.
1799+ See Bug #6774 for a fix.
1800+ (XRenderSetPictureFilter_wrapper): Add workaround for 64bit
1801+ issue in libXrender. (Dan Winship)
1802+
1803+ * src/event.c (handleEvent):
1804+ * src/display.c:
1805+ * include/compiz.h:
1806+ Add show desktop binding. (Martin Szulecki)
1807+
1808+ * plugins/rotate.c: Reset timout handle correctly.
1809+
1810+ * plugins/move.c:
1811+ * plugins/resize.c:
1812+ * plugins/rotate.c:
1813+ * plugins/scale.c:
1814+ * plugins/switcher.c:
1815+ * plugins/water.c:
1816+ * plugins/zoom.c: Track screen grab changes changes.
1817+
1818+ * src/screen.c:
1819+ * include/compiz.h: Associate all screen grabs with a name. Add
1820+ otherScreenGrabExist function which can be used to check if screen
1821+ is grabbed by other plugins.
1822+
1823+2006-04-28 Dan Winship <danw@novell.com>
1824+
1825+ * src/event.c (eventMatches): new method that replaces EV_KEY and
1826+ EV_BUTTON. Tests if an event matches a binding, being more precise
1827+ about modifier state than EV_KEY and EV_BUTTON were.
1828+ (eventTerminates): Tests if an event is "the opposite" of a
1829+ binding. (Eg, button or modifier key release.) Replaces
1830+ CompReleaseMask and "terminate" bindings.
1831+ (handleEvent): Use eventMatches
1832+
1833+ * src/screen.c (addPassiveKeyGrab, removePassiveKeyGrab,
1834+ updatePassiveKeyGrabs): When passed a keybinding containing just
1835+ modifiers, grab/ungrab every keypress event that would result in
1836+ that modifier state (eg, both left and right modifier keys, and
1837+ allow them to be pressed in any order).
1838+
1839+ * src/display.c: Remove CompPressMask from default bindings.
1840+ (eventLoop): don't add virtual modifiers to event state.
1841+ (updateModifierMappings): store the XModifierKeymap for later
1842+ use.
1843+
1844+ * plugins/*.c: Use eventMatches and eventTerminates. Remove
1845+ CompPressMask and "terminate" bindings (except from scale, which
1846+ is different from the others).
1847+
1848+ * plugins/switcher.c: Make initiate_all be just the modifier key
1849+ used in addition to the initiate binding ("<Control>"). Remove
1850+ next_window since it doesn't make a lot of sense to have it be
1851+ different from initiate_all, and make prev_window be just a
1852+ modifier key as well. ("<Shift>").
1853+ (SwitchScreen): add extra options to store the fully-composed
1854+ initiate_all, prev, and prev_all bindings.
1855+ (switchScreenInitOptions, switchSetScreenOption): Generate and
1856+ regenerate initiate_all, prev, and prev_all bindings as needed.
1857+ (switchHandleEvent): update
1858+
1859+ * plugins/gconf-compiz-utils.c: Remove "<Release>" handling.
1860+
1861+ * plugins/compiz.schemas: regen, dropping the terminate bindings
1862+ and updating a few others.
1863+
1864+ * include/compiz.h: remove CompPressMask, CompReleaseMask,
1865+ EV_BUTTON, and EV_KEY. Add eventMatches, eventTerminates, and
1866+ keycodeToModifiers. Add modMap field to CompDisplay.
1867+
1868+2006-04-28 David Reveman <davidr@novell.com>
1869+
1870+ * plugins/water.c: Handle enter/leave notify events.
1871+
1872+ * plugins/decoration.c (decorInitWindow): Check for window specific
1873+ decoration on both mapped and unmapped windows so that initially
1874+ minimized windows get properly decorated. (Dan Winship)
1875+
1876+ * gnome/window-decorator/gnome-window-decorator.c: Use xfixed_16_16_t
1877+ instead of XFixed to avoid 64bit issue with XFixed being defined as
1878+ "int".
1879+
1880+ * configure.ac: xrender 0.8.4 is good enough.
1881+
1882+2006-04-27 Dan Winship <danw@novell.com>
1883+
1884+ * plugins/rotate.c (rotateHandleEvent): for the
1885+ rotate-to-specific-face keys, rotate counterclockwise when that's
1886+ faster. (bnc 169427)
1887+
1888+ * plugins/scale.c (scaleHandleEvent): Make the corners toggle
1889+ scale mode rather than only activating it. (bnc 169408)
1890+
1891+2006-04-27 David Reveman <davidr@novell.com>
1892+
1893+ * configure.ac: Bump version to 0.0.10.
1894+
1895+ * plugins/decoration.c: Remove debug variable.
1896+
1897+ * src/window.c (addWindow): Check if window is minimized. (Dan Winship)
1898+
1899+ * plugins/compiz.schemas: Regen (snapoff and maximize_effect).
1900+
1901+ * plugins/wobbly.c: Add maximize effect.
1902+
1903+ * plugins/zoom.c:
1904+ * plugins/water.c:
1905+ * plugins/rotate.c:
1906+ * plugins/resize.c:
1907+ * plugins/move.c:
1908+ * src/event.c:
1909+ * src/screen.c:
1910+ * src/display.c:
1911+ * include/compiz.h: Add proper warp pointer interface and update
1912+ all plugins to use it.
1913+
1914+2006-04-26 Dan Winship <danw@novell.com>
1915+
1916+ * src/event.c (handleEvent): activate window on Button2 click in
1917+ addition to Button1 and Button3.
1918+
1919+ * plugins/gconf.c (gconfSetOption): gconf_value_compare against
1920+ the old value for list-type options too.
1921+ (gconfInitOption): Change the call to gconf_client_get_entry to
1922+ request the default value again; the fix to gconfSetOption will
1923+ prevent the infinite loops that happened before.
1924+
1925+2006-04-26 David Reveman <davidr@novell.com>
1926+
1927+ * gnome/window-decorator/gnome-window-decorator.c (update_shadow):
1928+ Remove comment that is no longer valid.
1929+
1930+ * plugins/move.c: Support for maximized windows snap-off. Based on
1931+ patch by Colin Guthrie.
1932+
1933+ * plugins/rotate.c (rotateHandleEvent): Don't do edge flipping
1934+ when a horizontally maximized or fullscreen window is grabbed.
1935+
1936+ * plugins/zoom.c:
1937+ * plugins/rotate.c:
1938+ * plugins/resize.c:
1939+ * plugins/move.c:
1940+ * src/screen.c:
1941+ * include/compiz.h: Add warpPointerToScreenPos and use it everywhere
1942+ we want to invisibly warp the pointer.
1943+
1944+2006-04-25 David Reveman <davidr@novell.com>
1945+
1946+ * gnome/window-decorator/gnome-window-decorator.c:
1947+ * plugins/decoration.c: Add clamp and min size.
1948+
1949+ * plugins/decoration.c (decorReleaseDecoration): Fix memory leak.
1950+
1951+ * plugins/scale.c: Click on background leaves scale mode and enters
1952+ show desktop mode. (Dan Winship)
1953+
1954+ * plugins/minimize.c (minHandleEvent): Initialize scale and
1955+ translate properly.
1956+
1957+ * src/window.c (activateWindow):
1958+ * src/event.c (handleEvent):
1959+ * src/screen.c: Add window parameter to leaveShowDesktopMode and
1960+ use this function for making one window leave show desktop mode.
1961+ Fixes so that we're leaving show desktop mode when no windows
1962+ are longer hidden.
1963+
1964+ * plugins/scale.c (scaleSetScreenOption): Add missing break statement.
1965+
1966+ * plugins/rotate.c (rotateInitScreen): Initialize rotateHandle.
1967+
1968+ * src/paint.c (paintScreen): Only paint windows that have been
1969+ damaged.
1970+
1971+2006-04-24 Dan Winship <danw@novell.com>
1972+
1973+ * plugins/scale.c:
1974+ * plugins/switcher.c: clarify the "initiate" descriptions
1975+
1976+ * plugins/compiz.schemas: regen
1977+
1978+2006-04-24 David Reveman <davidr@novell.com>
1979+
1980+ * src/paint.c (paintScreen): Always call paintWindow when window
1981+ is visible. Fixes so that window animations (fade, minimize...) aren't
1982+ paused when if window becomes invisible.
1983+ (paintWindow): Return early if region is empty.
1984+
1985+ * plugins/switcher.c: Use hideWindow and showWindow so that the
1986+ decoration doesn't have to be redrawn every time the switcher window
1987+ is mapped.
1988+
1989+ * src/window.c:
1990+ * include/compiz.h: Add hidden flag, that can be used to hide windows
1991+ without minimizing them.
1992+
1993+ * plugins/compiz.schemas: Regen (drop-shadow options).
1994+
1995+ * configure.ac: xrender 0.9, required for g-w-d.
1996+
1997+ * gnome/window-decorator/gnome-window-decorator.c:
1998+ * plugins/decoration.c: Add configurable drop-shadows. A minor issue is
1999+ that shadows around "tiny" windows are not rendered correctly when
2000+ large shadow offsets are used. Solution is to have the decorator set
2001+ a minimum size for which a decoration can be used so that no shadows
2002+ are rendered around "tiny" windows.
2003+
2004+2006-04-20 Dan Winship <danw@novell.com>
2005+
2006+ * plugins/rotate.c: add 12 go-directly-to-cube-face and 12
2007+ go-directly-to-cube-face-with-window bindings.
2008+
2009+ * src/display.c (compDisplayInitOptions): fix the binding type on
2010+ WINDOW_MENU.
2011+
2012+ * plugins/compiz.schemas: Regen. (lower_window, window_menu,
2013+ scale_image, images, resize, flip_move, move_window_types, and the
2014+ new rotate bindings)
2015+
2016+2006-04-20 David Reveman <davidr@novell.com>
2017+
2018+ * src/window.c:
2019+ * src/event.c (handleEvent):
2020+ * src/display.c:
2021+ * include/compiz.h:
2022+ * gnome/window-decorator/gnome-window-decorator.c: Add force quit
2023+ dialog.
2024+
2025+ * plugins/resize.c: Changed default binding to Button2.
2026+
2027+ * src/display.c (LOWER_WINDOW_BUTTON_DEFAULT): Button2 -> 6.
2028+
2029+ * gnome/window-decorator/gnome-window-decorator.c:
2030+ * include/compiz.h:
2031+ * src/event.c (handleEvent):
2032+ * src/display.c: Add window menu binding.
2033+
2034+ * gnome/window-decorator/gnome-window-decorator.c: Pick up toolkit
2035+ actions from compiz and send gnome panel actions for "main menu" and
2036+ "run dialog" actions.
2037+
2038+ * src/event.c (handleEvent):
2039+ * src/screen.c:
2040+ * include/compiz.h:
2041+ * src/display.c (addDisplay): panel action -> toolkit action.
2042+
2043+ * src/window.c (getModalTransient): Group transient must not be an
2044+ ancestor to the window we've currently found as the window to focus.
2045+ (getModalTransient): Check for child modal transient.
2046+
2047+2006-04-19 David Reveman <davidr@novell.com>
2048+
2049+ * gnome/compiz-window-manager.c: Be nice to gnome-theme-manager
2050+ and return a theme even though we currently don't support it.
2051+
2052+ * include/compiz.h:
2053+ * src/main.c: Remove window-image option.
2054+
2055+ * include/compiz.h:
2056+ * plugins/water.c:
2057+ * plugins/cube.c:
2058+ * src/texture.c:
2059+ * src/paint.c:
2060+ * src/main.c: Add strict-binding option.
2061+
2062+2006-04-18 Dan Winship <danw@novell.com>
2063+
2064+ * src/event.c (handleEvent): Fix a crasher in the screenshot
2065+ binding code (and rename some of the #defines to make them not so
2066+ ridiculously long). Also temporarily hack around a bug in EV_KEY
2067+ by putting the check for WINDOW_SCREENSHOT before the check for
2068+ SCREENSHOT.
2069+
2070+ * plugins/scale.c: Change the keybinding again, now to "Pause".
2071+ (F11 is the "fullscreen mode" binding for many apps.)
2072+
2073+ * plugins/compiz.schemas: update
2074+
2075+ * plugins/gconf.c:
2076+ * plugins/gconf-compiz-utils.c:
2077+ * plugins/gconf-dump.c: Rearrange #includes to prevent warning
2078+ about TRUE and FALSE being redefined
2079+
2080+2006-04-18 David Reveman <davidr@novell.com>
2081+
2082+ * plugins/rotate.c (ROTATE_FLIPMOVE_DEFAULT): Changed to TRUE.
2083+
2084+ * src/window.c (recalcWindowActions): Remove maximize and fullscreen
2085+ actions when resizing isn't allowed.
2086+
2087+ * gnome/window-decorator/gnome-window-decorator.c: Dynamic positioning
2088+ of window buttons.
2089+
2090+ * plugins/cube.c (readSvgToTexture): Fix typo.
2091+
2092+ * plugins/resize.c: Constrain cursor movement to min/max window size.
2093+
2094+ * src/window.c (constrainNewWindowSize): Fix aspect ratio calculations.
2095+
2096+2006-04-17 David Reveman <davidr@novell.com>
2097+
2098+ * plugins/cube.c: Put PNG on top face by default.
2099+
2100+ * images/Makefile.am: Remove window.png.
2101+ Add novell.png.
2102+
2103+ * include/compiz.h:
2104+ * src/readpng.c: Add openImageFile.
2105+
2106+ * plugins/cube.c: Support for PNGs on top face.
2107+ Add scale image option which is used to determine if top face
2108+ image should be scaled or not.
2109+
2110+2006-04-15 David Reveman <davidr@novell.com>
2111+
2112+ * plugins/wobbly.c: Add modal dialog type to default list of windows
2113+ that should be wobbly when moved.
2114+
2115+ * plugins/water.c (SET): +1 for border.
2116+
2117+2006-04-14 Dan Winship <danw@novell.com>
2118+
2119+ * plugins/gconf-dump.c: add "water" to gconfDeps
2120+
2121+ * plugins/compiz.schemas: regen including the water options
2122+
2123+2006-04-14 David Reveman <davidr@novell.com>
2124+
2125+ * src/event.c (handleWindowDamageRect): Ignore damage from windows
2126+ that aren't redirected.
2127+
2128+ * include/compiz.h:
2129+ * src/window.c:
2130+ * src/display.c (eventLoop):
2131+ * src/screen.c: Add support for automatic unredirecting of fullscreen
2132+ windows.
2133+
2134+ * plugins/scale.c (scaleInitiate): Layout thumbnails before we
2135+ grab the screen to make sure some window exist.
2136+
2137+ * plugins/resize.c: Allow 4-way resize. (Mike Hearn)
2138+
2139+2006-04-13 Dan Winship <danw@novell.com>
2140+
2141+ * src/screen.c (panelAction): take a timestamp and pass that to
2142+ the panel rather than using CurrentTime
2143+
2144+ * src/event.c (handleEvent): update for that
2145+
2146+ * src/window.c (moveResizeWindow): fix the gravity handling so
2147+ self-resizing windows don't dance (although I'm pretty sure this
2148+ is a symptom of mishandling gravity somewhere else).
2149+
2150+ * plugins/gconf.c (gconfInitOption): Request the default value of
2151+ the key from gconf, rather than initializing the key to the
2152+ internal default value if it hasn't yet been set by the user.
2153+ Notably, this makes it so that "compiz gconf" on a new account
2154+ will use the default value of active_plugins rather than the
2155+ (effectively empty) list of plugins on the command line. (It also
2156+ makes it so that the sysadmin can override defaults via sabayon or
2157+ whatever.)
2158+
2159+2006-04-13 David Reveman <davidr@novell.com>
2160+
2161+ * src/window.c (mapWindow): Maybe not, disable it again. :(
2162+
2163+ * src/window.c (mapWindow): Enable draw synchronization on map
2164+ again. Should be working correctly with CVS version of X server.
2165+
2166+2006-04-12 Dan Winship <danw@novell.com>
2167+
2168+ * src/window.c (moveResizeWindow): move duplicated code from
2169+ _NET_MOVERESIZE_WINDOW and ConfigureRequest handlers in event.c to
2170+ here, and handle gravity as well. (Fixes bnc 163058.)
2171+ (updateWindowAttributes): Do nothing if the window is
2172+ override_redirect (and remove a few now-redundant checks of that
2173+ elsewhere). Previously we were forgetting to check
2174+ !override_redirect in the case where the motif hints changed. (bnc
2175+ 163931)
2176+ (getWindowUserTime): fix a cut-and-paste-o that caused a crash on
2177+ 64bit machines.
2178+
2179+ * src/event.c (handleEvent): fix the _NET_MOVERESIZE_WINDOW bit
2180+ manipulation to correspond to what the EWMH means rather than what
2181+ it says, and use moveResizeWindow for that and for
2182+ ConfigureRequest.
2183+
2184+ * plugins/gconf-compiz-utils.c (gconfBindingToString): DTRT with
2185+ "None" bindings.
2186+
2187+ * gnome/window-decorator/gnome-window-decorator.c (title_event):
2188+ if the user right-clicks on the titlebar while the context menu is
2189+ popped up, just pop it down and eat the click, like all other
2190+ GNOME context menus do.
2191+ (style_changed, value_changed): Don't add decorations to
2192+ previously-undecorated windows. (bnc 165393)
2193+
2194+2006-04-11 David Reveman <davidr@novell.com>
2195+
2196+ * src/screen.c (addScreen): Fix typo.
2197+
2198+2006-04-10 Dan Winship <danw@novell.com>
2199+
2200+ * src/window.c (focusWindowOnMap): new function to decide whether
2201+ or not to focus a newly-mapped window. In addition to the old
2202+ checks, this also checks that _NET_WM_USER_TIME isn't 0, to allow
2203+ a window to explicitly request to not get focus.
2204+
2205+ * src/event.c (handleEvent): use focusWindowOnMap when processing
2206+ MapRequest.
2207+
2208+ * plugins/rotate.c (rotateHandleEvent): fix _NET_ACTIVE_WINDOW
2209+ handling so this doesn't interfere with focusable panel applets.
2210+
2211+ * plugins/compiz.schemas: regen (fixing cube top/bottom color)
2212+
2213+ * plugins/gconf-dump.c: Handle CompOptionTypeColor.
2214+
2215+ * configure.ac: Add --enable-gconf-dump so that the gconf-dump
2216+ plugin doesn't get built in normal builds
2217+
2218+ * plugins/Makefile.am: make gconf-dump optional.
2219+
2220+2006-04-09 Dan Winship <danw@novell.com>
2221+
2222+ * plugins/gconf-dump.c: add plugin options, and add information
2223+ about restrictions (numeric ranges, specific string values) to the
2224+ long description. Make gconf-dump refuse to run if gconf is
2225+ running (since you want the defaults it writes out to be coming
2226+ from the defaults in the source code, not from any gconf
2227+ overrides).
2228+
2229+ * plugins/compiz.schemas: regen
2230+
2231+ * plugins/gconf.c (gconfGetOptionValue): don't call gconfSetOption
2232+ from here, or we'll get an infinite loop when anything changes
2233+
2234+2006-04-09 David Reveman <davidr@novell.com>
2235+
2236+ * include/compiz.h:
2237+ * src/display.c:
2238+ * src/main.c:
2239+ * src/screen.c:
2240+ * src/texture.c:
2241+ * src/window.c: Remove test mode.
2242+
2243+ * plugins/Makefile.am: Remove schema from CLEANFILES.
2244+
2245+ * plugins/compiz.schemas:
2246+ * src/display.c:
2247+ Improve documentation for runcommand keys slightly. (Mike Hearn)
2248+
2249+ * include/compiz.h:
2250+ * src/texture.c:
2251+ * src/screen.c (addScreen): Switch to using GLX 1.3 functions.
2252+ (James Jones)
2253+
2254+ * src/main.c: Indirect rendering option. (James Jones)
2255+
2256+2006-04-08 David Reveman <davidr@novell.com>
2257+
2258+ * plugins/water.c: Add rain delay option. (Emilie Roberts)
2259+
2260+2006-04-07 David Reveman <davidr@novell.com>
2261+
2262+ * plugins/gconf-dump.c: Dump list options correctly.
2263+
2264+ * plugins/rotate.c: Add flip_move option, edge flipping is only
2265+ used when moving windows if this option is enabled.
2266+ (rotateHandleEvent): Make we don't rotate when some other plugin
2267+ has grabbed the screen.
2268+
2269+ * plugins/scale.c: Change default key-binding to F11.
2270+ (scaleInitiate): Make sure screen isn't grabbed by some other plugin.
2271+ (scaleInitScreen): Initialize darkenBack properly.
2272+
2273+ * configure.ac: Bump version to 0.0.9.
2274+
2275+ * plugins/Makefile.am (CLEANFILES, EXTRA_DIST): Fix.
2276+
2277+ * plugins/rotate.c (ROTATE_SPEED_DEFAULT): 1.5.
2278+
2279+2006-04-07 Dan Winship <danw@novell.com>
2280+
2281+ (Much of this patch was written by Radek Doulik
2282+ <rodo@novell.com>.)
2283+
2284+ * src/display.c:
2285+ * src/event.c:
2286+ * src/screen.c: Move keybinding stuff to CompDisplay, making it no
2287+ longer settable per-screen. Add bindings for screenshots (for
2288+ compatibility with metacity, which handles that keybinding in
2289+ GNOME for historical reasons).
2290+
2291+ * include/compiz.h: add an explicit CompBindingTypeNone rather
2292+ than relying on modifiers==0 to mean none. Update bindings stuff.
2293+
2294+ * src/screen.c (removePassiveKeyGrab, removePassiveButtonGrab):
2295+ Fix these to remove the right grab rather than always removing the
2296+ most-recently-added one.
2297+ (addScreenBinding): deal with CompBindingTypeNone
2298+
2299+ * plugins/gconf-dump.c: hacky plugin to dump information about the
2300+ other plugins to a gconf schemas file (used to regenerate
2301+ compiz.schemas)
2302+
2303+ * plugins/gconf-compiz-utils.c: shared code between gconf.c and
2304+ gconf-dump.c
2305+
2306+ * plugins/Makefile.am: add gconf-dump plugin and compiz.schemas,
2307+ and code to install compiz.schemas.
2308+
2309+ * configure.ac: Update gconf test to set macros needed for schema
2310+ install.
2311+
2312+2006-04-07 David Reveman <davidr@novell.com>
2313+
2314+ * plugins/rotate.c: Add edge flipping support.
2315+
2316+ * plugins/scale.c: Allow corner screen edges to be used for
2317+ initiating scale mode.
2318+
2319+ * src/option.c (compSetBoolOption): Only return TRUE if value changed.
2320+
2321+ * src/screen.c:
2322+ * src/window.c:
2323+ * plugins/minimize.c:
2324+ * plugins/decoration.c:
2325+ * include/compiz.h: Add immediate argument to MoveNotify, immediate
2326+ means that any animations should be avoided.
2327+
2328+ * src/screen.c:
2329+ * plugins/water.c:
2330+ * plugins/resize.c:
2331+ * plugins/place.c:
2332+ * plugins/move.c:
2333+ * plugins/zoom.c:
2334+ * plugins/rotate.c:
2335+ * plugins/scale.c:
2336+ * src/event.c:
2337+ * include/compiz.h:
2338+ Add previous pointer position that can be shared between multiple
2339+ plugins.
2340+
2341+2006-04-06 David Reveman <davidr@novell.com>
2342+
2343+ * include/compiz.h:
2344+ * src/screen.c: Add screen edges and simple interface for enabling
2345+ and disabling them.
2346+
2347+ * plugins/switcher.c (switchDamageWindowRect)
2348+ (switchWindowRemove): Update switcher list even when screen isn't
2349+ grabbed.
2350+
2351+ * plugins/switcher.c (switchDamageWindowRect):
2352+ * include/compiz.h:
2353+ * src/event.c (handleEvent):
2354+ * src/window.c: Made it possible to select if window should be
2355+ stacked above fullscreen windows or not.
2356+
2357+ * src/window.c (findSiblingBelow): Only find a fullscreen sibling
2358+ if aboveFs is TRUE.
2359+ (activateWindow): Allow stacking of window above fullscreen windows
2360+ when being activated.
2361+
2362+2006-04-05 David Reveman <davidr@novell.com>
2363+
2364+ * plugins/water.c (fboEpilogue): Reset raster position. Avoids
2365+ an FBO/raster-position issue found in newer nvidia drivers.
2366+
2367+ * plugins/move.c: Add constrain_y option that constrains window
2368+ movement so that top of window is always visible (on by default).
2369+
2370+ * src/event.c (handleEvent): Change active window property even though
2371+ it's not different than the window we currently have as active.
2372+
2373+ * src/window.c (moveInputFocusToWindow): Set focus even though
2374+ the window is considered the active window.
2375+
2376+2006-04-03 David Reveman <davidr@novell.com>
2377+
2378+ * plugins/water.c: Use char everywhere instead.
2379+ Fix offset direction (P-a Bäckström).
2380+ Add offset scale option.
2381+
2382+ * plugins/water.c: (loadFragmentProgram): GLubyte -> const GLbyte.
2383+ (loadWaterProgram): char -> GLbyte.
2384+ (loadBumpMapProgram): char -> GLbyte.
2385+ Use char everywhere.
2386+
2387+ * configure.ac: Bump version to 0.0.8.
2388+
2389+ * plugins/water.c: Add simple rain effect.
2390+ (loadFragmentProgram): Clear any previous error.
2391+
2392+ * src/display.c: Change so that timeouts are not only triggered
2393+ when we're idle.
2394+
2395+2006-04-02 David Reveman <davidr@novell.com>
2396+
2397+ * plugins/water.c: Add scale and bias to normal so that light can be
2398+ computed correclty. Offset texture coordinates for nice refraction
2399+ effect. (P-a Bäckström)
2400+ (waterDrawWindowTexture): Add scaling after setting up texture
2401+ coordinate generation.
2402+ Fix up loading of bump map programs.
2403+ (softwareUpdate): Improve performance of software fall-back code a bit.
2404+ (waterDrawWindowTexture): Always use filter for when window is
2405+ transformed.
2406+
2407+ * plugins/gconf.c (gconfGetValue): Fix typo that caused color
2408+ parsing to be incomplete (Quinn Storm).
2409+
2410+2006-04-01 David Reveman <davidr@novell.com>
2411+
2412+ * plugins/switcher.c: Add "initiate all" binding which brings up the
2413+ switcher window with all mapped windows and "initiate" binding will
2414+ now bring up the switcher window with only the visible windows.
2415+
2416+2006-03-31 David Reveman <davidr@novell.com>
2417+
2418+ * plugins/minimize.c (minDamageWindowRect): Never leave windows
2419+ in scaled state.
2420+
2421+ * src/screen.c (moveScreenViewport): Move hidden windows as well.
2422+
2423+ * src/window.c (addWindow, activateWindow, hideWindow)
2424+ (showWindow):
2425+ * src/screen.c (enterShowDesktopMode, leaveShowDesktopMode):
2426+ * src/event.c (handleEvent):
2427+ * include/compiz.h: Fix up show desktop mode.
2428+
2429+ * plugins/water.c (fboVertices): return 1.
2430+
2431+2006-03-30 David Reveman <davidr@novell.com>
2432+
2433+ * src/texture.c (enableTexture): Always make sure mipmaps are up to
2434+ date when using GL_LINEAR_MIPMAP_LINEAR filter.
2435+
2436+2006-03-29 David Reveman <davidr@novell.com>
2437+
2438+ * gnome/window-decorator/gnome-window-decorator.c: Draw outline around
2439+ window title text and buttons instead of small shadow.
2440+
2441+ * src/event.c (handleEvent):
2442+ * include/compiz.h:
2443+ * src/window.c: Set allowed window actions more correctly.
2444+
2445+ * plugins/move.c: Add opacity option.
2446+
2447+ * plugins/Makefile.am: Add water plugin. It's not very useful yet
2448+ and it needs more work but it's a good example of how to use
2449+ GL_ARB_fragment_program and GL_EXT_framebuffer_object for visual
2450+ effects.
2451+
2452+ * src/screen.c (addScreen): Fix light position.
2453+
2454+ * src/paint.c (paintWindow):
2455+ * plugins/switcher.c (switchPaintThumb):
2456+ * plugins/decoration.c (decorPaintWindow):
2457+ * include/compiz.h: Make drawWindowTexture a screen function so that
2458+ plugins can wrap it.
2459+
2460+ * src/texture.c (enableTexture):
2461+ * src/screen.c (addScreen):
2462+ * include/compiz.h: GL_EXT_framebuffer_object and
2463+ GL_ARB_fragment_program support.
2464+
2465+2006-03-21 David Reveman <davidr@novell.com>
2466+
2467+ * gnome/window-decorator/gnome-window-decorator.c (lower_window): Don't
2468+ try to lower a window below hidden windows or desktop windows.
2469+
2470+2006-03-20 David Reveman <davidr@novell.com>
2471+
2472+ * plugins/wobbly.c (wobblyHandleEvent):
2473+ xunmap -> xmap (François Ingelrest).
2474+
2475+ * src/screen.c (isClientListWindow): All type of windows should go into
2476+ the client lists (Thanks to Quinn Storm).
2477+
2478+ * src/window.c (freeWindow): Destroy frame window.
2479+ (mapWindow): Fix so the sync requests are sent correctly when a window
2480+ is mapped but disable it for now as it seems to be causing problems
2481+ with some applications.
2482+ (recalcWindowActions): Allow dialog window actions on util and
2483+ toolbar windows.
2484+
2485+ * src/event.c (handleEvent): Remove event mask and button grabs
2486+ when window is reparented.
2487+ (handleEvent): Update client list when window type changes.
2488+ (handleEvent): Use constrainNewWindowSize on move/resize client
2489+ messages and configure requests.
2490+
2491+ * gnome/window-decorator/gnome-window-decorator.c (window_closed):
2492+ Delete decor property when window is closed.
2493+
2494+2006-03-17 Jeremy C. Reed <reed@reedmedia.net>
2495+
2496+ reviewed by: David Reveman
2497+
2498+ * autogen.sh:
2499+ Be consistent with rest of modular xorg by using same
2500+ autogen.sh. This allows it to be run using a different
2501+ work directory.
2502+
2503+2006-03-17 Jeremy C. Reed <reed@reedmedia.net>
2504+
2505+ reviewed by: David Reveman
2506+
2507+ * INSTALL:
2508+ Mention startup-notification requirement.
2509+
2510+2006-03-17 David Reveman <davidr@novell.com>
2511+
2512+ * plugins/scale.c: Add opacity option.
2513+
2514+ * configure.ac: Bump version to 0.0.7.
2515+
2516+2006-03-17 Radek Doulik <rodo@novell.com>
2517+
2518+ * src/session.c: added all mandatory SM client callbacks, handle
2519+ ICE connection and process ICE messages
2520+
2521+ * src/display.c (compAddWatchFd): new function, adds new fd watch
2522+ - for poll io multiplexing
2523+ (compRemoveWatchFd): new function, remove fd watch added by
2524+ compAddWatchFd
2525+ (doPoll): new helper function, does call poll and calls callbacks
2526+ for watch fd's. returns the value of poll call
2527+ (eventLoop): use doPoll, we use NULL for display fd watch so that
2528+ it doesn't call anything and just use return value from poll as
2529+ before
2530+
2531+2006-03-17 David Reveman <davidr@novell.com>
2532+
2533+ * plugins/switcher.c (switchDamageWindowRect): Update window
2534+ attributes for popup window. We never get a MapRequest for this
2535+ window so it most be done here.
2536+ Add "bring to front" option. (Greg)
2537+
2538+ * src/window.c (stackAncestors): Never raise desktop windows.
2539+ Made restackWindowAbove and restackWindowBelow smarter.
2540+
2541+2006-03-16 David Reveman <davidr@novell.com>
2542+
2543+ * plugins/minimize.c:
2544+ * src/event.c (handleEvent):
2545+ * src/window.c:
2546+ Handle window state changes correctly.
2547+ (maximizeWindow): Use actions to determine if we're allowed maximize
2548+ window.
2549+
2550+ * src/event.c (handleEvent):
2551+ * src/window.c: Send configure notifies correctly.
2552+
2553+2006-03-15 David Reveman <davidr@novell.com>
2554+
2555+ * plugins/switcher.c (switchPaintWindow): Fix paint attribute
2556+ calculations.
2557+
2558+ * include/compiz.h:
2559+ * src/event.c (handleEvent):
2560+ * src/window.c: Add restackWindowBelow.
2561+
2562+2006-03-14 David Reveman <davidr@novell.com>
2563+
2564+ * plugins/switcher.c: Opacity, brightness and saturation as adjustable
2565+ options. (Greg)
2566+
2567+ * src/window.c (syncWindowPosition): Move frame window now instead of
2568+ waiting for client window to change before moving it.
2569+
2570+ * plugins/move.c (moveTerminate): Sync window position before
2571+ releasing pointer grab so that the EnterNotify event from the release
2572+ go to the correct window.
2573+
2574+ * src/window.c (unmapWindow): Put window in withdrawn state when
2575+ being unmapped. Should make it work better with KDE. (Tim Northover)
2576+
2577+ * src/screen.c (addScreen): Fix ambient and diffuse light.
2578+
2579+ * src/main.c (main): Add --version command line option.
2580+
2581+ * src/event.c:
2582+ * src/screen.c:
2583+ * include/compiz.h: Add bindings for changing window opacity.
2584+
2585+2006-03-14 Radek Doulik <rodo@novell.com>
2586+
2587+ * src/event.c (handleEvent): handle minimize/maximize/unmaximize
2588+ window keybindings
2589+
2590+ * src/screen.c: added minimize/maximize/unmaximize window
2591+ options/keybindings
2592+
2593+ * src/window.c (maximizeWindow): new helper function
2594+ (unmaximizeWindow): ditto
2595+
2596+2006-03-14 David Reveman <davidr@novell.com>
2597+
2598+ * plugins/scale.c: Add darken background option (Daniel G. Taylor).
2599+
2600+2006-03-13 David Reveman <davidr@novell.com>
2601+
2602+ * src/display.c (eventLoop):
2603+ * include/compiz.h:
2604+ * src/screen.c (addScreen): CopySubBufferMESA support.
2605+
2606+2006-03-07 David Reveman <davidr@novell.com>
2607+
2608+ * gnome/window-decorator/gnome-window-decorator.c (lower_window):
2609+ Remove unused variable tmp.
2610+
2611+ * src/event.c:
2612+ * src/display.c:
2613+ * src/window.c:
2614+ * src/screen.c:
2615+ * include/compiz.h: Better window stacking support.
2616+
2617+ * gnome/window-decorator/gnome-window-decorator.c: Lower window
2618+ when clicking button 2 on titlebar.
2619+
2620+ * src/window.c (ensureWindowVisibility): Only ensure that window is
2621+ visible if it isn't a override redirect window, dock window or
2622+ window with struts.
2623+
2624+2006-03-06 David Reveman <davidr@novell.com>
2625+
2626+ * configure.ac: Bump version to 0.0.6.
2627+
2628+ * plugins/cube.c: Skydome update. (MacSlow)
2629+
2630+ * src/window.c: Ensure window visibility when activating window.
2631+
2632+2006-03-05 David Reveman <davidr@novell.com>
2633+
2634+ * src/window.c (closeWindow): Use protocol mask to determine if
2635+ Client Message should be send or if we should kill the client.
2636+
2637+ * plugins/decoration.c: Don't draw shadow only decorations around
2638+ windows with alpha channel.
2639+
2640+2006-03-03 David Reveman <davidr@novell.com>
2641+
2642+ * src/texture.c (readImageBufferToTexture):
2643+ (readImageToTexture): Check that returnWidth and returnHeight are
2644+ not NULL.
2645+
2646+ * plugins/cube.c: Skydome support. Thanks to MacSlow.
2647+
2648+ * plugins/fade.c (fadeHandleEvent): Make sure opacity isn't opaque
2649+ when fading out.
2650+ Stop fading if window is resized.
2651+
2652+ * src/window.c (resizeWindow): Only verify pixmap size if window is
2653+ mapped.
2654+ (resizeWindow): Check XGetGeometry result.
2655+
2656+ * plugins/switcher.c: Make sure switcher is correctly updated
2657+ even though the previously selected window isn't selectable by
2658+ switcher.
2659+
2660+ * src/event.c (handleEvent): Avoid panel actions when screen is
2661+ grabbed.
2662+
2663+2006-03-03 Radek Doulik <rodo@novell.com>
2664+
2665+ * src/main.c (main): init and close session when sm is not
2666+ disabled. Enable sm by default.
2667+
2668+ * src/session.c: added minimal session support so that compiz at
2669+ least register with session manager to avoid registering timeouts
2670+
2671+2006-03-03 David Reveman <davidr@novell.com>
2672+
2673+ * src/screen.c (removeScreenGrab): Use correct cursor when changing
2674+ actvie pointer grab.
2675+
2676+2006-03-02 David Reveman <davidr@novell.com>
2677+
2678+ * plugins/rotate.c (rotateHandleEvent):
2679+ * plugins/zoom.c (zoomHandleEvent): Make sure no pending motion
2680+ notify events exists when warping the pointer.
2681+
2682+ * plugins/rotate.c (rotateHandleEvent): Reset movement.
2683+
2684+ * plugins/switcher.c: Always send activate request when selecting a
2685+ window.
2686+
2687+ * plugins/cube.c (cubePaintTransformedScreen): Reset color.
2688+
2689+ * plugins/switcher.c (switchPaintThumb): PAINT_WINDOW_TRANSLUCENT_MASK
2690+ if opacity isn't opaque.
2691+ (switchPaintWindow): Reset color.
2692+
2693+2006-03-01 David Reveman <davidr@novell.com>
2694+
2695+ * configure.ac: Bump version to 0.0.5.
2696+
2697+ * plugins/fade.c (fadeAddDisplayModal): Higher brightness when showing
2698+ display modal dialogs.
2699+
2700+ * plugins/switcher.c (switchPreparePaintScreen): Continue adjusting
2701+ window selection even though we're not grabbing the screen.
2702+ (switchPaintWindow): Use last used paint attributes for thumbnails.
2703+ (switchPaintWindow): Use blending when drawing selection rectangle.
2704+
2705+ * plugins/fade.c (fadeHandleEvent): unmap. -> map.
2706+ (fadeDamageWindowRect): Only zero opacity if we're not already
2707+ fading the window.
2708+
2709+ * src/window.c (unmapWindow): 'placed' variable should be reset on
2710+ first call to unmapWindow.
2711+
2712+ * src/screen.c:
2713+ * src/event.c (handleEvent):
2714+ * src/display.c (eventLoop):
2715+ * include/compiz.h: Add slow animation option.
2716+
2717+ * src/window.c (recalcNormalHints): Constrain window dimensions to
2718+ max texture size.
2719+
2720+ * src/screen.c (addScreen): Get max texture size.
2721+
2722+ * gnome/window-decorator/gnome-window-decorator.c: Nicer drop shadow
2723+ on windows without decorations.
2724+
2725+ * src/window.c (addWindow): Move initialization of sync alarm.
2726+
2727+ * plugins/cube.c:
2728+ * plugins/decoration.c:
2729+ (decorCreateDecoration): Fix minimum size check.
2730+
2731+ * src/main.c:
2732+ * include/compiz.h:
2733+ * src/paint.c:
2734+ * src/screen.c: Ligthing support.
2735+
2736+ * compiz.pc.in: Fix.
2737+
2738+2006-02-23 David Reveman <davidr@novell.com>
2739+
2740+ * src/window.c (unmapWindow): Not minimized and not part of showing
2741+ desktop mode.
2742+
2743+ * plugins/wobbly.c: Fix handling of scaled windows.
2744+ Update options so that user gets more control over which windows
2745+ that should wobble and when.
2746+
2747+ * configure.ac: Bump version to 0.0.4.
2748+
2749+ * gnome/window-decorator/gnome-window-decorator.c (window_opened): Make
2750+ sure decoration property for switcher window is set.
2751+
2752+ * plugins/decoration.c (decorHandleEvent):
2753+ * src/event.c (handleEvent):
2754+ * plugins/switcher.c:
2755+ * src/screen.c (addScreen, setScreenOption)
2756+ (compScreenInitOptions):
2757+ * src/texture.c:
2758+ * include/compiz.h: Mipmap support. Add more RUN_COMMAND options.
2759+
2760+2006-02-22 David Reveman <davidr@novell.com>
2761+
2762+ * src/display.c (realToVirtualModMask): Remove modifiers that should
2763+ be ignored.
2764+ (addDisplay): Select ButtonPress and ButtonRelease events on root
2765+ window.
2766+
2767+ * include/compiz.h (EV_KEY):
2768+ (EV_BUTTON): Modifiers should match exactly.
2769+
2770+ * plugins/switcher.c: Add binding for selecting previous window.
2771+
2772+ * plugins/decoration.c: Remove sync hack.
2773+
2774+ * gnome/window-decorator/gnome-window-decorator.c
2775+ (draw_shadow_background): Fix drawing of bottom and bottom right
2776+ shadow rectangle.
2777+ Add switcher window decorations.
2778+ Remove sync hack.
2779+ Always use double buffering.
2780+
2781+ * plugins/switcher.c: Remove background color option.
2782+ Use property instead of client message to indicate change of selected
2783+ window.
2784+
2785+2006-02-21 David Reveman <davidr@novell.com>
2786+
2787+ * plugins/cube.c (cubeHandleEvent): Only load new SVG when available.
2788+
2789+2006-02-20 David Reveman <davidr@novell.com>
2790+
2791+ * plugins/decoration.c (decorWindowUpdate): Decorate window
2792+ MwmDecorTitle is present.
2793+
2794+ * src/window.c (focusWindow):
2795+ (moveInputFocusToWindow):
2796+ Allow focusing windows with input hint set to false.
2797+ (activateWindow): Fix so that dock windows can be active.
2798+
2799+ * src/screen.c (isClientListWindow): Don't put destroyed windows in
2800+ client lists.
2801+
2802+ * src/event.c (handleEvent): Fix so that dock windows can be active.
2803+ (handleEvent): Avoid focusing windows with input hint set to false
2804+ when mapped.
2805+
2806+2006-02-18 David Reveman <davidr@novell.com>
2807+
2808+ * src/window.c (unmapWindow): Windows not being minimized should be
2809+ placed again at next map.
2810+
2811+ * plugins/wobbly.c (wobblyDonePaintScreen): Also add pending damage
2812+ if any window is in initial wobbly state.
2813+
2814+2006-02-17 David Reveman <davidr@novell.com>
2815+
2816+ * configure.ac: Bump version to 0.0.3.
2817+
2818+ * plugins/zoom.c (zoomIn): Translate less.
2819+ (zoomPaintScreen): Use selected filter.
2820+ (adjustZoomVelocity): Made zoom animation nicer.
2821+ (zoomPreparePaintScreen): Don't zoom to much.
2822+ ADd filter selection option.
2823+
2824+ * plugins/decoration.c (decorPaintWindow):
2825+ * src/paint.c (drawWindowTexture): Use screen filters.
2826+
2827+ * include/compiz.h: Add support for adjusting filters.
2828+
2829+ * plugins/scale.c (scaleHandleEvent): Only button 1.
2830+
2831+ * plugins/cube.c (cubePaintTransformedScreen): Fix drawing with size
2832+ greater than 4.
2833+
2834+2006-02-16 David Reveman <davidr@novell.com>
2835+
2836+ * configure.ac: Remove menu.
2837+
2838+ * plugins/switcher.c (switchNextWindow): Damage new and previously
2839+ selected window.
2840+ (switchInitiate): Damage screen initiating switching.
2841+ (switchTerminate): Damage screen terminating switching.
2842+ (switchPaintThumb): Draw thumbnail without calling any function that
2843+ can be wrapped.
2844+
2845+ * gnome/window-decorator/gnome-window-decorator.c
2846+ (update_window_decoration_size): Make sure title isn't rendered
2847+ when it doesn't fit.
2848+
2849+2006-02-14 David Reveman <davidr@novell.com>
2850+
2851+ * gnome/window-decorator/gnome-window-decorator.c
2852+ (draw_window_decoration): Make sure complete icon is visible.
2853+
2854+ * src/display.c (eventLoop):
2855+ (getTimeToNextRedraw): Handle clock rollback.
2856+
2857+2006-02-13 David Reveman <davidr@novell.com>
2858+
2859+ * configure.ac: Remove menu plugin check.
2860+ Require version 2.8.0 or greater of gtk+.
2861+
2862+2006-02-11 David Reveman <davidr@novell.com>
2863+
2864+ * configure.ac: Bump version to 0.0.2.
2865+
2866+ * src/window.c:
2867+ * src/event.c:
2868+ * plugins/fade.c:
2869+ * src/display.c:
2870+ * include/compiz.h: Lower brightness of windows that are not responding
2871+ and all windows when showing logout dialog.
2872+
2873+ * gnome/window-decorator/gnome-window-decorator.c: Use metacity
2874+ titlebar font settings.
2875+
2876+ * gnome/compiz-window-manager.c: Add titlebar font setting.
2877+
2878+ * plugins/Makefile.am:
2879+ * plugins/switcher.c: Add switcher plugin.
2880+
2881+ * plugins/gconf.c: Add alpha to color options.
2882+
2883+2006-02-10 David Reveman <davidr@novell.com>
2884+
2885+ * src/screen.c:
2886+ * src/display.c: Do not include X11/extensions/Xevie.h.
2887
2888=== added file 'Doxyfile'
2889--- Doxyfile 1970-01-01 00:00:00 +0000
2890+++ Doxyfile 2011-03-30 12:34:28 +0000
2891@@ -0,0 +1,1514 @@
2892+# Doxyfile 1.6.1
2893+
2894+# This file describes the settings to be used by the documentation system
2895+# doxygen (www.doxygen.org) for a project
2896+#
2897+# All text after a hash (#) is considered a comment and will be ignored
2898+# The format is:
2899+# TAG = value [value, ...]
2900+# For lists items can also be appended using:
2901+# TAG += value [value, ...]
2902+# Values that contain spaces should be placed between quotes (" ")
2903+
2904+#---------------------------------------------------------------------------
2905+# Project related configuration options
2906+#---------------------------------------------------------------------------
2907+
2908+# This tag specifies the encoding used for all characters in the config file
2909+# that follow. The default is UTF-8 which is also the encoding used for all
2910+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
2911+# iconv built into libc) for the transcoding. See
2912+# http://www.gnu.org/software/libiconv for the list of possible encodings.
2913+
2914+DOXYFILE_ENCODING = UTF-8
2915+
2916+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
2917+# by quotes) that should identify the project.
2918+
2919+PROJECT_NAME = Compiz
2920+
2921+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
2922+# This could be handy for archiving the generated documentation or
2923+# if some version control system is used.
2924+
2925+PROJECT_NUMBER = 0.9
2926+
2927+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
2928+# base path where the generated documentation will be put.
2929+# If a relative path is entered, it will be relative to the location
2930+# where doxygen was started. If left blank the current directory will be used.
2931+
2932+OUTPUT_DIRECTORY = doc
2933+
2934+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
2935+# 4096 sub-directories (in 2 levels) under the output directory of each output
2936+# format and will distribute the generated files over these directories.
2937+# Enabling this option can be useful when feeding doxygen a huge amount of
2938+# source files, where putting all generated files in the same directory would
2939+# otherwise cause performance problems for the file system.
2940+
2941+CREATE_SUBDIRS = NO
2942+
2943+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
2944+# documentation generated by doxygen is written. Doxygen will use this
2945+# information to generate all constant output in the proper language.
2946+# The default language is English, other supported languages are:
2947+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
2948+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
2949+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
2950+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
2951+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
2952+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
2953+
2954+OUTPUT_LANGUAGE = English
2955+
2956+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
2957+# include brief member descriptions after the members that are listed in
2958+# the file and class documentation (similar to JavaDoc).
2959+# Set to NO to disable this.
2960+
2961+BRIEF_MEMBER_DESC = YES
2962+
2963+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
2964+# the brief description of a member or function before the detailed description.
2965+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
2966+# brief descriptions will be completely suppressed.
2967+
2968+REPEAT_BRIEF = YES
2969+
2970+# This tag implements a quasi-intelligent brief description abbreviator
2971+# that is used to form the text in various listings. Each string
2972+# in this list, if found as the leading text of the brief description, will be
2973+# stripped from the text and the result after processing the whole list, is
2974+# used as the annotated text. Otherwise, the brief description is used as-is.
2975+# If left blank, the following values are used ("$name" is automatically
2976+# replaced with the name of the entity): "The $name class" "The $name widget"
2977+# "The $name file" "is" "provides" "specifies" "contains"
2978+# "represents" "a" "an" "the"
2979+
2980+ABBREVIATE_BRIEF =
2981+
2982+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
2983+# Doxygen will generate a detailed section even if there is only a brief
2984+# description.
2985+
2986+ALWAYS_DETAILED_SEC = YES
2987+
2988+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
2989+# inherited members of a class in the documentation of that class as if those
2990+# members were ordinary class members. Constructors, destructors and assignment
2991+# operators of the base classes will not be shown.
2992+
2993+INLINE_INHERITED_MEMB = NO
2994+
2995+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
2996+# path before files name in the file list and in the header files. If set
2997+# to NO the shortest path that makes the file name unique will be used.
2998+
2999+FULL_PATH_NAMES = YES
3000+
3001+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
3002+# can be used to strip a user-defined part of the path. Stripping is
3003+# only done if one of the specified strings matches the left-hand part of
3004+# the path. The tag can be used to show relative paths in the file list.
3005+# If left blank the directory from which doxygen is run is used as the
3006+# path to strip.
3007+
3008+STRIP_FROM_PATH =
3009+
3010+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
3011+# the path mentioned in the documentation of a class, which tells
3012+# the reader which header file to include in order to use a class.
3013+# If left blank only the name of the header file containing the class
3014+# definition is used. Otherwise one should specify the include paths that
3015+# are normally passed to the compiler using the -I flag.
3016+
3017+STRIP_FROM_INC_PATH =
3018+
3019+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
3020+# (but less readable) file names. This can be useful is your file systems
3021+# doesn't support long names like on DOS, Mac, or CD-ROM.
3022+
3023+SHORT_NAMES = NO
3024+
3025+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
3026+# will interpret the first line (until the first dot) of a JavaDoc-style
3027+# comment as the brief description. If set to NO, the JavaDoc
3028+# comments will behave just like regular Qt-style comments
3029+# (thus requiring an explicit @brief command for a brief description.)
3030+
3031+JAVADOC_AUTOBRIEF = YES
3032+
3033+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
3034+# interpret the first line (until the first dot) of a Qt-style
3035+# comment as the brief description. If set to NO, the comments
3036+# will behave just like regular Qt-style comments (thus requiring
3037+# an explicit \brief command for a brief description.)
3038+
3039+QT_AUTOBRIEF = NO
3040+
3041+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
3042+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
3043+# comments) as a brief description. This used to be the default behaviour.
3044+# The new default is to treat a multi-line C++ comment block as a detailed
3045+# description. Set this tag to YES if you prefer the old behaviour instead.
3046+
3047+MULTILINE_CPP_IS_BRIEF = NO
3048+
3049+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
3050+# member inherits the documentation from any documented member that it
3051+# re-implements.
3052+
3053+INHERIT_DOCS = YES
3054+
3055+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
3056+# a new page for each member. If set to NO, the documentation of a member will
3057+# be part of the file/class/namespace that contains it.
3058+
3059+SEPARATE_MEMBER_PAGES = NO
3060+
3061+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
3062+# Doxygen uses this value to replace tabs by spaces in code fragments.
3063+
3064+TAB_SIZE = 8
3065+
3066+# This tag can be used to specify a number of aliases that acts
3067+# as commands in the documentation. An alias has the form "name=value".
3068+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
3069+# put the command \sideeffect (or @sideeffect) in the documentation, which
3070+# will result in a user-defined paragraph with heading "Side Effects:".
3071+# You can put \n's in the value part of an alias to insert newlines.
3072+
3073+ALIASES =
3074+
3075+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
3076+# sources only. Doxygen will then generate output that is more tailored for C.
3077+# For instance, some of the names that are used will be different. The list
3078+# of all members will be omitted, etc.
3079+
3080+OPTIMIZE_OUTPUT_FOR_C = NO
3081+
3082+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
3083+# sources only. Doxygen will then generate output that is more tailored for
3084+# Java. For instance, namespaces will be presented as packages, qualified
3085+# scopes will look different, etc.
3086+
3087+OPTIMIZE_OUTPUT_JAVA = NO
3088+
3089+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
3090+# sources only. Doxygen will then generate output that is more tailored for
3091+# Fortran.
3092+
3093+OPTIMIZE_FOR_FORTRAN = NO
3094+
3095+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
3096+# sources. Doxygen will then generate output that is tailored for
3097+# VHDL.
3098+
3099+OPTIMIZE_OUTPUT_VHDL = NO
3100+
3101+# Doxygen selects the parser to use depending on the extension of the files it parses.
3102+# With this tag you can assign which parser to use for a given extension.
3103+# Doxygen has a built-in mapping, but you can override or extend it using this tag.
3104+# The format is ext=language, where ext is a file extension, and language is one of
3105+# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
3106+# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
3107+# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),
3108+# use: inc=Fortran f=C. Note that for custom extensions you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
3109+
3110+EXTENSION_MAPPING =
3111+
3112+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
3113+# to include (a tag file for) the STL sources as input, then you should
3114+# set this tag to YES in order to let doxygen match functions declarations and
3115+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
3116+# func(std::string) {}). This also make the inheritance and collaboration
3117+# diagrams that involve STL classes more complete and accurate.
3118+
3119+BUILTIN_STL_SUPPORT = NO
3120+
3121+# If you use Microsoft's C++/CLI language, you should set this option to YES to
3122+# enable parsing support.
3123+
3124+CPP_CLI_SUPPORT = NO
3125+
3126+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
3127+# Doxygen will parse them like normal C++ but will assume all classes use public
3128+# instead of private inheritance when no explicit protection keyword is present.
3129+
3130+SIP_SUPPORT = NO
3131+
3132+# For Microsoft's IDL there are propget and propput attributes to indicate getter
3133+# and setter methods for a property. Setting this option to YES (the default)
3134+# will make doxygen to replace the get and set methods by a property in the
3135+# documentation. This will only work if the methods are indeed getting or
3136+# setting a simple type. If this is not the case, or you want to show the
3137+# methods anyway, you should set this option to NO.
3138+
3139+IDL_PROPERTY_SUPPORT = YES
3140+
3141+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
3142+# tag is set to YES, then doxygen will reuse the documentation of the first
3143+# member in the group (if any) for the other members of the group. By default
3144+# all members of a group must be documented explicitly.
3145+
3146+DISTRIBUTE_GROUP_DOC = NO
3147+
3148+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
3149+# the same type (for instance a group of public functions) to be put as a
3150+# subgroup of that type (e.g. under the Public Functions section). Set it to
3151+# NO to prevent subgrouping. Alternatively, this can be done per class using
3152+# the \nosubgrouping command.
3153+
3154+SUBGROUPING = YES
3155+
3156+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
3157+# is documented as struct, union, or enum with the name of the typedef. So
3158+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
3159+# with name TypeT. When disabled the typedef will appear as a member of a file,
3160+# namespace, or class. And the struct will be named TypeS. This can typically
3161+# be useful for C code in case the coding convention dictates that all compound
3162+# types are typedef'ed and only the typedef is referenced, never the tag name.
3163+
3164+TYPEDEF_HIDES_STRUCT = NO
3165+
3166+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
3167+# determine which symbols to keep in memory and which to flush to disk.
3168+# When the cache is full, less often used symbols will be written to disk.
3169+# For small to medium size projects (<1000 input files) the default value is
3170+# probably good enough. For larger projects a too small cache size can cause
3171+# doxygen to be busy swapping symbols to and from disk most of the time
3172+# causing a significant performance penality.
3173+# If the system has enough physical memory increasing the cache will improve the
3174+# performance by keeping more symbols in memory. Note that the value works on
3175+# a logarithmic scale so increasing the size by one will rougly double the
3176+# memory usage. The cache size is given by this formula:
3177+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
3178+# corresponding to a cache size of 2^16 = 65536 symbols
3179+
3180+SYMBOL_CACHE_SIZE = 0
3181+
3182+#---------------------------------------------------------------------------
3183+# Build related configuration options
3184+#---------------------------------------------------------------------------
3185+
3186+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
3187+# documentation are documented, even if no documentation was available.
3188+# Private class members and static file members will be hidden unless
3189+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
3190+
3191+EXTRACT_ALL = NO
3192+
3193+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
3194+# will be included in the documentation.
3195+
3196+EXTRACT_PRIVATE = NO
3197+
3198+# If the EXTRACT_STATIC tag is set to YES all static members of a file
3199+# will be included in the documentation.
3200+
3201+EXTRACT_STATIC = NO
3202+
3203+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
3204+# defined locally in source files will be included in the documentation.
3205+# If set to NO only classes defined in header files are included.
3206+
3207+EXTRACT_LOCAL_CLASSES = YES
3208+
3209+# This flag is only useful for Objective-C code. When set to YES local
3210+# methods, which are defined in the implementation section but not in
3211+# the interface are included in the documentation.
3212+# If set to NO (the default) only methods in the interface are included.
3213+
3214+EXTRACT_LOCAL_METHODS = NO
3215+
3216+# If this flag is set to YES, the members of anonymous namespaces will be
3217+# extracted and appear in the documentation as a namespace called
3218+# 'anonymous_namespace{file}', where file will be replaced with the base
3219+# name of the file that contains the anonymous namespace. By default
3220+# anonymous namespace are hidden.
3221+
3222+EXTRACT_ANON_NSPACES = NO
3223+
3224+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
3225+# undocumented members of documented classes, files or namespaces.
3226+# If set to NO (the default) these members will be included in the
3227+# various overviews, but no documentation section is generated.
3228+# This option has no effect if EXTRACT_ALL is enabled.
3229+
3230+HIDE_UNDOC_MEMBERS = NO
3231+
3232+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
3233+# undocumented classes that are normally visible in the class hierarchy.
3234+# If set to NO (the default) these classes will be included in the various
3235+# overviews. This option has no effect if EXTRACT_ALL is enabled.
3236+
3237+HIDE_UNDOC_CLASSES = NO
3238+
3239+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
3240+# friend (class|struct|union) declarations.
3241+# If set to NO (the default) these declarations will be included in the
3242+# documentation.
3243+
3244+HIDE_FRIEND_COMPOUNDS = NO
3245+
3246+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
3247+# documentation blocks found inside the body of a function.
3248+# If set to NO (the default) these blocks will be appended to the
3249+# function's detailed documentation block.
3250+
3251+HIDE_IN_BODY_DOCS = NO
3252+
3253+# The INTERNAL_DOCS tag determines if documentation
3254+# that is typed after a \internal command is included. If the tag is set
3255+# to NO (the default) then the documentation will be excluded.
3256+# Set it to YES to include the internal documentation.
3257+
3258+INTERNAL_DOCS = NO
3259+
3260+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
3261+# file names in lower-case letters. If set to YES upper-case letters are also
3262+# allowed. This is useful if you have classes or files whose names only differ
3263+# in case and if your file system supports case sensitive file names. Windows
3264+# and Mac users are advised to set this option to NO.
3265+
3266+CASE_SENSE_NAMES = YES
3267+
3268+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
3269+# will show members with their full class and namespace scopes in the
3270+# documentation. If set to YES the scope will be hidden.
3271+
3272+HIDE_SCOPE_NAMES = NO
3273+
3274+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
3275+# will put a list of the files that are included by a file in the documentation
3276+# of that file.
3277+
3278+SHOW_INCLUDE_FILES = YES
3279+
3280+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
3281+# is inserted in the documentation for inline members.
3282+
3283+INLINE_INFO = YES
3284+
3285+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
3286+# will sort the (detailed) documentation of file and class members
3287+# alphabetically by member name. If set to NO the members will appear in
3288+# declaration order.
3289+
3290+SORT_MEMBER_DOCS = YES
3291+
3292+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
3293+# brief documentation of file, namespace and class members alphabetically
3294+# by member name. If set to NO (the default) the members will appear in
3295+# declaration order.
3296+
3297+SORT_BRIEF_DOCS = NO
3298+
3299+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the (brief and detailed) documentation of class members so that constructors and destructors are listed first. If set to NO (the default) the constructors will appear in the respective orders defined by SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
3300+
3301+SORT_MEMBERS_CTORS_1ST = NO
3302+
3303+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
3304+# hierarchy of group names into alphabetical order. If set to NO (the default)
3305+# the group names will appear in their defined order.
3306+
3307+SORT_GROUP_NAMES = NO
3308+
3309+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
3310+# sorted by fully-qualified names, including namespaces. If set to
3311+# NO (the default), the class list will be sorted only by class name,
3312+# not including the namespace part.
3313+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
3314+# Note: This option applies only to the class list, not to the
3315+# alphabetical list.
3316+
3317+SORT_BY_SCOPE_NAME = NO
3318+
3319+# The GENERATE_TODOLIST tag can be used to enable (YES) or
3320+# disable (NO) the todo list. This list is created by putting \todo
3321+# commands in the documentation.
3322+
3323+GENERATE_TODOLIST = YES
3324+
3325+# The GENERATE_TESTLIST tag can be used to enable (YES) or
3326+# disable (NO) the test list. This list is created by putting \test
3327+# commands in the documentation.
3328+
3329+GENERATE_TESTLIST = YES
3330+
3331+# The GENERATE_BUGLIST tag can be used to enable (YES) or
3332+# disable (NO) the bug list. This list is created by putting \bug
3333+# commands in the documentation.
3334+
3335+GENERATE_BUGLIST = YES
3336+
3337+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
3338+# disable (NO) the deprecated list. This list is created by putting
3339+# \deprecated commands in the documentation.
3340+
3341+GENERATE_DEPRECATEDLIST= YES
3342+
3343+# The ENABLED_SECTIONS tag can be used to enable conditional
3344+# documentation sections, marked by \if sectionname ... \endif.
3345+
3346+ENABLED_SECTIONS =
3347+
3348+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
3349+# the initial value of a variable or define consists of for it to appear in
3350+# the documentation. If the initializer consists of more lines than specified
3351+# here it will be hidden. Use a value of 0 to hide initializers completely.
3352+# The appearance of the initializer of individual variables and defines in the
3353+# documentation can be controlled using \showinitializer or \hideinitializer
3354+# command in the documentation regardless of this setting.
3355+
3356+MAX_INITIALIZER_LINES = 30
3357+
3358+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
3359+# at the bottom of the documentation of classes and structs. If set to YES the
3360+# list will mention the files that were used to generate the documentation.
3361+
3362+SHOW_USED_FILES = YES
3363+
3364+# If the sources in your project are distributed over multiple directories
3365+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
3366+# in the documentation. The default is NO.
3367+
3368+SHOW_DIRECTORIES = NO
3369+
3370+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
3371+# This will remove the Files entry from the Quick Index and from the
3372+# Folder Tree View (if specified). The default is YES.
3373+
3374+SHOW_FILES = YES
3375+
3376+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
3377+# Namespaces page.
3378+# This will remove the Namespaces entry from the Quick Index
3379+# and from the Folder Tree View (if specified). The default is YES.
3380+
3381+SHOW_NAMESPACES = YES
3382+
3383+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
3384+# doxygen should invoke to get the current version for each file (typically from
3385+# the version control system). Doxygen will invoke the program by executing (via
3386+# popen()) the command <command> <input-file>, where <command> is the value of
3387+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
3388+# provided by doxygen. Whatever the program writes to standard output
3389+# is used as the file version. See the manual for examples.
3390+
3391+FILE_VERSION_FILTER =
3392+
3393+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
3394+# doxygen. The layout file controls the global structure of the generated output files
3395+# in an output format independent way. The create the layout file that represents
3396+# doxygen's defaults, run doxygen with the -l option. You can optionally specify a
3397+# file name after the option, if omitted DoxygenLayout.xml will be used as the name
3398+# of the layout file.
3399+
3400+LAYOUT_FILE =
3401+
3402+#---------------------------------------------------------------------------
3403+# configuration options related to warning and progress messages
3404+#---------------------------------------------------------------------------
3405+
3406+# The QUIET tag can be used to turn on/off the messages that are generated
3407+# by doxygen. Possible values are YES and NO. If left blank NO is used.
3408+
3409+QUIET = NO
3410+
3411+# The WARNINGS tag can be used to turn on/off the warning messages that are
3412+# generated by doxygen. Possible values are YES and NO. If left blank
3413+# NO is used.
3414+
3415+WARNINGS = YES
3416+
3417+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
3418+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
3419+# automatically be disabled.
3420+
3421+WARN_IF_UNDOCUMENTED = NO
3422+
3423+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
3424+# potential errors in the documentation, such as not documenting some
3425+# parameters in a documented function, or documenting parameters that
3426+# don't exist or using markup commands wrongly.
3427+
3428+WARN_IF_DOC_ERROR = YES
3429+
3430+# This WARN_NO_PARAMDOC option can be abled to get warnings for
3431+# functions that are documented, but have no documentation for their parameters
3432+# or return value. If set to NO (the default) doxygen will only warn about
3433+# wrong or incomplete parameter documentation, but not about the absence of
3434+# documentation.
3435+
3436+WARN_NO_PARAMDOC = NO
3437+
3438+# The WARN_FORMAT tag determines the format of the warning messages that
3439+# doxygen can produce. The string should contain the $file, $line, and $text
3440+# tags, which will be replaced by the file and line number from which the
3441+# warning originated and the warning text. Optionally the format may contain
3442+# $version, which will be replaced by the version of the file (if it could
3443+# be obtained via FILE_VERSION_FILTER)
3444+
3445+WARN_FORMAT = "$file:$line: $text"
3446+
3447+# The WARN_LOGFILE tag can be used to specify a file to which warning
3448+# and error messages should be written. If left blank the output is written
3449+# to stderr.
3450+
3451+WARN_LOGFILE =
3452+
3453+#---------------------------------------------------------------------------
3454+# configuration options related to the input files
3455+#---------------------------------------------------------------------------
3456+
3457+# The INPUT tag can be used to specify the files and/or directories that contain
3458+# documented source files. You may enter file names like "myfile.cpp" or
3459+# directories like "/usr/src/myproject". Separate the files or directories
3460+# with spaces.
3461+
3462+INPUT = include/ src/
3463+
3464+# This tag can be used to specify the character encoding of the source files
3465+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
3466+# also the default input encoding. Doxygen uses libiconv (or the iconv built
3467+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
3468+# the list of possible encodings.
3469+
3470+INPUT_ENCODING = UTF-8
3471+
3472+# If the value of the INPUT tag contains directories, you can use the
3473+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
3474+# and *.h) to filter out the source-files in the directories. If left
3475+# blank the following patterns are tested:
3476+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
3477+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
3478+
3479+FILE_PATTERNS = *.h
3480+
3481+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
3482+# should be searched for input files as well. Possible values are YES and NO.
3483+# If left blank NO is used.
3484+
3485+RECURSIVE = YES
3486+
3487+# The EXCLUDE tag can be used to specify files and/or directories that should
3488+# excluded from the INPUT source files. This way you can easily exclude a
3489+# subdirectory from a directory tree whose root is specified with the INPUT tag.
3490+
3491+EXCLUDE =
3492+
3493+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
3494+# directories that are symbolic links (a Unix filesystem feature) are excluded
3495+# from the input.
3496+
3497+EXCLUDE_SYMLINKS = NO
3498+
3499+# If the value of the INPUT tag contains directories, you can use the
3500+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
3501+# certain files from those directories. Note that the wildcards are matched
3502+# against the file with absolute path, so to exclude all test directories
3503+# for example use the pattern */test/*
3504+
3505+EXCLUDE_PATTERNS = private*
3506+
3507+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
3508+# (namespaces, classes, functions, etc.) that should be excluded from the
3509+# output. The symbol name can be a fully qualified name, a word, or if the
3510+# wildcard * is used, a substring. Examples: ANamespace, AClass,
3511+# AClass::ANamespace, ANamespace::*Test
3512+
3513+EXCLUDE_SYMBOLS = _* *Private* *Wrap*
3514+
3515+# The EXAMPLE_PATH tag can be used to specify one or more files or
3516+# directories that contain example code fragments that are included (see
3517+# the \include command).
3518+
3519+EXAMPLE_PATH =
3520+
3521+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
3522+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
3523+# and *.h) to filter out the source-files in the directories. If left
3524+# blank all files are included.
3525+
3526+EXAMPLE_PATTERNS =
3527+
3528+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
3529+# searched for input files to be used with the \include or \dontinclude
3530+# commands irrespective of the value of the RECURSIVE tag.
3531+# Possible values are YES and NO. If left blank NO is used.
3532+
3533+EXAMPLE_RECURSIVE = NO
3534+
3535+# The IMAGE_PATH tag can be used to specify one or more files or
3536+# directories that contain image that are included in the documentation (see
3537+# the \image command).
3538+
3539+IMAGE_PATH =
3540+
3541+# The INPUT_FILTER tag can be used to specify a program that doxygen should
3542+# invoke to filter for each input file. Doxygen will invoke the filter program
3543+# by executing (via popen()) the command <filter> <input-file>, where <filter>
3544+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
3545+# input file. Doxygen will then use the output that the filter program writes
3546+# to standard output.
3547+# If FILTER_PATTERNS is specified, this tag will be
3548+# ignored.
3549+
3550+INPUT_FILTER =
3551+
3552+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
3553+# basis.
3554+# Doxygen will compare the file name with each pattern and apply the
3555+# filter if there is a match.
3556+# The filters are a list of the form:
3557+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
3558+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
3559+# is applied to all files.
3560+
3561+FILTER_PATTERNS =
3562+
3563+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
3564+# INPUT_FILTER) will be used to filter the input files when producing source
3565+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
3566+
3567+FILTER_SOURCE_FILES = NO
3568+
3569+#---------------------------------------------------------------------------
3570+# configuration options related to source browsing
3571+#---------------------------------------------------------------------------
3572+
3573+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
3574+# be generated. Documented entities will be cross-referenced with these sources.
3575+# Note: To get rid of all source code in the generated output, make sure also
3576+# VERBATIM_HEADERS is set to NO.
3577+
3578+SOURCE_BROWSER = NO
3579+
3580+# Setting the INLINE_SOURCES tag to YES will include the body
3581+# of functions and classes directly in the documentation.
3582+
3583+INLINE_SOURCES = NO
3584+
3585+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
3586+# doxygen to hide any special comment blocks from generated source code
3587+# fragments. Normal C and C++ comments will always remain visible.
3588+
3589+STRIP_CODE_COMMENTS = YES
3590+
3591+# If the REFERENCED_BY_RELATION tag is set to YES
3592+# then for each documented function all documented
3593+# functions referencing it will be listed.
3594+
3595+REFERENCED_BY_RELATION = NO
3596+
3597+# If the REFERENCES_RELATION tag is set to YES
3598+# then for each documented function all documented entities
3599+# called/used by that function will be listed.
3600+
3601+REFERENCES_RELATION = NO
3602+
3603+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
3604+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
3605+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
3606+# link to the source code.
3607+# Otherwise they will link to the documentation.
3608+
3609+REFERENCES_LINK_SOURCE = YES
3610+
3611+# If the USE_HTAGS tag is set to YES then the references to source code
3612+# will point to the HTML generated by the htags(1) tool instead of doxygen
3613+# built-in source browser. The htags tool is part of GNU's global source
3614+# tagging system (see http://www.gnu.org/software/global/global.html). You
3615+# will need version 4.8.6 or higher.
3616+
3617+USE_HTAGS = NO
3618+
3619+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
3620+# will generate a verbatim copy of the header file for each class for
3621+# which an include is specified. Set to NO to disable this.
3622+
3623+VERBATIM_HEADERS = YES
3624+
3625+#---------------------------------------------------------------------------
3626+# configuration options related to the alphabetical class index
3627+#---------------------------------------------------------------------------
3628+
3629+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
3630+# of all compounds will be generated. Enable this if the project
3631+# contains a lot of classes, structs, unions or interfaces.
3632+
3633+ALPHABETICAL_INDEX = YES
3634+
3635+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
3636+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
3637+# in which this list will be split (can be a number in the range [1..20])
3638+
3639+COLS_IN_ALPHA_INDEX = 5
3640+
3641+# In case all classes in a project start with a common prefix, all
3642+# classes will be put under the same header in the alphabetical index.
3643+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
3644+# should be ignored while generating the index headers.
3645+
3646+IGNORE_PREFIX = _,Private
3647+
3648+#---------------------------------------------------------------------------
3649+# configuration options related to the HTML output
3650+#---------------------------------------------------------------------------
3651+
3652+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
3653+# generate HTML output.
3654+
3655+GENERATE_HTML = YES
3656+
3657+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
3658+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
3659+# put in front of it. If left blank `html' will be used as the default path.
3660+
3661+HTML_OUTPUT = html
3662+
3663+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
3664+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
3665+# doxygen will generate files with .html extension.
3666+
3667+HTML_FILE_EXTENSION = .html
3668+
3669+# The HTML_HEADER tag can be used to specify a personal HTML header for
3670+# each generated HTML page. If it is left blank doxygen will generate a
3671+# standard header.
3672+
3673+HTML_HEADER =
3674+
3675+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
3676+# each generated HTML page. If it is left blank doxygen will generate a
3677+# standard footer.
3678+
3679+HTML_FOOTER =
3680+
3681+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
3682+# style sheet that is used by each HTML page. It can be used to
3683+# fine-tune the look of the HTML output. If the tag is left blank doxygen
3684+# will generate a default style sheet. Note that doxygen will try to copy
3685+# the style sheet file to the HTML output directory, so don't put your own
3686+# stylesheet in the HTML output directory as well, or it will be erased!
3687+
3688+HTML_STYLESHEET =
3689+
3690+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
3691+# files or namespaces will be aligned in HTML using tables. If set to
3692+# NO a bullet list will be used.
3693+
3694+HTML_ALIGN_MEMBERS = YES
3695+
3696+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
3697+# documentation will contain sections that can be hidden and shown after the
3698+# page has loaded. For this to work a browser that supports
3699+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
3700+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
3701+
3702+HTML_DYNAMIC_SECTIONS = YES
3703+
3704+# If the GENERATE_DOCSET tag is set to YES, additional index files
3705+# will be generated that can be used as input for Apple's Xcode 3
3706+# integrated development environment, introduced with OSX 10.5 (Leopard).
3707+# To create a documentation set, doxygen will generate a Makefile in the
3708+# HTML output directory. Running make will produce the docset in that
3709+# directory and running "make install" will install the docset in
3710+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
3711+# it at startup.
3712+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
3713+
3714+GENERATE_DOCSET = NO
3715+
3716+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
3717+# feed. A documentation feed provides an umbrella under which multiple
3718+# documentation sets from a single provider (such as a company or product suite)
3719+# can be grouped.
3720+
3721+DOCSET_FEEDNAME = "Doxygen generated docs"
3722+
3723+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
3724+# should uniquely identify the documentation set bundle. This should be a
3725+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
3726+# will append .docset to the name.
3727+
3728+DOCSET_BUNDLE_ID = org.doxygen.Project
3729+
3730+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
3731+# will be generated that can be used as input for tools like the
3732+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
3733+# of the generated HTML documentation.
3734+
3735+GENERATE_HTMLHELP = NO
3736+
3737+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
3738+# be used to specify the file name of the resulting .chm file. You
3739+# can add a path in front of the file if the result should not be
3740+# written to the html output directory.
3741+
3742+CHM_FILE =
3743+
3744+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
3745+# be used to specify the location (absolute path including file name) of
3746+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
3747+# the HTML help compiler on the generated index.hhp.
3748+
3749+HHC_LOCATION =
3750+
3751+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
3752+# controls if a separate .chi index file is generated (YES) or that
3753+# it should be included in the master .chm file (NO).
3754+
3755+GENERATE_CHI = NO
3756+
3757+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
3758+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
3759+# content.
3760+
3761+CHM_INDEX_ENCODING =
3762+
3763+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
3764+# controls whether a binary table of contents is generated (YES) or a
3765+# normal table of contents (NO) in the .chm file.
3766+
3767+BINARY_TOC = NO
3768+
3769+# The TOC_EXPAND flag can be set to YES to add extra items for group members
3770+# to the contents of the HTML help documentation and to the tree view.
3771+
3772+TOC_EXPAND = NO
3773+
3774+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER
3775+# are set, an additional index file will be generated that can be used as input for
3776+# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated
3777+# HTML documentation.
3778+
3779+GENERATE_QHP = NO
3780+
3781+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
3782+# be used to specify the file name of the resulting .qch file.
3783+# The path specified is relative to the HTML output folder.
3784+
3785+QCH_FILE =
3786+
3787+# The QHP_NAMESPACE tag specifies the namespace to use when generating
3788+# Qt Help Project output. For more information please see
3789+# http://doc.trolltech.com/qthelpproject.html#namespace
3790+
3791+QHP_NAMESPACE =
3792+
3793+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
3794+# Qt Help Project output. For more information please see
3795+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
3796+
3797+QHP_VIRTUAL_FOLDER = doc
3798+
3799+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add.
3800+# For more information please see
3801+# http://doc.trolltech.com/qthelpproject.html#custom-filters
3802+
3803+QHP_CUST_FILTER_NAME =
3804+
3805+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see
3806+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
3807+
3808+QHP_CUST_FILTER_ATTRS =
3809+
3810+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's
3811+# filter section matches.
3812+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
3813+
3814+QHP_SECT_FILTER_ATTRS =
3815+
3816+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
3817+# be used to specify the location of Qt's qhelpgenerator.
3818+# If non-empty doxygen will try to run qhelpgenerator on the generated
3819+# .qhp file.
3820+
3821+QHG_LOCATION =
3822+
3823+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
3824+# top of each HTML page. The value NO (the default) enables the index and
3825+# the value YES disables it.
3826+
3827+DISABLE_INDEX = NO
3828+
3829+# This tag can be used to set the number of enum values (range [1..20])
3830+# that doxygen will group on one line in the generated HTML documentation.
3831+
3832+ENUM_VALUES_PER_LINE = 4
3833+
3834+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
3835+# structure should be generated to display hierarchical information.
3836+# If the tag value is set to YES, a side panel will be generated
3837+# containing a tree-like index structure (just like the one that
3838+# is generated for HTML Help). For this to work a browser that supports
3839+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
3840+# Windows users are probably better off using the HTML help feature.
3841+
3842+GENERATE_TREEVIEW = NO
3843+
3844+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
3845+# and Class Hierarchy pages using a tree view instead of an ordered list.
3846+
3847+USE_INLINE_TREES = NO
3848+
3849+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
3850+# used to set the initial width (in pixels) of the frame in which the tree
3851+# is shown.
3852+
3853+TREEVIEW_WIDTH = 250
3854+
3855+# Use this tag to change the font size of Latex formulas included
3856+# as images in the HTML documentation. The default is 10. Note that
3857+# when you change the font size after a successful doxygen run you need
3858+# to manually remove any form_*.png images from the HTML output directory
3859+# to force them to be regenerated.
3860+
3861+FORMULA_FONTSIZE = 10
3862+
3863+# When the SEARCHENGINE tag is enable doxygen will generate a search box for the HTML output. The underlying search engine uses javascript
3864+# and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP) or Qt help (GENERATE_QHP)
3865+# there is already a search function so this one should typically
3866+# be disabled.
3867+
3868+SEARCHENGINE = YES
3869+
3870+#---------------------------------------------------------------------------
3871+# configuration options related to the LaTeX output
3872+#---------------------------------------------------------------------------
3873+
3874+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
3875+# generate Latex output.
3876+
3877+GENERATE_LATEX = NO
3878+
3879+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
3880+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
3881+# put in front of it. If left blank `latex' will be used as the default path.
3882+
3883+LATEX_OUTPUT = latex
3884+
3885+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
3886+# invoked. If left blank `latex' will be used as the default command name.
3887+
3888+LATEX_CMD_NAME = latex
3889+
3890+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
3891+# generate index for LaTeX. If left blank `makeindex' will be used as the
3892+# default command name.
3893+
3894+MAKEINDEX_CMD_NAME = makeindex
3895+
3896+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
3897+# LaTeX documents. This may be useful for small projects and may help to
3898+# save some trees in general.
3899+
3900+COMPACT_LATEX = NO
3901+
3902+# The PAPER_TYPE tag can be used to set the paper type that is used
3903+# by the printer. Possible values are: a4, a4wide, letter, legal and
3904+# executive. If left blank a4wide will be used.
3905+
3906+PAPER_TYPE = a4wide
3907+
3908+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
3909+# packages that should be included in the LaTeX output.
3910+
3911+EXTRA_PACKAGES =
3912+
3913+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
3914+# the generated latex document. The header should contain everything until
3915+# the first chapter. If it is left blank doxygen will generate a
3916+# standard header. Notice: only use this tag if you know what you are doing!
3917+
3918+LATEX_HEADER =
3919+
3920+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
3921+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
3922+# contain links (just like the HTML output) instead of page references
3923+# This makes the output suitable for online browsing using a pdf viewer.
3924+
3925+PDF_HYPERLINKS = YES
3926+
3927+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
3928+# plain latex in the generated Makefile. Set this option to YES to get a
3929+# higher quality PDF documentation.
3930+
3931+USE_PDFLATEX = YES
3932+
3933+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
3934+# command to the generated LaTeX files. This will instruct LaTeX to keep
3935+# running if errors occur, instead of asking the user for help.
3936+# This option is also used when generating formulas in HTML.
3937+
3938+LATEX_BATCHMODE = NO
3939+
3940+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
3941+# include the index chapters (such as File Index, Compound Index, etc.)
3942+# in the output.
3943+
3944+LATEX_HIDE_INDICES = NO
3945+
3946+# If LATEX_SOURCE_CODE is set to YES then doxygen will include source code with syntax highlighting in the LaTeX output. Note that which sources are shown also depends on other settings such as SOURCE_BROWSER.
3947+
3948+LATEX_SOURCE_CODE = NO
3949+
3950+#---------------------------------------------------------------------------
3951+# configuration options related to the RTF output
3952+#---------------------------------------------------------------------------
3953+
3954+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
3955+# The RTF output is optimized for Word 97 and may not look very pretty with
3956+# other RTF readers or editors.
3957+
3958+GENERATE_RTF = NO
3959+
3960+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
3961+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
3962+# put in front of it. If left blank `rtf' will be used as the default path.
3963+
3964+RTF_OUTPUT = rtf
3965+
3966+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
3967+# RTF documents. This may be useful for small projects and may help to
3968+# save some trees in general.
3969+
3970+COMPACT_RTF = NO
3971+
3972+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
3973+# will contain hyperlink fields. The RTF file will
3974+# contain links (just like the HTML output) instead of page references.
3975+# This makes the output suitable for online browsing using WORD or other
3976+# programs which support those fields.
3977+# Note: wordpad (write) and others do not support links.
3978+
3979+RTF_HYPERLINKS = NO
3980+
3981+# Load stylesheet definitions from file. Syntax is similar to doxygen's
3982+# config file, i.e. a series of assignments. You only have to provide
3983+# replacements, missing definitions are set to their default value.
3984+
3985+RTF_STYLESHEET_FILE =
3986+
3987+# Set optional variables used in the generation of an rtf document.
3988+# Syntax is similar to doxygen's config file.
3989+
3990+RTF_EXTENSIONS_FILE =
3991+
3992+#---------------------------------------------------------------------------
3993+# configuration options related to the man page output
3994+#---------------------------------------------------------------------------
3995+
3996+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
3997+# generate man pages
3998+
3999+GENERATE_MAN = NO
4000+
4001+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
4002+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
4003+# put in front of it. If left blank `man' will be used as the default path.
4004+
4005+MAN_OUTPUT = man
4006+
4007+# The MAN_EXTENSION tag determines the extension that is added to
4008+# the generated man pages (default is the subroutine's section .3)
4009+
4010+MAN_EXTENSION = .3
4011+
4012+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
4013+# then it will generate one additional man file for each entity
4014+# documented in the real man page(s). These additional files
4015+# only source the real man page, but without them the man command
4016+# would be unable to find the correct page. The default is NO.
4017+
4018+MAN_LINKS = NO
4019+
4020+#---------------------------------------------------------------------------
4021+# configuration options related to the XML output
4022+#---------------------------------------------------------------------------
4023+
4024+# If the GENERATE_XML tag is set to YES Doxygen will
4025+# generate an XML file that captures the structure of
4026+# the code including all documentation.
4027+
4028+GENERATE_XML = NO
4029+
4030+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
4031+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
4032+# put in front of it. If left blank `xml' will be used as the default path.
4033+
4034+XML_OUTPUT = xml
4035+
4036+# The XML_SCHEMA tag can be used to specify an XML schema,
4037+# which can be used by a validating XML parser to check the
4038+# syntax of the XML files.
4039+
4040+XML_SCHEMA =
4041+
4042+# The XML_DTD tag can be used to specify an XML DTD,
4043+# which can be used by a validating XML parser to check the
4044+# syntax of the XML files.
4045+
4046+XML_DTD =
4047+
4048+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
4049+# dump the program listings (including syntax highlighting
4050+# and cross-referencing information) to the XML output. Note that
4051+# enabling this will significantly increase the size of the XML output.
4052+
4053+XML_PROGRAMLISTING = YES
4054+
4055+#---------------------------------------------------------------------------
4056+# configuration options for the AutoGen Definitions output
4057+#---------------------------------------------------------------------------
4058+
4059+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
4060+# generate an AutoGen Definitions (see autogen.sf.net) file
4061+# that captures the structure of the code including all
4062+# documentation. Note that this feature is still experimental
4063+# and incomplete at the moment.
4064+
4065+GENERATE_AUTOGEN_DEF = NO
4066+
4067+#---------------------------------------------------------------------------
4068+# configuration options related to the Perl module output
4069+#---------------------------------------------------------------------------
4070+
4071+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
4072+# generate a Perl module file that captures the structure of
4073+# the code including all documentation. Note that this
4074+# feature is still experimental and incomplete at the
4075+# moment.
4076+
4077+GENERATE_PERLMOD = NO
4078+
4079+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
4080+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
4081+# to generate PDF and DVI output from the Perl module output.
4082+
4083+PERLMOD_LATEX = NO
4084+
4085+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
4086+# nicely formatted so it can be parsed by a human reader.
4087+# This is useful
4088+# if you want to understand what is going on.
4089+# On the other hand, if this
4090+# tag is set to NO the size of the Perl module output will be much smaller
4091+# and Perl will parse it just the same.
4092+
4093+PERLMOD_PRETTY = YES
4094+
4095+# The names of the make variables in the generated doxyrules.make file
4096+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
4097+# This is useful so different doxyrules.make files included by the same
4098+# Makefile don't overwrite each other's variables.
4099+
4100+PERLMOD_MAKEVAR_PREFIX =
4101+
4102+#---------------------------------------------------------------------------
4103+# Configuration options related to the preprocessor
4104+#---------------------------------------------------------------------------
4105+
4106+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
4107+# evaluate all C-preprocessor directives found in the sources and include
4108+# files.
4109+
4110+ENABLE_PREPROCESSING = YES
4111+
4112+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
4113+# names in the source code. If set to NO (the default) only conditional
4114+# compilation will be performed. Macro expansion can be done in a controlled
4115+# way by setting EXPAND_ONLY_PREDEF to YES.
4116+
4117+MACRO_EXPANSION = NO
4118+
4119+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
4120+# then the macro expansion is limited to the macros specified with the
4121+# PREDEFINED and EXPAND_AS_DEFINED tags.
4122+
4123+EXPAND_ONLY_PREDEF = NO
4124+
4125+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
4126+# in the INCLUDE_PATH (see below) will be search if a #include is found.
4127+
4128+SEARCH_INCLUDES = YES
4129+
4130+# The INCLUDE_PATH tag can be used to specify one or more directories that
4131+# contain include files that are not input files but should be processed by
4132+# the preprocessor.
4133+
4134+INCLUDE_PATH =
4135+
4136+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
4137+# patterns (like *.h and *.hpp) to filter out the header-files in the
4138+# directories. If left blank, the patterns specified with FILE_PATTERNS will
4139+# be used.
4140+
4141+INCLUDE_FILE_PATTERNS =
4142+
4143+# The PREDEFINED tag can be used to specify one or more macro names that
4144+# are defined before the preprocessor is started (similar to the -D option of
4145+# gcc). The argument of the tag is a list of macros of the form: name
4146+# or name=definition (no spaces). If the definition and the = are
4147+# omitted =1 is assumed. To prevent a macro definition from being
4148+# undefined via #undef or recursively expanded use the := operator
4149+# instead of the = operator.
4150+
4151+PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
4152+
4153+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
4154+# this tag can be used to specify a list of macro names that should be expanded.
4155+# The macro definition that is found in the sources will be used.
4156+# Use the PREDEFINED tag if you want to use a different macro definition.
4157+
4158+EXPAND_AS_DEFINED =
4159+
4160+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
4161+# doxygen's preprocessor will remove all function-like macros that are alone
4162+# on a line, have an all uppercase name, and do not end with a semicolon. Such
4163+# function macros are typically used for boiler-plate code, and will confuse
4164+# the parser if not removed.
4165+
4166+SKIP_FUNCTION_MACROS = YES
4167+
4168+#---------------------------------------------------------------------------
4169+# Configuration::additions related to external references
4170+#---------------------------------------------------------------------------
4171+
4172+# The TAGFILES option can be used to specify one or more tagfiles.
4173+# Optionally an initial location of the external documentation
4174+# can be added for each tagfile. The format of a tag file without
4175+# this location is as follows:
4176+#
4177+# TAGFILES = file1 file2 ...
4178+# Adding location for the tag files is done as follows:
4179+#
4180+# TAGFILES = file1=loc1 "file2 = loc2" ...
4181+# where "loc1" and "loc2" can be relative or absolute paths or
4182+# URLs. If a location is present for each tag, the installdox tool
4183+# does not have to be run to correct the links.
4184+# Note that each tag file must have a unique name
4185+# (where the name does NOT include the path)
4186+# If a tag file is not located in the directory in which doxygen
4187+# is run, you must also specify the path to the tagfile here.
4188+
4189+TAGFILES =
4190+
4191+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
4192+# a tag file that is based on the input files it reads.
4193+
4194+GENERATE_TAGFILE =
4195+
4196+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
4197+# in the class index. If set to NO only the inherited external classes
4198+# will be listed.
4199+
4200+ALLEXTERNALS = NO
4201+
4202+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
4203+# in the modules index. If set to NO, only the current project's groups will
4204+# be listed.
4205+
4206+EXTERNAL_GROUPS = YES
4207+
4208+# The PERL_PATH should be the absolute path and name of the perl script
4209+# interpreter (i.e. the result of `which perl').
4210+
4211+PERL_PATH = /usr/bin/perl
4212+
4213+#---------------------------------------------------------------------------
4214+# Configuration options related to the dot tool
4215+#---------------------------------------------------------------------------
4216+
4217+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
4218+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
4219+# or super classes. Setting the tag to NO turns the diagrams off. Note that
4220+# this option is superseded by the HAVE_DOT option below. This is only a
4221+# fallback. It is recommended to install and use dot, since it yields more
4222+# powerful graphs.
4223+
4224+CLASS_DIAGRAMS = NO
4225+
4226+# You can define message sequence charts within doxygen comments using the \msc
4227+# command. Doxygen will then run the mscgen tool (see
4228+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
4229+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
4230+# the mscgen tool resides. If left empty the tool is assumed to be found in the
4231+# default search path.
4232+
4233+MSCGEN_PATH =
4234+
4235+# If set to YES, the inheritance and collaboration graphs will hide
4236+# inheritance and usage relations if the target is undocumented
4237+# or is not a class.
4238+
4239+HIDE_UNDOC_RELATIONS = YES
4240+
4241+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
4242+# available from the path. This tool is part of Graphviz, a graph visualization
4243+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
4244+# have no effect if this option is set to NO (the default)
4245+
4246+HAVE_DOT = NO
4247+
4248+# By default doxygen will write a font called FreeSans.ttf to the output
4249+# directory and reference it in all dot files that doxygen generates. This
4250+# font does not include all possible unicode characters however, so when you need
4251+# these (or just want a differently looking font) you can specify the font name
4252+# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
4253+# which can be done by putting it in a standard location or by setting the
4254+# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
4255+# containing the font.
4256+
4257+DOT_FONTNAME = FreeSans
4258+
4259+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
4260+# The default size is 10pt.
4261+
4262+DOT_FONTSIZE = 10
4263+
4264+# By default doxygen will tell dot to use the output directory to look for the
4265+# FreeSans.ttf font (which doxygen will put there itself). If you specify a
4266+# different font using DOT_FONTNAME you can set the path where dot
4267+# can find it using this tag.
4268+
4269+DOT_FONTPATH =
4270+
4271+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
4272+# will generate a graph for each documented class showing the direct and
4273+# indirect inheritance relations. Setting this tag to YES will force the
4274+# the CLASS_DIAGRAMS tag to NO.
4275+
4276+CLASS_GRAPH = YES
4277+
4278+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
4279+# will generate a graph for each documented class showing the direct and
4280+# indirect implementation dependencies (inheritance, containment, and
4281+# class references variables) of the class with other documented classes.
4282+
4283+COLLABORATION_GRAPH = YES
4284+
4285+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
4286+# will generate a graph for groups, showing the direct groups dependencies
4287+
4288+GROUP_GRAPHS = YES
4289+
4290+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
4291+# collaboration diagrams in a style similar to the OMG's Unified Modeling
4292+# Language.
4293+
4294+UML_LOOK = NO
4295+
4296+# If set to YES, the inheritance and collaboration graphs will show the
4297+# relations between templates and their instances.
4298+
4299+TEMPLATE_RELATIONS = NO
4300+
4301+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
4302+# tags are set to YES then doxygen will generate a graph for each documented
4303+# file showing the direct and indirect include dependencies of the file with
4304+# other documented files.
4305+
4306+INCLUDE_GRAPH = NO
4307+
4308+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
4309+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
4310+# documented header file showing the documented files that directly or
4311+# indirectly include this file.
4312+
4313+INCLUDED_BY_GRAPH = YES
4314+
4315+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
4316+# doxygen will generate a call dependency graph for every global function
4317+# or class method. Note that enabling this option will significantly increase
4318+# the time of a run. So in most cases it will be better to enable call graphs
4319+# for selected functions only using the \callgraph command.
4320+
4321+CALL_GRAPH = NO
4322+
4323+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
4324+# doxygen will generate a caller dependency graph for every global function
4325+# or class method. Note that enabling this option will significantly increase
4326+# the time of a run. So in most cases it will be better to enable caller
4327+# graphs for selected functions only using the \callergraph command.
4328+
4329+CALLER_GRAPH = NO
4330+
4331+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
4332+# will graphical hierarchy of all classes instead of a textual one.
4333+
4334+GRAPHICAL_HIERARCHY = YES
4335+
4336+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
4337+# then doxygen will show the dependencies a directory has on other directories
4338+# in a graphical way. The dependency relations are determined by the #include
4339+# relations between the files in the directories.
4340+
4341+DIRECTORY_GRAPH = YES
4342+
4343+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
4344+# generated by dot. Possible values are png, jpg, or gif
4345+# If left blank png will be used.
4346+
4347+DOT_IMAGE_FORMAT = png
4348+
4349+# The tag DOT_PATH can be used to specify the path where the dot tool can be
4350+# found. If left blank, it is assumed the dot tool can be found in the path.
4351+
4352+DOT_PATH =
4353+
4354+# The DOTFILE_DIRS tag can be used to specify one or more directories that
4355+# contain dot files that are included in the documentation (see the
4356+# \dotfile command).
4357+
4358+DOTFILE_DIRS =
4359+
4360+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
4361+# nodes that will be shown in the graph. If the number of nodes in a graph
4362+# becomes larger than this value, doxygen will truncate the graph, which is
4363+# visualized by representing a node as a red box. Note that doxygen if the
4364+# number of direct children of the root node in a graph is already larger than
4365+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
4366+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
4367+
4368+DOT_GRAPH_MAX_NODES = 50
4369+
4370+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
4371+# graphs generated by dot. A depth value of 3 means that only nodes reachable
4372+# from the root by following a path via at most 3 edges will be shown. Nodes
4373+# that lay further from the root node will be omitted. Note that setting this
4374+# option to 1 or 2 may greatly reduce the computation time needed for large
4375+# code bases. Also note that the size of a graph can be further restricted by
4376+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
4377+
4378+MAX_DOT_GRAPH_DEPTH = 0
4379+
4380+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
4381+# background. This is disabled by default, because dot on Windows does not
4382+# seem to support this out of the box. Warning: Depending on the platform used,
4383+# enabling this option may lead to badly anti-aliased labels on the edges of
4384+# a graph (i.e. they become hard to read).
4385+
4386+DOT_TRANSPARENT = NO
4387+
4388+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
4389+# files in one run (i.e. multiple -o and -T options on the command line). This
4390+# makes dot run faster, but since only newer versions of dot (>1.8.10)
4391+# support this, this feature is disabled by default.
4392+
4393+DOT_MULTI_TARGETS = YES
4394+
4395+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
4396+# generate a legend page explaining the meaning of the various boxes and
4397+# arrows in the dot generated graphs.
4398+
4399+GENERATE_LEGEND = YES
4400+
4401+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
4402+# remove the intermediate dot files that are used to generate
4403+# the various graphs.
4404+
4405+DOT_CLEANUP = YES
4406
4407=== added file 'INSTALL'
4408--- INSTALL 1970-01-01 00:00:00 +0000
4409+++ INSTALL 2011-03-30 12:34:28 +0000
4410@@ -0,0 +1,18 @@
4411+compiz uses libstartup-notification which is available at
4412+ftp://ftp.gnome.org/pub/GNOME/sources/startup-notification/
4413+
4414+compiz uses out-of-tree builds with cmake, in order to generate the Makefiles for compiz use:
4415+
4416+ $ mkdir build
4417+ $ cd build
4418+ $ cmake ..
4419+
4420+After that, standard build procedures apply:
4421+
4422+ $ make
4423+ # make install
4424+
4425+In order to build other plugins, you will need to install the compiz cmake set
4426+
4427+ # make findcompiz_install
4428+
4429
4430=== added file 'NEWS'
4431--- NEWS 1970-01-01 00:00:00 +0000
4432+++ NEWS 2011-03-30 12:34:28 +0000
4433@@ -0,0 +1,498 @@
4434+Release 0.9.4 (2010-02-24 Sam Spilsbury <sam.spilsbury@canonical.com>)
4435+========================================================================
4436+Development Release.
4437+
4438+Main loop implementation now replaced by the GLib main loop, use custom
4439+event sources and event dispatch synchronisation. Allows better integration
4440+with plugins that require tight timing with GLib timers
4441+
4442+Moved image and data generation into buildsystem extensions, and installation
4443+of such data into namespaced areas on the filesystem so plugins can't
4444+overwrite other plugin's data
4445+
4446+Intelligently clip window shadows in decor
4447+
4448+Fixed a number of 2D decoration issues
4449+
4450+Fixed a number of reparenting, stacking and focus issues
4451+
4452+Support different frame types in gtk-window-decorator
4453+
4454+
4455+Release 0.9.2.1 (2010-11-06 Sam Spilsbury <sam.spilsbury@canonical.com>)
4456+========================================================================
4457+Bugfix release.
4458+
4459+
4460+Release 0.9.2 (2010-10-24 Sam Spilsbury <smspillaz@gmail.com>)
4461+==============================================================
4462+Development release.
4463+
4464+Made minimization functions wrappable
4465+
4466+Decorators now get shadow settings from window properties on the root
4467+window and not through gconf, kconfig or dbus
4468+
4469+Allow resizing from the center of the window
4470+
4471+Clean up gtk-window-decorator
4472+
4473+Fixed a number of reparenting bugs
4474+
4475+Release 0.9.0 (2010-07-03 Sam Spilsbury <smspillaz@gmail.com>)
4476+==============================================================
4477+Development release.
4478+
4479+Rewritten core in C++.
4480+
4481+Rewritten plugin APIs.
4482+
4483+Rewritten buildsystem in CMake, supports option code autogeneration,
4484+plugin build dependency handling, amongst other things.
4485+
4486+Smart wrappable functions, enables saving on otherwise useless CPU cycles.
4487+
4488+Reparenting window decorations.
4489+
4490+Support for tiled textures and screen sizes larger than max_texture_size
4491+through the use of the copytex plugin.
4492+
4493+Composite and OpenGL based rendering dropped from core, split into the
4494+opengl and composite plugins, which represent a step towards pluggable
4495+rendering backends.
4496+
4497+Ability to run in non composited mode added to gtk-window-decorator
4498+and kde4-window-decorator.
4499+
4500+kde-window-decorator dropped.
4501+
4502+Added KDE plugin to integrate with the QT main loop and create a KApplication
4503+for KCrash support on KDE.
4504+
4505+dbus plugin now uses screen number to identify compiz instance.
4506+
4507+Dropped multi-screen mode, launch compiz on individual screens instead.
4508+
4509+Shape drawing mode added to annotate plugin.
4510+
4511+Fixed screen updates issue in annotate plugin.
4512+
4513+Added serialization interface, which allows plugins to save/restore activity
4514+states between plugin and compiz reloads. Serialization info is stored in
4515+X11 window properties and is automatically dropped by the X Server when
4516+the window is destroyed.
4517+
4518+Added compiztoolbox library plugin used by switchers and screenshot, which
4519+provide a simple interface for accessing XDG and drawing thumbnails.
4520+
4521+Release 0.8.6 (2010-03-28 Danny Baumann <dannybaumann@web.de>)
4522+==============================================================
4523+Maintenance release.
4524+
4525+Various focus and window placement fixes.
4526+
4527+Fixed handling of windows that have a (server-drawn) border.
4528+
4529+Fixed handling of window icons that have a colour depth of 1 bit.
4530+
4531+Added KDE 4.4 support to KDE4 window decorator.
4532+
4533+Release 0.8.4 (2009-10-14 Erkin Bahceci <erkinbah@gmail.com>)
4534+=============================================================
4535+Maintenance release.
4536+
4537+Fixed many crashes (including doPoll/eventLoop ones).
4538+
4539+Various memory leak fixes.
4540+
4541+Fixed lost window issues with windows that are visible on all workspaces.
4542+
4543+Fixed lost window issue when reducing the number of workspaces.
4544+
4545+Fixed placing of dialogs (e.g. PolicyKit) behind currently focused window.
4546+
4547+Fixed placing of new windows behind fullscreen window.
4548+
4549+Fixed and improved screen resolution change handling (Compiz now remembers
4550+original window size and position).
4551+
4552+Lowering a window now activates the topmost window when click-to-focus is on.
4553+
4554+Fixed wobbly title bar hiding and bouncing near panel edges.
4555+
4556+Screenshot plugin now saves to the correct desktop directory by default.
4557+
4558+Fixed inconsistent icon sizes in switcher plugin.
4559+
4560+Improved constraining of window size and position in move, resize, and wobbly.
4561+
4562+Ported KDE4 window decorator to KDE 4.3.
4563+
4564+Added support for _NET_REQUEST_FRAME_EXTENTS and _NET_SUPPORT_FULL_PLACEMENT
4565+EWMH hints.
4566+
4567+Release 0.8.2 (2009-03-01 Danny Baumann <dannybaumann@web.de>)
4568+==============================================================
4569+Maintenance release.
4570+
4571+Fixed issue in strut handling that could lead to struts being ignored
4572+for certain monitor configurations.
4573+
4574+Fixed window position constraining logic.
4575+
4576+Fixed kconfig xslt files missing from 0.8.0 tarball.
4577+
4578+Release 0.8.0 (2009-02-20 Danny Baumann <dannybaumann@web.de>)
4579+==============================================================
4580+Fourth stable release of compiz.
4581+
4582+New plugin "commands" that handles the bindings for arbitrary commands that
4583+previously were handled in core. In addition to the previously present key
4584+bindings button and edge bindings were added as well.
4585+
4586+New plugin "gnomecompat" which handles bindings that are exclusively used
4587+in the Gnome desktop environment and removed the corresponding bindings
4588+from core. This change fixes main menu and run dialog bindings for KDE users
4589+as those previously were conflicting between compiz and KDE. Gnome users
4590+upgrading should make sure to enable this plugin.
4591+
4592+Added support for _NET_WM_FULLSCREEN_MONITORS EWMH hint.
4593+
4594+Added support for reading the icon hint from the WM_HINTS property if
4595+_NET_WM_ICON is not available.
4596+
4597+Update Gnome support for Gnome 2.24.
4598+
4599+Added options to scale plugin that allow "toggle type" behaviour for
4600+key and button bindings.
4601+
4602+Several memory leak fixes.
4603+
4604+Adjusted gtk-window-decorator for newer libmetacity-private versions.
4605+
4606+Fixed gtk-window-decorator display for RTL languages.
4607+
4608+Adjusted kde4-window-decorator for KDE 4.2 API.
4609+
4610+Large number of minor bug fixes, especially in resize handling and
4611+stacking code.
4612+
4613+Translation updates
4614+
4615+Release 0.7.8 (2008-09-17 Danny Baumann <dannybaumann@web.de>)
4616+==============================================================
4617+Development release.
4618+
4619+New plugin "obs" that handles opacity, brightness and saturation bindings
4620+and matches.
4621+
4622+Put unresponsive window greyout, including options to configure it, to
4623+fade plugin.
4624+
4625+Add "constant fade time" fade mode to fade plugin.
4626+
4627+Removed opacity bindings and matches from core. Users that entered opacity
4628+matches should enable the obs plugin and enter the matches there.
4629+
4630+Enhanced timer infrastructure to allow synchronization of execution of
4631+multiple timer callbacks.
4632+
4633+Added matching for window's alpha channel (match type rgba=[0|1]).
4634+
4635+Reflect new Metacity "spacer" button type in gtk-window-decorator.
4636+
4637+Various bugfixes.
4638+
4639+Translation updates.
4640+
4641+Release 0.7.6 (2008-05-29 Dennis Kasprzyk <onestone@opencompositing.org>)
4642+=========================================================================
4643+Development release.
4644+
4645+Rewrite of place plugin, which significantly improves multi-output
4646+behaviour.
4647+
4648+Configurable multi-output behaviour in place.
4649+
4650+Removed plane plugin. Former plane plugin users are encouraged to use
4651+the wall plugin of Compiz Fusion.
4652+
4653+Removed cube wallpaper painting. Users are encouraged to use the Compiz
4654+Fusion wallpaper plugin instead.
4655+
4656+Place plugin viewport placement viewport numbers are now 1-based.
4657+
4658+Panel and desktop selection mode in switcher plugin.
4659+
4660+Improved painting behaviour when using overlapping outputs.
4661+
4662+Gtk-window-decorator now emits accessibility events when switching.
4663+
4664+Gtk-window-decorator behaviour when using Metacity themes has been
4665+improved to match Metacity better.
4666+
4667+KDE4-window-decorator has been adapted to current KDE4 API.
4668+
4669+Various bugfixes.
4670+
4671+Release 0.7.4 (2008-03-04 Dennis Kasprzyk <onestone@opencompositing.org>)
4672+=========================================================================
4673+Development release.
4674+
4675+Configurable handling of overlapping output devices.
4676+
4677+Enhanced focus stealing prevention with configurable amount of focus
4678+stealing prevention.
4679+
4680+Added configurable, optional delay for edge actions to prevent
4681+accidential invocation.
4682+
4683+Generalized vertex system to improve plugin compatibility.
4684+
4685+Optimized gaussian blur shaders to support more hardware.
4686+
4687+Improved unredirection of fullscreen windows.
4688+
4689+Several bugfixes.
4690+
4691+Translation updates.
4692+
4693+Release 0.7.2 (2008-03-06 Dennis Kasprzyk <onestone@opencompositing.org>)
4694+=========================================================================
4695+Development release.
4696+
4697+Several bugfixes
4698+
4699+Translation support in gtk-window-decorator.
4700+
4701+Updated translations.
4702+
4703+Added wrapable session functions to core. This allows to provide a full session save/restore in a plugin.
4704+
4705+Release 0.7.0 (2008-02-07 Dennis Kasprzyk <onestone@opencompositing.org>)
4706+=========================================================================
4707+Development release.
4708+
4709+A core plugin has been added that allows handling certain core APIs, such as
4710+querying the ABI version, similarly to plugin APIs, allowing sharing more
4711+code.
4712+
4713+Added a simple object system, which generalize the privates mechanism and the plugin system. It allows to share more code between display, screen and window objects. It also makes it possible to properly introduce new object types without changing the plugin interface or breaking the API.
4714+
4715+Multi-display support.
4716+
4717+Various fixes in ICCCM compliance, window stacking and focus handling.
4718+
4719+Validity checking of ConfigureRequest events.
4720+
4721+Fixes to transient children placement in place plugin.
4722+
4723+Hooks have been added to the cube plugin which allow better control of
4724+viewport drawing.
4725+
4726+Middle and right click actions have been made configurable in
4727+gtk-window-decorator.
4728+
4729+Gtk-window-decorator now optionally allows mouse wheel title bar actions, such
4730+as shading.
4731+
4732+A KDE4 port of the kde-window-decorator has been added.
4733+
4734+Frequent crashes of kde-window-decorator for some people have been fixed.
4735+
4736+
4737+Release 0.5.4 (2007-08-20 David Reveman <davidr@novell.com>)
4738+============================================================
4739+Development release.
4740+
4741+XCB is now required.
4742+
4743+Major improvements to option system that makes
4744+configuration backend integration much less complex.
4745+
4746+Kconfig plugin that provides proper KDE configuration
4747+support.
4748+
4749+Kcfg files are generated from the meta-data and they can
4750+be used to generate C++ source code that will provide an
4751+API for applications to access all compiz configuration
4752+data used by the kconfig plugin.
4753+
4754+
4755+Release 0.5.2 (2007-08-03 David Reveman <davidr@novell.com>)
4756+============================================================
4757+Development release.
4758+
4759+Better support for multiple X-screens.
4760+
4761+XML-based meta-data system for handling of various kinds
4762+for meta-data like plugin descriptions, default option
4763+values, etc.
4764+
4765+Major improvements to option initialization based on the
4766+new meta-data system.
4767+
4768+Logging framework.
4769+
4770+Support for configurable button layout in metacity themes
4771+has been added to gtk-window-decorator.
4772+
4773+Glib plugin that allows plugins that use the glib main
4774+loop to integrate properly with the compiz main loop
4775+without waking up periodically to check for pending
4776+events.
4777+
4778+Plugin plugins that make it possible to adjust and extend
4779+the behavior of existing plugins through new plugins.
4780+
4781+More dynamic handling of output devices, which allows the
4782+output device configuration used when rendering to be
4783+changed between frames.
4784+
4785+Transparency support in cube plugin.
4786+
4787+Introspection support in dbus plugin.
4788+
4789+
4790+Release 0.5.0 (2007-04-02 David Reveman <davidr@novell.com>)
4791+============================================================
4792+Development release.
4793+
4794+Remove stencil buffer requirement.
4795+
4796+Focus stealing prevention support.
4797+
4798+Blur plugin that provide support for blurring windows and
4799+contents behind translucent windows.
4800+
4801+Fragment attribute interface that allow plugins
4802+to perform more advanced fragment shading effects and
4803+integrate properly with other plugins.
4804+
4805+Extensible window matching interface and new option type
4806+that provide advanced window selection functionality.
4807+
4808+Plugin that provide a composited video interface for
4809+efficient video playback.
4810+
4811+FUSE plugin that maps compiz options to a file-system and
4812+allow efficient manipulation of options by reading and
4813+writing files.
4814+
4815+Better occlusion detection and more efficient rendering.
4816+
4817+Flat file configuration backend.
4818+
4819+
4820+Release 0.3.6 (2006-12-31 David Reveman <davidr@novell.com>)
4821+============================================================
4822+Development release.
4823+
4824+Add support for unredirect of fullscreen windows when using
4825+the composite overlay window and make usage of the
4826+composite overlay window for output default.
4827+
4828+Add file notification API.
4829+
4830+Add inotify plugin that implements file notification API.
4831+
4832+A "GetPlugins" method has been added to dbus plugin
4833+and it can be used to retrieve a list of available plugins.
4834+
4835+A 'GetPluginMetadata' method has been added to dbus plugin
4836+and it returns metadata for available plugins.
4837+
4838+Add support for switching between windows without having
4839+the thumbnail window show up.
4840+
4841+Switcher thumbnails now include decorations and shadows.
4842+
4843+Basic drag and drop support has been added to scale plugin.
4844+
4845+It's now possible to initiate scale plugin for specific window
4846+groups.
4847+
4848+Window menu icon support has been added to gtk window decorator.
4849+
4850+Improved support for metacity themes.
4851+
4852+Add KDE window decorator with support for shadows and opacity
4853+has been added.
4854+
4855+
4856+Release 0.3.4 (2006-11-21 David Reveman <davidr@novell.com>)
4857+============================================================
4858+Development release.
4859+
4860+Edge button, which can be used to require a button press
4861+for edge actions to be triggered.
4862+
4863+Basic compiz event support.
4864+
4865+Zoom plugin now works without "largedesktop" feature.
4866+
4867+Cube plugin now handles desktop width less than 4 times
4868+the screen better.
4869+
4870+Support for multiple desktops (workspaces).
4871+
4872+Handling of _NET_DESKTOP_GEOMETRY client messages has
4873+been fixed.
4874+
4875+Much better multi-head support.
4876+
4877+Annotate plugin has been added.
4878+
4879+Clone plugin which can be used to clone outputs in a
4880+convenient way has been added. Currently more of a
4881+prototype as we need randr++ and input transformation
4882+in the server to do this properly.
4883+
4884+Shadow color option has been added.
4885+
4886+initiate_all option has been added to scale plugin.
4887+
4888+Zoom factor option has been added to zoom plugin.
4889+
4890+Support for new metacity theme version and support for
4891+metacity versions < 2.15.21.
4892+
4893+Event window placement when using some metacity
4894+themes has been fixed.
4895+
4896+Fix a number of issues related to minimizing windows
4897+with transients.
4898+
4899+
4900+Release 0.3.2 (2006-10-20 David Reveman <davidr@novell.com>)
4901+============================================================
4902+Development release.
4903+
4904+snap_inverted option has been added to wobbly plugin.
4905+
4906+Configuration support has been added to dbus plugin.
4907+
4908+Add 'command' option has been added to decoration plugin,
4909+which can be used to automatically launch a decorator
4910+when one isn't already running.
4911+
4912+Opacity support for metacity themes.
4913+
4914+A raise_window option has been added.
4915+
4916+Decorations on maximized windows are now rendered
4917+correctly when using metacity themes.
4918+
4919+An ignore_hints_when_maximized option, which makes compiz
4920+ignore size increment and aspect hints for maximized
4921+windows has been added and made default.
4922+
4923+Better default option values for rotate plugin.
4924+
4925+and much more...
4926+
4927+
4928+Release 0.2.0 (2006-10-02 David Reveman <davidr@novell.com>)
4929+============================================================
4930+First official release of compiz.
4931+
4932
4933=== added file 'README'
4934--- README 1970-01-01 00:00:00 +0000
4935+++ README 2011-03-30 12:34:28 +0000
4936@@ -0,0 +1,8 @@
4937+compiz - OpenGL window and compositing manager
4938+
4939+Compiz is an OpenGL compositing manager that use GLX_EXT_texture_from_pixmap
4940+for binding redirected top-level windows to texture objects. It has a flexible
4941+plug-in system and it is designed to run well on most graphics hardware.
4942+
4943+David Reveman
4944+davidr@novell.com
4945
4946=== added file 'RELEASING'
4947--- RELEASING 1970-01-01 00:00:00 +0000
4948+++ RELEASING 2011-03-30 12:34:28 +0000
4949@@ -0,0 +1,75 @@
4950+Here are the steps to follow to create a new compiz release:
4951+
4952+1) Ensure that there are no local, uncommitted modifications.
4953+ It's probably good enough if "git diff HEAD" doesn't output
4954+ anything and your "master" and "origin" branches are at the
4955+ current revision.
4956+
4957+2) Verify that the code passes "make distcheck"
4958+
4959+ Running "make distcheck" should result in no warnings or
4960+ errors and end with a message of the form:
4961+
4962+ ==============================================
4963+ compiz-X.Y.Z archives ready for distribution:
4964+ compiz-X.Y.Z.tar.gz
4965+ ==============================================
4966+
4967+ (But the tar file isn't actually ready yet, as we still have
4968+ some more steps to follow).
4969+
4970+3) Fill out an entry in the NEWS file
4971+
4972+ Shift through the logs since the last release. This is most
4973+ easily done with a comand such as:
4974+
4975+ git log --stat compiz-X.Y.Z..
4976+
4977+ where X.Y.Z is the previous release version.
4978+
4979+ Summarize major changes briefly in a style similar to other
4980+ entries in NEWS.
4981+
4982+4) Increment version number in configure.ac:
4983+
4984+ Increment to the micro version number to the next larger
4985+ (even) number.
4986+
4987+5) Commit the changes to NEWS and configure.ac
4988+
4989+ It's especially important to mention the new version number in your
4990+ commit log.
4991+
4992+6) Run "make release-publish" which will perform the following steps
4993+ for you:
4994+
4995+ * Check that the version number ends with an even micro component
4996+ * Check that no release exists with the current version
4997+ * Verify that make distcheck completes successfully
4998+ * Generate the final tar file
4999+ * Generate an sha1sum file
5000+ * Sign the sha1sum using your GPG setup (asks for your GPG password)
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: