summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--AUTHORS29
-rw-r--r--CMakeLists.txt125
-rw-r--r--COPYING6
-rw-r--r--COPYING.GPL340
-rw-r--r--COPYING.LGPL510
-rw-r--r--COPYING.MIT21
-rw-r--r--ChangeLog1795
-rw-r--r--Doxyfile1514
-rw-r--r--INSTALL12
-rw-r--r--NEWS457
-rw-r--r--README8
-rw-r--r--RELEASING75
-rw-r--r--TODO22
-rw-r--r--cmake/CMakeLists.txt21
-rw-r--r--cmake/CompizBcop.cmake41
-rw-r--r--cmake/CompizCommon.cmake273
-rw-r--r--cmake/CompizDefaults.cmake15
-rw-r--r--cmake/CompizDefaults.cmake.in5
-rw-r--r--cmake/CompizGconf.cmake52
-rw-r--r--cmake/CompizPackage.cmake101
-rw-r--r--cmake/CompizPlugin.cmake451
-rw-r--r--cmake/FindCompiz.cmake89
-rw-r--r--cmake/all_plugins_in_folder_example-CMakeLists.txt10
-rw-r--r--cmake/base.cmake63
-rw-r--r--compiz.pc.in12
-rw-r--r--config.h.core.in5
-rw-r--r--gtk/CMakeLists.txt88
-rw-r--r--gtk/config.h.gtk.in25
-rw-r--r--gtk/gnome/50-compiz-desktop-key.xml.in16
-rw-r--r--gtk/gnome/50-compiz-key.xml.in36
-rw-r--r--gtk/gnome/CMakeLists.txt84
-rw-r--r--gtk/gnome/compiz-window-manager.c505
-rw-r--r--gtk/gnome/compiz-window-manager.h39
-rw-r--r--gtk/gnome/compiz-wm.desktop.in17
-rw-r--r--gtk/gnome/compiz.desktop.in15
-rw-r--r--gtk/window-decorator/CMakeLists.txt65
-rw-r--r--gtk/window-decorator/TODO6
-rw-r--r--gtk/window-decorator/gtk-window-decorator.c8045
-rw-r--r--gtk/window-decorator/gwd.schemas.in81
-rw-r--r--images/CMakeLists.txt10
-rw-r--r--images/freedesktop.pngbin0 -> 30453 bytes
-rw-r--r--images/icon.pngbin0 -> 529 bytes
-rw-r--r--include/CMakeLists.txt11
-rw-r--r--include/compiz-common.h.in9
-rw-r--r--include/compiz.h92
-rw-r--r--include/core/CMakeLists.txt30
-rw-r--r--include/core/action.h174
-rw-r--r--include/core/atoms.h162
-rw-r--r--include/core/core.h85
-rw-r--r--include/core/countedlist.h114
-rw-r--r--include/core/icon.h53
-rw-r--r--include/core/match.h95
-rw-r--r--include/core/modifierhandler.h114
-rw-r--r--include/core/option.h240
-rw-r--r--include/core/output.h70
-rw-r--r--include/core/plugin.h332
-rw-r--r--include/core/pluginclasses.h70
-rw-r--r--include/core/pluginclasshandler.h167
-rw-r--r--include/core/point.h110
-rw-r--r--include/core/propertywriter.h54
-rw-r--r--include/core/rect.h227
-rw-r--r--include/core/region.h190
-rw-r--r--include/core/screen.h455
-rw-r--r--include/core/serialization.h152
-rw-r--r--include/core/session.h53
-rw-r--r--include/core/size.h69
-rw-r--r--include/core/timer.h108
-rw-r--r--include/core/window.h557
-rw-r--r--include/core/wrapsystem.h184
-rw-r--r--include/decoration.h428
-rw-r--r--kde/CMakeLists.txt1
-rw-r--r--kde/window-decorator-kde4/CMakeLists.txt76
-rw-r--r--kde/window-decorator-kde4/Makefile.am49
-rw-r--r--kde/window-decorator-kde4/decorator.cpp918
-rw-r--r--kde/window-decorator-kde4/decorator.h167
-rw-r--r--kde/window-decorator-kde4/kdecoration_plugins.cpp212
-rw-r--r--kde/window-decorator-kde4/kdecoration_plugins.h90
-rw-r--r--kde/window-decorator-kde4/main.cpp136
-rw-r--r--kde/window-decorator-kde4/options.cpp186
-rw-r--r--kde/window-decorator-kde4/options.h140
-rw-r--r--kde/window-decorator-kde4/org.kde.KWin.xml10
-rw-r--r--kde/window-decorator-kde4/paintredirector.cpp124
-rw-r--r--kde/window-decorator-kde4/paintredirector.h60
-rw-r--r--kde/window-decorator-kde4/switcher.cpp324
-rw-r--r--kde/window-decorator-kde4/switcher.h86
-rw-r--r--kde/window-decorator-kde4/utils.cpp213
-rw-r--r--kde/window-decorator-kde4/utils.h72
-rw-r--r--kde/window-decorator-kde4/window.cpp1943
-rw-r--r--kde/window-decorator-kde4/window.h276
-rw-r--r--legacy/compiz-cube.h230
-rw-r--r--legacy/compiz-cube.pc.in13
-rw-r--r--legacy/fs.xml.in13
-rw-r--r--legacy/fuse.cpp1442
-rw-r--r--legacy/gconf.cpp848
-rw-r--r--legacy/gconf.xml.in18
-rw-r--r--legacy/metadata.cpp1160
-rw-r--r--legacy/metadata.h106
-rw-r--r--legacy/minimize.cpp1059
-rw-r--r--legacy/minimize.xml.in43
-rw-r--r--legacy/privatemetadata.h40
-rw-r--r--legacy/video.cpp1329
-rw-r--r--legacy/video.xml.in14
-rw-r--r--libdecoration/CMakeLists.txt59
-rw-r--r--libdecoration/config.h.libdecoration.in4
-rw-r--r--libdecoration/decoration.c2953
-rw-r--r--libdecoration/libdecoration.pc.in12
-rw-r--r--metadata/CMakeLists.txt56
-rw-r--r--metadata/core.xml.in268
-rw-r--r--plugins/CMakeLists.txt9
-rw-r--r--plugins/annotate/CMakeLists.txt5
-rw-r--r--plugins/annotate/annotate.xml.in92
-rw-r--r--plugins/annotate/src/annotate.cpp980
-rw-r--r--plugins/annotate/src/annotate.h213
-rw-r--r--plugins/blur/CMakeLists.txt16
-rw-r--r--plugins/blur/blur.xml.in112
-rw-r--r--plugins/blur/src/blur.cpp2335
-rw-r--r--plugins/blur/src/blur.h241
-rw-r--r--plugins/clone/CMakeLists.txt5
-rw-r--r--plugins/clone/clone.xml.in22
-rw-r--r--plugins/clone/src/clone.cpp595
-rw-r--r--plugins/clone/src/clone.h147
-rw-r--r--plugins/commands/CMakeLists.txt5
-rw-r--r--plugins/commands/commands.xml.in385
-rw-r--r--plugins/commands/src/commands.cpp132
-rw-r--r--plugins/commands/src/commands.h50
-rw-r--r--plugins/compiztoolbox/CMakeLists.txt5
-rw-r--r--plugins/compiztoolbox/compiz-compiztoolbox.pc.in12
-rw-r--r--plugins/compiztoolbox/compiztoolbox.xml.in13
-rw-r--r--plugins/compiztoolbox/include/compiztoolbox/compiztoolbox.h168
-rw-r--r--plugins/compiztoolbox/src/compiztoolbox.cpp737
-rw-r--r--plugins/composite/CMakeLists.txt5
-rw-r--r--plugins/composite/compiz-composite.pc.in12
-rw-r--r--plugins/composite/composite.xml.in35
-rw-r--r--plugins/composite/include/composite/composite.h408
-rw-r--r--plugins/composite/src/composite.cpp103
-rw-r--r--plugins/composite/src/privates.h156
-rw-r--r--plugins/composite/src/screen.cpp998
-rw-r--r--plugins/composite/src/window.cpp630
-rw-r--r--plugins/copytex/CMakeLists.txt5
-rw-r--r--plugins/copytex/copytex.xml.in12
-rw-r--r--plugins/copytex/src/copytex.cpp341
-rw-r--r--plugins/copytex/src/copytex.h114
-rw-r--r--plugins/cube/CMakeLists.txt5
-rw-r--r--plugins/cube/compiz-cube.pc.in12
-rw-r--r--plugins/cube/cube.xml.in188
-rw-r--r--plugins/cube/include/cube/cube.h179
-rw-r--r--plugins/cube/src/cube.cpp1897
-rw-r--r--plugins/cube/src/privates.h196
-rw-r--r--plugins/dbus/CMakeLists.txt37
-rw-r--r--plugins/dbus/dbus.xml.in14
-rw-r--r--plugins/dbus/src/dbus.cpp2044
-rw-r--r--plugins/dbus/src/dbus.h185
-rw-r--r--plugins/decor/CMakeLists.txt14
-rw-r--r--plugins/decor/decor.xml.in75
-rw-r--r--plugins/decor/src/decor.cpp1746
-rw-r--r--plugins/decor/src/decor.h234
-rw-r--r--plugins/fade/CMakeLists.txt5
-rw-r--r--plugins/fade/fade.xml.in85
-rw-r--r--plugins/fade/src/fade.cpp398
-rw-r--r--plugins/fade/src/fade.h102
-rw-r--r--plugins/glib/CMakeLists.txt5
-rw-r--r--plugins/glib/glib.xml.in14
-rw-r--r--plugins/glib/src/glib.cpp177
-rw-r--r--plugins/glib/src/private.h77
-rw-r--r--plugins/gnomecompat/CMakeLists.txt5
-rw-r--r--plugins/gnomecompat/gnomecompat.xml.in59
-rw-r--r--plugins/gnomecompat/src/gnomecompat.cpp131
-rw-r--r--plugins/gnomecompat/src/gnomecompat.h53
-rw-r--r--plugins/imgpng/CMakeLists.txt5
-rw-r--r--plugins/imgpng/imgpng.xml.in16
-rw-r--r--plugins/imgpng/src/imgpng.cpp358
-rw-r--r--plugins/imgpng/src/imgpng.h69
-rw-r--r--plugins/imgsvg/CMakeLists.txt5
-rw-r--r--plugins/imgsvg/imgsvg.xml.in24
-rw-r--r--plugins/imgsvg/src/imgsvg.cpp637
-rw-r--r--plugins/imgsvg/src/imgsvg.h136
-rw-r--r--plugins/ini/CMakeLists.txt5
-rw-r--r--plugins/ini/ini.xml.in13
-rw-r--r--plugins/ini/src/ini.cpp611
-rw-r--r--plugins/ini/src/ini.h106
-rw-r--r--plugins/inotify/CMakeLists.txt10
-rw-r--r--plugins/inotify/inotify.xml.in14
-rw-r--r--plugins/inotify/src/inotify.cpp169
-rw-r--r--plugins/inotify/src/inotify.h66
-rw-r--r--plugins/kde/CMakeLists.txt22
-rw-r--r--plugins/kde/kde.xml.in15
-rw-r--r--plugins/kde/src/dispatcher.cpp262
-rw-r--r--plugins/kde/src/dispatcher.h79
-rw-r--r--plugins/kde/src/kde.cpp68
-rw-r--r--plugins/kde/src/kde.h60
-rw-r--r--plugins/kde/src/socket.cpp67
-rw-r--r--plugins/kde/src/socket.h44
-rw-r--r--plugins/kde/src/timer.cpp69
-rw-r--r--plugins/kde/src/timer.h55
-rw-r--r--plugins/move/CMakeLists.txt5
-rw-r--r--plugins/move/move.xml.in48
-rw-r--r--plugins/move/src/move.cpp730
-rw-r--r--plugins/move/src/move.h129
-rw-r--r--plugins/obs/CMakeLists.txt5
-rw-r--r--plugins/obs/obs.xml.in161
-rw-r--r--plugins/obs/src/obs.cpp332
-rw-r--r--plugins/obs/src/obs.h102
-rw-r--r--plugins/opengl/CMakeLists.txt8
-rw-r--r--plugins/opengl/compiz-opengl.pc.in12
-rw-r--r--plugins/opengl/include/opengl/fragment.h124
-rw-r--r--plugins/opengl/include/opengl/matrix.h66
-rw-r--r--plugins/opengl/include/opengl/opengl.h590
-rw-r--r--plugins/opengl/include/opengl/texture.h220
-rw-r--r--plugins/opengl/include/opengl/vector.h127
-rw-r--r--plugins/opengl/opengl.xml.in48
-rw-r--r--plugins/opengl/src/fragment.cpp1105
-rw-r--r--plugins/opengl/src/matrix.cpp439
-rw-r--r--plugins/opengl/src/opengl.cpp101
-rw-r--r--plugins/opengl/src/paint.cpp1262
-rw-r--r--plugins/opengl/src/privatefragment.h54
-rw-r--r--plugins/opengl/src/privates.h172
-rw-r--r--plugins/opengl/src/privatetexture.h85
-rw-r--r--plugins/opengl/src/screen.cpp1193
-rw-r--r--plugins/opengl/src/texture.cpp615
-rw-r--r--plugins/opengl/src/vector.cpp276
-rw-r--r--plugins/opengl/src/window.cpp363
-rw-r--r--plugins/place/CMakeLists.txt5
-rw-r--r--plugins/place/place.xml.in168
-rw-r--r--plugins/place/src/place.cpp1680
-rw-r--r--plugins/place/src/place.h140
-rw-r--r--plugins/regex/CMakeLists.txt5
-rw-r--r--plugins/regex/regex.xml.in14
-rw-r--r--plugins/regex/src/regex.cpp309
-rw-r--r--plugins/regex/src/regexplugin.h74
-rw-r--r--plugins/resize/CMakeLists.txt5
-rw-r--r--plugins/resize/resize.xml.in115
-rw-r--r--plugins/resize/src/resize.cpp1414
-rw-r--r--plugins/resize/src/resize.h174
-rw-r--r--plugins/rotate/CMakeLists.txt5
-rw-r--r--plugins/rotate/rotate.xml.in278
-rw-r--r--plugins/rotate/src/rotate.cpp1080
-rw-r--r--plugins/rotate/src/rotate.h173
-rw-r--r--plugins/scale/CMakeLists.txt5
-rw-r--r--plugins/scale/compiz-scale.pc.in12
-rw-r--r--plugins/scale/include/scale/scale.h166
-rw-r--r--plugins/scale/scale.xml.in179
-rw-r--r--plugins/scale/src/privates.h187
-rw-r--r--plugins/scale/src/scale.cpp1782
-rw-r--r--plugins/screenshot/CMakeLists.txt5
-rw-r--r--plugins/screenshot/screenshot.xml.in36
-rw-r--r--plugins/screenshot/src/screenshot.cpp362
-rw-r--r--plugins/screenshot/src/screenshot.h83
-rw-r--r--plugins/switcher/CMakeLists.txt5
-rw-r--r--plugins/switcher/src/switcher.cpp1186
-rw-r--r--plugins/switcher/src/switcher.h175
-rw-r--r--plugins/switcher/switcher.xml.in167
-rw-r--r--plugins/water/CMakeLists.txt5
-rw-r--r--plugins/water/src/water.cpp1356
-rw-r--r--plugins/water/src/water.h179
-rw-r--r--plugins/water/water.xml.in64
-rw-r--r--plugins/wobbly/CMakeLists.txt5
-rw-r--r--plugins/wobbly/src/wobbly.cpp2380
-rw-r--r--plugins/wobbly/src/wobbly.h369
-rw-r--r--plugins/wobbly/wobbly.xml.in126
-rw-r--r--plugins/zoom/CMakeLists.txt5
-rw-r--r--plugins/zoom/src/zoom.cpp742
-rw-r--r--plugins/zoom/src/zoom.h112
-rw-r--r--plugins/zoom/zoom.xml.in66
-rw-r--r--po/CMakeLists.txt56
-rw-r--r--po/ChangeLog25
-rw-r--r--po/POTFILES.in28
-rw-r--r--po/af.po3123
-rw-r--r--po/ar.po3009
-rw-r--r--po/as.po2624
-rw-r--r--po/be.po2738
-rw-r--r--po/bg.po3776
-rw-r--r--po/bn.po3576
-rw-r--r--po/bn_IN.po3566
-rw-r--r--po/bs.po3251
-rw-r--r--po/ca.po4148
-rw-r--r--po/cs.po4706
-rw-r--r--po/cy.po3267
-rw-r--r--po/da.po4135
-rw-r--r--po/de.po4823
-rw-r--r--po/el.po3334
-rw-r--r--po/en_GB.po3713
-rw-r--r--po/en_US.po2766
-rw-r--r--po/es.po4751
-rw-r--r--po/et.po3726
-rw-r--r--po/eu.po3222
-rw-r--r--po/fa.po2634
-rw-r--r--po/fi.po4724
-rw-r--r--po/fr.po3378
-rw-r--r--po/gl.po3329
-rw-r--r--po/gu.po3345
-rw-r--r--po/he.po3550
-rw-r--r--po/hi.po3799
-rw-r--r--po/hr.po3652
-rw-r--r--po/hu.po3218
-rw-r--r--po/id.po3178
-rw-r--r--po/it.po3436
-rw-r--r--po/ja.po2974
-rw-r--r--po/ka.po2999
-rw-r--r--po/km.po3751
-rw-r--r--po/ko.po3177
-rw-r--r--po/lo.po2997
-rw-r--r--po/lt.po3754
-rw-r--r--po/mk.po3017
-rw-r--r--po/ml_IN.po3000
-rw-r--r--po/mr.po2780
-rw-r--r--po/nb.po3358
-rw-r--r--po/nl.po3457
-rw-r--r--po/or.po3439
-rw-r--r--po/pa.po3861
-rw-r--r--po/pl.po3753
-rw-r--r--po/pt.po3309
-rw-r--r--po/pt_BR.po3363
-rw-r--r--po/ro.po3628
-rw-r--r--po/ru.po3258
-rw-r--r--po/sk.po3295
-rw-r--r--po/sl.po3772
-rw-r--r--po/sr.po3965
-rw-r--r--po/sv.po3389
-rw-r--r--po/ta.po3068
-rw-r--r--po/tr.po3558
-rw-r--r--po/uk.po3501
-rw-r--r--po/vi.po3000
-rw-r--r--po/xh.po3115
-rw-r--r--po/zh_CN.po4367
-rw-r--r--po/zh_TW.po4366
-rw-r--r--po/zu.po3115
-rw-r--r--src/CMakeLists.txt62
-rw-r--r--src/action.cpp644
-rw-r--r--src/actions.cpp289
-rw-r--r--src/atoms.cpp324
-rw-r--r--src/event.cpp1759
-rw-r--r--src/icon.cpp46
-rw-r--r--src/main.cpp242
-rw-r--r--src/match.cpp744
-rw-r--r--src/modifierhandler.cpp204
-rw-r--r--src/option.cpp964
-rw-r--r--src/output.cpp90
-rw-r--r--src/plugin.cpp700
-rw-r--r--src/pluginclasses.cpp74
-rw-r--r--src/point.cpp100
-rw-r--r--src/privateaction.h53
-rw-r--r--src/privatematch.h88
-rw-r--r--src/privateoption.h95
-rw-r--r--src/privateregion.h44
-rw-r--r--src/privatescreen.h427
-rw-r--r--src/privatewindow.h296
-rw-r--r--src/propertywriter.cpp227
-rw-r--r--src/rect.cpp285
-rw-r--r--src/region.cpp449
-rw-r--r--src/screen.cpp4636
-rw-r--r--src/session.cpp427
-rw-r--r--src/size.cpp50
-rw-r--r--src/string.cpp88
-rw-r--r--src/timer.cpp140
-rw-r--r--src/window.cpp5615
-rw-r--r--src/windowgeometry.cpp206
-rw-r--r--xslt/CMakeLists.txt13
-rw-r--r--xslt/bcop.xslt1581
-rw-r--r--xslt/compiz_gconf_schemas.xslt409
-rw-r--r--xslt/default_plugins.xslt76
361 files changed, 308469 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..9b9739d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+po/compiz.pot
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..1500f90
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,29 @@
+compiz and the standard set of plugins are designed and written by
+
+David Reveman <davidr@novell.com>
+
+with additional functionality by
+
+Radek Doulik <rodo@novell.com> IO multiplexing
+Mirco Müller <macslow@bangang.de> Skydome support in cube plugin
+Søren Sandmann <sandmann@redhat.com> plane plugin
+Dan Winship <danw@novell.com> gconf-dump plugin
+Brian Paul <brian.paul@tungstengraphics.com> Matrix functions
+
+and other contributions by
+
+Mike Cook <mcook@novell.com>
+Mike Dransfield <mike@blueroot.co.uk>
+Diogo Ferreira <diogo@underdev.org>
+gandalfn <gandalfn@club-internet.fr>
+Guillaume <ixcemix@gmail.com>
+Kristian Høgsberg <krh@redhat.com>
+Dennis Kasprzyk <onestone@beryl-project.org>
+Gerd Kohlberger <lowfi@chello.at>
+Volker Krause <vkrause@kde.org>
+moppsy <moppsy@comcast.net>
+Jeremy C. Reed <reed@reedmedia.net>
+Thierry Reding <thierry@gilfi.de>
+Julian Sikorski <lordzanon@poczta.onet.pl>
+Quinn Storm <livinglatexkali@gmail.com>
+Erkin Bahceci <erkinbah@gmail.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..92ca824
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,125 @@
+project (compiz)
+
+set (CMAKE_MODULE_PATH_ORIG ${CMAKE_MODULE_PATH})
+set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
+include (CompizCommon)
+include (CompizPackage)
+include (cmake/base.cmake)
+include (CheckFunctionExists)
+
+
+set (CMAKE_CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo;MinSizeRe" CACHE INTERNAL "" FORCE)
+if (NOT CMAKE_BUILD_TYPE)
+ set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build type (Debug/Release/RelWithDebInfo/MinSizeRe)" FORCE)
+endif (NOT CMAKE_BUILD_TYPE)
+
+# compiz package version number
+# An odd micro number indicates in-progress development.
+# An even micro number indicates a released version.
+set (COMPIZ_VERSION_MAJOR 0)
+set (COMPIZ_VERSION_MINOR 9)
+set (COMPIZ_VERSION_MICRO 0)
+set (VERSION ${COMPIZ_VERSION_MAJOR}.${COMPIZ_VERSION_MINOR}.${COMPIZ_VERSION_MICRO})
+
+set (DECOR_INTERFACE_VERSION 20080901)
+
+if (COMPIZ_PACKAGING_ENABLED)
+ set (prefix ${CMAKE_INSTALL_PREFIX} CACHE PATH "prefix")
+ set (exec_prefix ${CMAKE_INSTALL_PREFIX}/bin CACHE PATH "bindir")
+ set (libdir ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "libdir")
+ set (includedir ${CMAKE_INSTALL_PREFIX}/include CACHE PATH "includedir")
+ set (datadir ${CMAKE_INSTALL_PREFIX}/share CACHE PATH "datadir")
+else (COMPIZ_PACKAGING_ENABLED)
+ set (prefix ${CMAKE_INSTALL_PREFIX} )
+ set (exec_prefix ${CMAKE_INSTALL_PREFIX}/bin )
+ set (libdir ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX})
+ set (includedir ${CMAKE_INSTALL_PREFIX}/include )
+ set (datadir ${CMAKE_INSTALL_PREFIX}/share )
+endif (COMPIZ_PACKAGING_ENABLED)
+
+set (compiz_plugindir ${libdir}/compiz)
+set (compiz_imagedir ${datadir}/compiz/images)
+set (compiz_metadatadir ${datadir}/compiz)
+set (COMPIZ_I18N_DIR ${CMAKE_SOURCE_DIR}/po)
+
+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)
+set (GETTEXT_PACKAGE compiz)
+
+find_package (Boost 1.34.0 REQUIRED COMPONENTS serialization)
+
+set (COMPIZ_REQUIRES
+ x11
+ xext
+ xdamage
+ xcomposite
+ x11-xcb
+ xrandr
+ xinerama
+ xext
+ ice
+ sm
+ libxml-2.0
+ libxslt
+ "libstartup-notification-1.0 >= 0.7"
+)
+
+set (DECORATION_REQUIRES xrender)
+
+compiz_pkg_check_modules (COMPIZ REQUIRED ${COMPIZ_REQUIRES})
+compiz_pkg_check_modules (LIBDECORATION REQUIRED ${DECORATION_REQUIRES})
+
+list (APPEND COMPIZ_LIBRARIES ${Boost_LIBRARIES})
+
+include (CompizDefaults)
+
+set (COMPIZ_CFLAGS "${COMPIZ_CFLAGS} -I${Boost_INCLUDE_DIR}")
+
+set (_compiz_package_string "Compiz ${VERSION}")
+set (_compiz_package "Compiz")
+
+compiz_configure_file (${compiz_SOURCE_DIR}/config.h.core.in ${compiz_BINARY_DIR}/generated/config.h)
+
+compiz_configure_file (
+ ${CMAKE_SOURCE_DIR}/include/compiz-common.h.in
+ ${CMAKE_BINARY_DIR}/generated/compiz-common.h
+)
+
+install (
+ FILES ${CMAKE_BINARY_DIR}/generated/compiz-common.h
+ DESTINATION ${COMPIZ_DESTDIR}${includedir}/compiz
+)
+
+compiz_configure_file (
+ ${CMAKE_SOURCE_DIR}/compiz.pc.in
+ ${CMAKE_BINARY_DIR}/compiz.pc
+ COMPIZ_REQUIRES
+ COMPIZ_CFLAGS
+)
+
+install (
+ FILES ${CMAKE_BINARY_DIR}/compiz.pc
+ DESTINATION ${COMPIZ_DESTDIR}${libdir}/pkgconfig
+)
+
+add_subdirectory (cmake)
+add_subdirectory (include)
+add_subdirectory (images)
+add_subdirectory (libdecoration)
+add_subdirectory (gtk)
+add_subdirectory (kde)
+add_subdirectory (po)
+add_subdirectory (metadata)
+add_subdirectory (src)
+add_subdirectory (xslt)
+add_subdirectory (plugins)
+
+compiz_ensure_linkage ()
+compiz_package_generation ("Compiz")
+compiz_add_uninstall ()
+compiz_add_git_dist ()
+
+_print_configure_results ()
+
+_check_compiz_cmake_macro (${CMAKE_MODULE_PATH_ORIG})
+
+
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..988ebf2
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,6 @@
+Most of the code is MIT licensed, some code is instead licensed
+under the LGPL and some under the GPL. Each source code file
+contain a header that describes the license for the code in that
+specific file.
+
+For More information see COPYING.GPL, COPYING.LGPL and COPYING.MIT.
diff --git a/COPYING.GPL b/COPYING.GPL
new file mode 100644
index 0000000..d60c31a
--- /dev/null
+++ b/COPYING.GPL
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/COPYING.LGPL b/COPYING.LGPL
new file mode 100644
index 0000000..b124cf5
--- /dev/null
+++ b/COPYING.LGPL
@@ -0,0 +1,510 @@
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations
+below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it
+becomes a de-facto standard. To achieve this, non-free programs must
+be allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control
+compilation and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at least
+ three years, to give the same user the materials specified in
+ Subsection 6a, above, for a charge no more than the cost of
+ performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply, and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License
+may add an explicit geographical distribution limitation excluding those
+countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms
+of the ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library.
+It is safest to attach them to the start of each source file to most
+effectively convey the exclusion of warranty; and each file should
+have at least the "copyright" line and a pointer to where the full
+notice is found.
+
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or
+your school, if any, to sign a "copyright disclaimer" for the library,
+if necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James
+ Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/COPYING.MIT b/COPYING.MIT
new file mode 100644
index 0000000..69ef1bf
--- /dev/null
+++ b/COPYING.MIT
@@ -0,0 +1,21 @@
+
+Copyright © 2005 Novell, Inc.
+
+Permission to use, copy, modify, distribute, and sell this software
+and its documentation for any purpose is hereby granted without
+fee, provided that the above copyright notice appear in all copies
+and that both that copyright notice and this permission notice
+appear in supporting documentation, and that the name of
+Novell, Inc. not be used in advertising or publicity pertaining to
+distribution of the software without specific, written prior permission.
+Novell, Inc. makes no representations about the suitability of this
+software for any purpose. It is provided "as is" without express or
+implied warranty.
+
+NOVELL, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+NO EVENT SHALL NOVELL, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. \ No newline at end of file
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..bbfa473
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,1795 @@
+2006-06-21 David Reveman <davidr@novell.com>
+
+ * src/window.c: Add updateTransientHint to protect against circular
+ transient dependencies. (bnc 186825)
+
+2006-06-20 David Reveman <davidr@novell.com>
+
+ * src/window.c (addWindowSizeChanges): Constrain window
+ dimensions if they are too large.
+
+ * gnome/window-decorator/gnome-window-decorator.c (get_mwm_prop):
+ Trap X errors.
+
+2006-06-20 Dan Winship <danw@novell.com>
+
+ * configure.ac (ALL_LINGUAS): Add pl
+
+2006-06-16 David Reveman <davidr@novell.com>
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * plugins/switcher.c:
+ * plugins/scale.c: Add modal dialogs and fullscreen windows
+ to default window types. (bnc 185749)
+
+ * gnome/window-decorator/gnome-window-decorator.c: Track motif
+ WM hints and disable decorations when application wants no
+ titlebar. (bnc 185852)
+
+2006-06-15 David Reveman <davidr@novell.com>
+
+ * plugins/cube.c (cubePaintTransformedScreen): Remove
+ PAINT_SCREEN_CLEAR_MASK from mask.
+
+ * plugins/switcher.c (switchPaintScreen): Add PAINT_SCREEN_CLEAR_MASK
+ when zooming. (bnc 183676)
+
+ * src/paint.c (paintTransformedScreen): Clear color buffer if
+ PAINT_SCREEN_CLEAR_MASK is present.
+
+ * include/compiz.h: Add PAINT_SCREEN_CLEAR_MASK.
+
+ * gnome/window-decorator/gnome-window-decorator.c: Add DM selection
+ support and --repalce option so it's possible to replace an
+ existing window decorator in the same way as it's possible to replace
+ a window manager. (bnc 185296)
+ (close_button_event):
+ (max_button_event):
+ (min_button_event): De-highlight on NotifyGrab. (bnc 185293)
+
+2006-06-12 Dan Winship <danw@novell.com>
+
+ * plugins/cube.c:
+ * plugins/switcher.c: Mark cube as needing to load before switcher
+ rather than marking switcher as requiring cube. bnc #183676.
+
+ * plugins/gconf-dump.c (dumpPluginOptions): Output load_before and
+ requires for all plugins, even if the list is empty, to ensure
+ that an empty value in a new release overrides a non-empty value
+ in an older release.
+
+ * plugins/compiz.schemas.in.in: regen
+
+2006-06-09 Dan Winship <danw@novell.com>
+
+ * configure.ac: add translations
+
+2006-06-09 David Reveman <davidr@novell.com>
+
+ * plugins/move.c (moveHandleMotionEvent): Handle shaded windows
+ better.
+
+ * src/window.c (maximizeWindow):
+ * src/event.c (handleEvent): Allow windows to be both maximized
+ and shaded.
+
+ * src/window.c: Update addWindowSizeChanges so it can be used by
+ moveResizeWindow.
+ (updateWindowAttributes): Add missing sendSyncRequest call.
+ (addWindowSizeChanges): Make maximized window placement a bit better.
+ (moveResizeWindow): Adjust window geometry using
+ addWindowSizeChanges. (bnc 183121)
+
+ * src/window.c: Only allow shading on windows with top decoration.
+
+ * src/event.c (handleEvent): Check that shade action is allowed
+ before shading a window.
+
+2006-06-08 David Reveman <davidr@novell.com>
+
+ * plugins/decoration.c (decorInitWindow):
+ * plugins/minimize.c (minInitWindow):
+ * src/window.c (addWindow): Handle initially shaded windows
+ correctly.
+
+ * plugins/switcher.c (switchTerminate): Only use hideWindow
+ if switcher window is managed and mapped.
+ (switchInitiate): Only use showWindow if switcher window is
+ hidden. (bnc 182519)
+
+ * plugins/minimize.c (minHandleEvent): Make sure we adjust the window
+ region correctly when it's being unshaded.
+
+2006-06-07 David Reveman <davidr@novell.com>
+
+ * configure.ac: Bump version to 0.0.13.
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * src/window.c: Add window shading support.
+
+ * src/screen.c:
+ * src/paint.c:
+ * src/event.c: Adjust for window shading support.
+ (handleEvent): Handle RESTACK client messages with sibling None
+ correctly.
+
+ * src/event.c:
+ * src/display.c: Add toggle window shade binding.
+
+ * plugins/minimize.c: Add window shading animation support.
+
+ * plugins/fade.c:
+ * plugins/place.c:
+ * plugins/resize.c:
+ * plugins/scale.c:
+ * plugins/switcher.c:
+ * plugins/decoration.c: Adjust for window shading support.
+
+ * include/compiz.h: Add window shading support.
+
+ * gnome/window-decorator/gnome-window-decorator.c: lower_window ->
+ restack_window and change it so it can be used for both
+ raising and lowering a window.
+ Add support for double_click_titlebar setting.
+ (title_event): Don't activate window on titlebar click only
+ raise it. Use double_click_action to determine what should be
+ done when titlebar is double clicked.
+ (update_event_windows): Remove vertical resize event windows
+ when top level window is shaded.
+ (window_state_changed): Update event windows when window state
+ changed.
+
+ * gnome/window-decorator/gnome-window-decorator.c:
+ * gnome/compiz-window-manager.c: Add support for shade double click
+ setting.
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * plugins/cube.c (cubePaintTransformedScreen):
+ * plugins/wobbly.c (wobblyDrawWindowGeometry):
+ * plugins/switcher.c (switchPaintWindow):
+ * src/paint.c (drawWindowGeometry): Disable client-side texture
+ coordinate arrays that are not used. (bnc #182430)
+
+ * plugins/compiz.schemas.in.in:
+ * plugins/resize.c:
+ * plugins/move.c: Add initiate_keyboard binding which is more
+ appropriate for key-binding as it moves the cursor to middle of
+ window.
+
+2006-06-06 David Reveman <davidr@novell.com>
+
+ * plugins/switcher.c: Track thumbnail damage correctly.
+ (switchPaintScreen): Only intercept paintScreen when screen is
+ grabbed or we're zooming and ss->translate > 0.001.
+ (switchPaintScreen): Paint switcher window correctly when we're
+ not zooming.
+ Add cube as a dependency to make sure background is rendered
+ correctly when zooming.
+ (bnc #181909)
+
+ * src/window.c (moveResizeWindow, ensureWindowVisibility):
+ Don't make sure fullscreen windows are in workarea.
+ (fdo #7115) (bnc #181907)
+
+ * src/event.c (handleEvent): Track XA_WM_CLASS property changes.
+
+ * src/window.c:
+ * include/compiz.h: remove updateWindowClass and update
+ updateWindowClassHints.
+
+2006-06-02 David Reveman <davidr@novell.com>
+
+ * configure.ac: Bump version to 0.0.12.
+
+ * src/event.c (handleEvent): Fix typo.
+
+ * gnome/window-decorator/gnome-window-decorator.c:
+ Hide tooltips on NotifyGrab. (bnc #180692)
+
+2006-06-01 Dan Winship <danw@novell.com>
+
+ * src/event.c (handleEvent): If we receive a _NET_SHOWING_DESKTOP
+ request with no window set, set the flag on all screens. (Fixes
+ the KDE "show desktop" applet.) Also, don't allow a client to
+ change its _NET_WM_DESKTOP.
+
+ * src/window.c (addWindow): Set _NET_WM_DESKTOP on all windows to
+ 0; KDE's pager and tasklist require this to be set. (bnc 178320)
+
+2006-06-01 David Reveman <davidr@novell.com>
+
+ * include/compiz.h:
+ * src/window.c: Add updateWindowClass.
+
+2006-05-31 David Reveman <davidr@novell.com>
+
+ * include/compiz.h:
+ * src/screen.c:
+ * src/display.c: Add hide_skip_taskbar_windows option. (bnc 180055)
+
+ * include/compiz.h:
+ * src/window.c: Add getStartupId.
+
+ * src/screen.c: Save initial viewport when startup notification
+ is received. Fix implementation of applyStartupProperties.
+ (bnc 180224)
+
+ * src/event.c (handleEvent): Handle startup ID property changes.
+
+ * plugins/place.c: Adjust work area to initial viewport.
+
+ * plugins/cube.c (cubePaintTransformedScreen): Disable skydome
+ animation while cube is unfolded. (bnc 179833)
+
+ * plugins/switcher.c (switchPaintWindow): Make sure selected window is
+ not clipped incorrectly when some window is transformed. (bnc 179828)
+
+ * plugins/move.c (moveHandleEvent): Initialize xRoot and yRoot.
+ (bnc 179902)
+
+ * src/Makefile.am (INCLUDES): Add @GL_CFLAGS@. (Eric Work)
+
+2006-05-30 Dan Winship <danw@novell.com>
+
+ * configure.ac: Check libwnck for wnck_window_has_name (new in
+ HEAD).
+
+ * gnome/window-decorator/gnome-window-decorator.c
+ (wnck_window_get_real_name): #if HAVE_WNCK_WINDOW_HAS_NAME,
+ redefine wnck_window_get_name to return NULL if the window only
+ has a fallback name. bnc 173059.
+
+ * src/event.c (handleEvent): call moveInputFocusToOtherWindow()
+ before destroyWindow() when processing a DestroyNotify, or else
+ the input focus can get stranded.
+
+2006-05-26 David Reveman <davidr@novell.com>
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * plugins/scale.c (SCALE_SLOPPY_FOCUS_DEFAULT): TRUE.
+
+ * plugins/decoration.c (decorWindowUpdate): No drop-shadow decoration
+ on windows with below state.
+
+ * src/window.c (recalcWindowType): Treat dock windows with below state
+ as normal windows. (bnc #178316)
+
+ * plugins/cube.c (cubePaintTransformedScreen): Avoid optimized case
+ when more than 4 cube sides.
+
+2006-05-25 David Reveman <davidr@novell.com>
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * src/window.c (moveResizeWindow): Don't adjust position for NorthWest
+ gravity. (bnc 178765) (fdo #6992)
+
+ * plugins/compiz.schemas.in.in:
+ * include/compiz.h:
+ * src/event.c (handleEvent):
+ * src/display.c: Add maximize_window_horizontally,
+ maximize_window_vertically, toggle_window_maximized,
+ toggle_window_maximized_horizontally,
+ toggle_window_maximized_vertically.
+
+ * src/event.c (handleEvent): Track changes to maximizeWindow function.
+
+ * plugins/move.c (moveHandleMotionEvent): Make sure we have a saved
+ width before we use it. Track changes to maximizeWindow function.
+
+ * plugins/wobbly.c (wobblyHandleEvent): Handle the case where
+ window is not both vertically and horizontally maximized better.
+
+ * include/compiz.h: Add MAXIMIZE_STATE macro.
+
+ * include/compiz.h:
+ * src/window.c: Remove unmaximizeWindow and make maximizeWindow
+ take a state mask so it can be used for both maximizing and
+ unmaximizing.
+
+ * plugins/switcher.c: Don't add windows that appear after the switcher
+ is popped up. (bnc 178350)
+ (switchWindowRemove): Don't create a new list. Instead remove
+ window from the existing list and make sure we're positioned
+ correctly.
+
+2006-05-24 David Reveman <davidr@novell.com>
+
+ * plugins/scale.c (scaleMoveFocusWindow): When moving to window on
+ left, make sure the window we're moving to is completely left of
+ currently selected window. And same thing when moving to window on
+ right, top, bottom.
+ (layoutThumbs): Set slot->x2 and slot->y2 correctly. (bnc 178216)
+
+2006-05-23 David Reveman <davidr@novell.com>
+
+ * plugins/water.c: GL_UNSIGNED_INT_8_8_8_8_REV as pixel data type on
+ MSBFirst machines.
+
+ * src/texture.c: Include config.h before compiz.h so that
+ IMAGE_BYTE_ORDER is defined correctly. (bnc 178171)
+
+ * include/compiz.h: Define LSBFirst, MSBFirst, IMAGE_BYTE_ORDER,
+ BITMAP_BIT_ORDER. (bnc 178171)
+
+2006-05-23 Dan Winship <danw@novell.com>
+
+ * plugins/switcher.c (switchToWindow): use ss->windows here as
+ well so that multiple activeNum==0 windows don't get skipped.
+ (switchTerminate): Remove the screen grab right away so that
+ keystrokes don't get dropped. bnc 177650
+ (switchPreparePaintScreen, switchPaintScreen,
+ switchDonePaintScreen): update for that
+
+2006-05-22 Dan Winship <danw@novell.com>
+
+ * src/window.c (moveResizeWindow): deal with both vertical and
+ horizontal struts; but not when moving a dock window
+
+ * plugins/switcher.c (switchHandleEvent): Check init_all binding
+ before init, so you can bind "<Alt>" to init_all and so end up
+ with "<Alt>Tab" being init_all rather than init (but with no way
+ to get "init"...). bnc 173376
+
+2006-05-21 David Reveman <davidr@novell.com>
+
+ * src/display.c (addDisplay): Select for button events on root windows.
+
+ * configure.ac: Bump version to 0.0.11.
+
+ * gnome/window-decorator/gnome-window-decorator.c: Fix shadow
+ performance by separating the convolution filter into one vertical and
+ one horizontal pass.
+
+ * src/window.c (mapWindow): Give sync request on map another try, it
+ seems to be working now.
+
+ * src/window.c (addWindow): Allow XGetWindowAttributes to fail.
+ (bnc 173416).
+
+ * src/window.c (addWindow): Initialize managed to false. Set managed
+ to true if widows is viewable.
+
+ * src/event.c (handleEvent): Set managed to false when window
+ transitions to withdrawn state.
+ (handleEvent): Set managed to true when we get MapRequest.
+ (handleEvent): Constrain configure request if window is managed.
+
+ * include/compiz.h: Add "managed" variable that is true while
+ windows is managed.
+
+2006-05-19 David Reveman <davidr@novell.com>
+
+ * plugins/switcher.c (ICON_SIZE): Allow use of larger window icons.
+
+2006-05-18 Dan Winship <danw@novell.com>
+
+ * plugins/wobbly.c (WOBBLY_FOCUS_DEFAULT): Set this to "None" to
+ match wobblyInitScreen() so that it actually works right.
+
+ * plugins/compiz.schemas.in.in: regen
+
+2006-05-18 Dan Winship <danw@novell.com>
+
+ * src/session.c (saveYourselfCallback): if we have a
+ RestartCommand registered with the session manager, update the
+ --sm-client-id in it to match the id we were assigned. bnc 176746
+
+ * src/main.c (main, usage): remove unused --sm-save-file arg and
+ fix documentation of --sm-client-id.
+
+2006-05-17 David Reveman <davidr@novell.com>
+
+ * plugins/compiz.schemas.in.in: Regen (Overlay Icon).
+
+ * plugins/switcher.c (switchPaintScreen): Don't remove switcher
+ from window list, just temporarily mark it as destroyed. This fixes
+ issue with switcher decorations disappearing when some window is
+ unmapped.
+
+ * src/screen.c (updateDefaultIcon): width and height should be
+ unsigned.
+
+ * gnome/window-decorator/gnome-window-decorator.c: Add minimal
+ option that can be used to run g-w-d with drop-shadows but without full
+ window decorations.
+
+ * plugins/minimize.c (minHandleEvent): Restore window position
+ when transitioning to withdrawn state.
+
+ * plugins/scale.c: Remove next_window binding and fix so that arrow
+ keys can be used to select window.
+ Focus new window when pointer enter window decorations and sloppy focus
+ is used.
+ Remove scaleSelectWindow.
+
+ * plugins/scale.c: Icon support (Nat Friedman).
+
+2006-05-17 Dan Winship <danw@novell.com>
+
+ * src/display.c (handleSelectionClear, eventLoop): don't process
+ exit-on-selection-clear until the event queue is empty, or else
+ MapRequest and ConfigureRequest events could get lost. bnc 175558
+
+2006-05-14 David Reveman <davidr@novell.com>
+
+ * src/event.c (handleEvent): mapNum might be 0 if we found the window
+ unmapped when trying to bind it to a texture.
+
+2006-05-12 David Reveman <davidr@novell.com>
+
+ * src/screen.c (enterShowDesktopMode): Only go into show desktop mode
+ when some window is being hidden.
+
+ * src/event.c (handleWindowDamageRect): Make sure placed is set to true
+ when no plugin is doing placement.
+ (handleEvent): Don't set WM_STATE on override redirect windows.
+
+ * plugins/switcher.c (isSwitchWin): Don't show windows that ask not to
+ be in tasklists.
+
+ * plugins/rotate.c (rotateHandleEvent): Only adjust viewport if window
+ has been placed.
+
+ * plugins/minimize.c (minHandleEvent): Reset everything when going
+ into withdrawn state.
+
+ * src/window.c (moveResizeWindow): Handle west and north gravity
+ correctly.
+
+2006-05-11 David Reveman <davidr@novell.com>
+
+ * src/display.c (addDisplay):
+ * src/screen.c (addScreen): Move server grab to addDisplay to make
+ sure that no windows are created between XSelectInput and XQueryTree
+ as that would result in them being added two times.
+
+ * src/window.c (moveResizeWindow): Fix typo, CWY should be CWX.
+ (moveResizeWindow): Constrain Y position so that window titlebar is
+ visible.
+ (restoreWindowGeometry): Fix issue with going from maximized state
+ to non-maximized state without changing the window size.
+
+ * gnome/window-decorator/gnome-window-decorator.c
+ (max_window_name_width): Make sure title text fit in titlebar.
+
+2006-05-11 Dan Winship <danw@novell.com>
+
+ * plugins/gconf-compiz-utils.c (gconfStringToBinding): Treat "" as
+ meaning "disabled"
+
+2006-05-11 David Reveman <davidr@novell.com>
+
+ * gnome/window-decorator/gnome-window-decorator.c (action_menu_map):
+ Don't show window action menu on desktop and dock windows.
+
+ * src/event.c (handleEvent): Allow click on window decorations
+ to trigger window action menu.
+
+ * plugins/place.c (placeWindow): Place fullscreen and maximized
+ windows correctly.
+ (placeWindow): Only clip dialog position to screen if parent is
+ visible in current viewport.
+
+2006-05-09 David Reveman <davidr@novell.com>
+
+ * plugins/switcher.c (switchPaintThumb): Rearrange code so we handle
+ the case when bindWindow fails.
+
+ * src/paint.c (paintWindow): Bail out if window is not mapped.
+
+ * src/window.c (bindWindow): Make sure window is mapped when
+ getting the window pixmap. (bnc 173248)
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * plugins/cube.c (CUBE_MIPMAP_DEFAULT): Enable by default as
+ performance seem to be OK now when new mipmaps are only generated
+ when necessary.
+
+ * src/texture.c (enableTexture): Don't generate new mipmaps
+ every time the texture is used.
+
+2006-05-08 David Reveman <davidr@novell.com>
+
+ * plugins/switcher.c: Allow switcher to be initiated with prev
+ bindings. (Quinn Storm)
+
+2006-05-07 David Reveman <davidr@novell.com>
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * plugins/switcher.c: Add icon support, minimized windows support
+ and allow switcher to show up when only one selectable window exist.
+
+ * images/Makefile.am: Add default icon image.
+
+ * include/compiz.h:
+ * src/texture.c:
+ * src/event.c (handleEvent):
+ * src/screen.c:
+ * src/display.c:
+ * src/window.c: Add WM icon interface.
+
+ * gnome/window-decorator/gnome-window-decorator.c: Compute
+ switcher title text width correctly.
+
+ * src/event.c (handleEvent): Insert windows correctly when
+ reparenting.
+
+2006-05-07 Dan Winship <danw@novell.com>
+
+ * configure.ac: Add --with-scale-corner option and make
+ compiz.schemas reflect it; the best corner to use depends on where
+ the panels are and what's on them, so distros will want to
+ override this to match their default panel layout.
+
+ * src/event.c (eventMatches): Fix the the "water plugin gets
+ mysteriously activated when activating some other keybinding" bug.
+
+2006-05-05 Dan Winship <danw@novell.com>
+
+ * Makefile.am:
+ * autogen.sh:
+ * configure.ac: require intltool for option-description
+ translation
+
+ * plugins/Makefile.am: translate compiz.schemas.in into
+ compiz.schemas
+
+2006-05-05 Dan Winship <danw@novell.com>
+
+ * src/display.c (COMMAND_OPTION): Put numbers into the shortDescs
+ of the command and run_command options
+
+ * plugins/wobbly.c (WOBBLY_SNAP_MODIFIERS_DEFAULT): Use Shift
+ rather than Control, for consistency with Metacity, and to remove
+ the ambiguity about whether Ctrl+Alt+Button1 should be "grab cube"
+ or "move with snapping". (bnc 169402)
+
+ * plugins/compiz.schemas: regen
+
+2006-05-05 David Reveman <davidr@novell.com>
+
+ * plugins/compiz.schemas: Regen.
+
+ * gnome/window-decorator/gnome-window-decorator.c: Forward
+ metacity's bell settings to compiz.
+
+ * plugins/water.c:
+ * plugins/wobbly.c:
+ * plugins/fade.c: Add visual bell.
+
+ * include/compiz.h:
+ * src/display.c: Add audible bell option.
+
+2006-05-04 David Reveman <davidr@novell.com>
+
+ * src/window.c (getModalTransient): Avoid infinite recursion when more
+ than one group transient got modal state.
+
+2006-05-03 David Reveman <davidr@novell.com>
+
+ * plugins/move.c:
+ * plugins/resize.c (resizeHandleMotionEvent): Don't constrain the
+ cursor.
+
+ * plugins/rotate.c (rotateHandleEvent): Use defaultViewportForWindow
+ to figure out which viewport we should move to. (bnc 152677)
+
+ * src/window.c (addWindowSizeChanges): Offset x coordinate with
+ default viewport coordinate. (bnc 171465)
+ (updateWindowAttributes): Always add windows size changes. (bnc 171465)
+
+ * include/compiz.h:
+ * src/window.c (defaultViewportForWindow): Add defaultViewportForWindow
+ function that computes the default viewport for a window.
+
+2006-05-02 David Reveman <davidr@novell.com>
+
+ * plugins/cube.c (cubePaintTransformedScreen): Bump up size a bit more
+ to make sure the cube unfolds completely.
+
+ * src/event.c (handleEvent): Not constraints should be applied to
+ ConfigureRequests for withdrawn windows. (bnc 171143)
+
+ * src/window.c (syncWindowPosition): We never need to send synthetic
+ ConfigureNotify events as we're not reparenting windows.
+
+2006-05-02 Dan Winship <danw@novell.com>
+
+ * plugins/gconf-dump.c: rewrite to make compiz.schema regeneration
+ a little easier, and to make it possible to generate schema files
+ for third-party plugins. Include plugin descriptions and
+ dependency information in the schema.
+
+ * plugins/Makefile.am: add a rule to generate compiz.schemas
+
+ * plugins/compiz.schemas: regen
+
+ * plugins/cube.c, plugins/decoration.c, plugins/fade.c,
+ plugins/gconf.c, plugins/minimize.c, plugins/wobbly.c:
+ s/expose/scale/ in dependencies
+
+2006-05-02 David Reveman <davidr@novell.com>
+
+ * include/compiz.h:
+ * configure.ac: Don't require glproto, include necessary enums in
+ compiz.h.
+
+ * src/texture.c:
+ * include/compiz.h: Update to latest EXT_tfp spec. Requires an
+ X server that has also been updated.
+
+ * configure.ac: Require glproto >= 1.4.7 with final EXT_tfp tokens.
+
+2006-05-01 David Reveman <davidr@novell.com>
+
+ * src/window.c (circulateWindow):
+ * src/event.c (handleEvent): Use getTopWindow instead of
+ reverseWindows->id as reverseWindows might be a destroyed window.
+
+ * include/compiz.h:
+ * src/screen.c: Add getTopWindow function that returns top window.
+
+2006-04-30 David Reveman <davidr@novell.com>
+
+ * plugins/compiz.schemas: Regen.
+
+ * plugins/decoration.c (decorWindowUpdate): Don't decorate fullscreen
+ windows.
+
+ * plugins/cube.c: Add initial support for unfolding the cube. Default
+ key-binding is <Control><Alt>Down.
+
+ * plugins/rotate.c (rotateHandleEvent): Fix absolute rotation.
+
+ * plugins/switcher.c: Fix so that bring-to-front doesn't change
+ the actual stacking order.
+ Add zoom option, enable it by default so it gets some testing.
+ Made bring-to-front enabled by default as it makes zoom functionality
+ more useful.
+ Made switcher window always rendered above all other windows and
+ not affected by screen transformations.
+
+ * src/event.c (handleEvent): Send configure notify before mapping
+ window if PPosition or USPosition is set.
+
+ * src/screen.c (insertWindowIntoScreen): Sibling above doesn't have to
+ be mapped. This change seem to currently by causing the
+ stacking order of some override-redirect windows to be incorrect.
+ Don't insert window when aboveId doesn't match an existing window.
+ (removeScreenGrab): ifdef DEBUG around abort.
+
+ * src/event.c (handleEvent): Only update active window property
+ when it's changing.
+
+ * src/window.c (sendConfigureNotify): Make sure the latest
+ window attributes are put in the ConfigureNotify.
+ (moveResizeWindow): Only send sync request if window is mapped.
+
+ * plugins/rotate.c: Add support for edge-flipping when using
+ drag-and-drop. Remove edge_flip and flip_move options and add
+ edge_flip_pointer, edge_flip_move, edge_flip_dnd.
+
+ * src/screen.c:
+ * src/display.c:
+ * include/compiz.h:
+ Make screen edges drag-and-drop aware.
+
+ * plugins/zoom.c:
+ * plugins/water.c:
+ * plugins/switcher.c:
+ * plugins/scale.c:
+ * plugins/rotate.c:
+ * plugins/resize.c:
+ * plugins/move.c:
+ * src/scren.c:
+ * include/compiz.h:
+ Variable argument list to otherScreenGrabExist, last argument must
+ be 0.
+
+ * src/event.c:
+ * src/display.c:
+ * include/compiz.h: Add raise-on-click option.
+
+ * gnome/window-decorator/gnome-window-decorator.c (title_event):
+ Activate window when clicking titlebar.
+
+2006-04-28 David Reveman <davidr@novell.com>
+
+ * gnome/window-decorator/gnome-window-decorator.c: Back out last change
+ as it clearly didn't fix anything. XFixed being defined as "int"
+ is perfectly fine of course. libXrender is currently broken on 64bit.
+ See Bug #6774 for a fix.
+ (XRenderSetPictureFilter_wrapper): Add workaround for 64bit
+ issue in libXrender. (Dan Winship)
+
+ * src/event.c (handleEvent):
+ * src/display.c:
+ * include/compiz.h:
+ Add show desktop binding. (Martin Szulecki)
+
+ * plugins/rotate.c: Reset timout handle correctly.
+
+ * plugins/move.c:
+ * plugins/resize.c:
+ * plugins/rotate.c:
+ * plugins/scale.c:
+ * plugins/switcher.c:
+ * plugins/water.c:
+ * plugins/zoom.c: Track screen grab changes changes.
+
+ * src/screen.c:
+ * include/compiz.h: Associate all screen grabs with a name. Add
+ otherScreenGrabExist function which can be used to check if screen
+ is grabbed by other plugins.
+
+2006-04-28 Dan Winship <danw@novell.com>
+
+ * src/event.c (eventMatches): new method that replaces EV_KEY and
+ EV_BUTTON. Tests if an event matches a binding, being more precise
+ about modifier state than EV_KEY and EV_BUTTON were.
+ (eventTerminates): Tests if an event is "the opposite" of a
+ binding. (Eg, button or modifier key release.) Replaces
+ CompReleaseMask and "terminate" bindings.
+ (handleEvent): Use eventMatches
+
+ * src/screen.c (addPassiveKeyGrab, removePassiveKeyGrab,
+ updatePassiveKeyGrabs): When passed a keybinding containing just
+ modifiers, grab/ungrab every keypress event that would result in
+ that modifier state (eg, both left and right modifier keys, and
+ allow them to be pressed in any order).
+
+ * src/display.c: Remove CompPressMask from default bindings.
+ (eventLoop): don't add virtual modifiers to event state.
+ (updateModifierMappings): store the XModifierKeymap for later
+ use.
+
+ * plugins/*.c: Use eventMatches and eventTerminates. Remove
+ CompPressMask and "terminate" bindings (except from scale, which
+ is different from the others).
+
+ * plugins/switcher.c: Make initiate_all be just the modifier key
+ used in addition to the initiate binding ("<Control>"). Remove
+ next_window since it doesn't make a lot of sense to have it be
+ different from initiate_all, and make prev_window be just a
+ modifier key as well. ("<Shift>").
+ (SwitchScreen): add extra options to store the fully-composed
+ initiate_all, prev, and prev_all bindings.
+ (