← Back to team overview

compiz team mailing list archive

[Merge] lp:~hypodermia/compiz/fix-for-bug-301174 into lp:compiz

 

Emily Strickland has proposed merging lp:~hypodermia/compiz/fix-for-bug-301174 into lp:compiz.

Requested reviews:
  compiz packagers (compiz)

For more details, see:
https://code.launchpad.net/~hypodermia/compiz/fix-for-bug-301174/+merge/64631

This branch creates a new plugin which uses libcanberra to play an audible bell when the system bell action event is triggered, along with a small typo fix incorporated to make sure that action actually happens. For the typo fix to compiz core, see this commit log entry: http://cgit.compiz.org/compiz/core/commit/?id=e6afcfd735db5a9f507fb9cd810bdb139ab8480f

This should fix this bug: https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/301174

As well as this bug: https://bugs.launchpad.net/ubuntu/+source/unity/+bug/769314

The original source code can be found in my Github repository here, along with smspillaz' merged changes: https://github.com/hypodermia/compiz-bell-plugin

To test this, build and install this plugin, install fixed compiz, replace compiz, load the plugin, and then run this to trigger the bell:  echo -n -e "\a"

Should cause a mild bell sound, provided the alert sounds in sound preferences are turned on and up and the sound file exists (configurable).

Adds a dependency on libcanberra.
-- 
The attached diff has been truncated due to its size.
https://code.launchpad.net/~hypodermia/compiz/fix-for-bug-301174/+merge/64631
Your team compiz packagers is requested to review the proposed merge of lp:~hypodermia/compiz/fix-for-bug-301174 into lp:compiz.
=== added file '.gitignore'
--- .gitignore	1970-01-01 00:00:00 +0000
+++ .gitignore	2011-06-15 05:26:31 +0000
@@ -0,0 +1,1 @@
+po/compiz.pot

=== added directory '.pc'
=== added file '.pc/.version'
--- .pc/.version	1970-01-01 00:00:00 +0000
+++ .pc/.version	2011-06-15 05:26:31 +0000
@@ -0,0 +1,1 @@
+2

=== added directory '.pc/018_use_metacity_settings.patch'
=== added directory '.pc/018_use_metacity_settings.patch/gtk'
=== added directory '.pc/018_use_metacity_settings.patch/gtk/gnome'
=== added file '.pc/018_use_metacity_settings.patch/gtk/gnome/compiz.desktop.in'
--- .pc/018_use_metacity_settings.patch/gtk/gnome/compiz.desktop.in	1970-01-01 00:00:00 +0000
+++ .pc/018_use_metacity_settings.patch/gtk/gnome/compiz.desktop.in	2011-06-15 05:26:31 +0000
@@ -0,0 +1,15 @@
+[Desktop Entry]
+Type=Application
+Encoding=UTF-8
+_Name=Compiz
+Exec=compiz
+NoDisplay=true
+# name of loadable control center module
+X-GNOME-WMSettingsModule=compiz
+# autostart phase
+X-GNOME-Autostart-Phase=WindowManager
+X-GNOME-Provides=windowmanager
+# name we put on the WM spec check window
+X-GNOME-WMName=compiz
+# back compat only 
+X-GnomeWMSettingsLibrary=compiz

=== added directory '.pc/029_default_options.patch'
=== added directory '.pc/029_default_options.patch/metadata'
=== added file '.pc/029_default_options.patch/metadata/core.xml.in'
--- .pc/029_default_options.patch/metadata/core.xml.in	1970-01-01 00:00:00 +0000
+++ .pc/029_default_options.patch/metadata/core.xml.in	2011-06-15 05:26:31 +0000
@@ -0,0 +1,268 @@
+<compiz>
+    <plugin name="core" useBcop="true">
+	<_short>General Options</_short>
+	<_long>General compiz options</_long>
+	<options>
+	    <option name="active_plugins" type="list">
+		<_short>Active Plugins</_short>
+		<_long>List of currently active plugins</_long>
+		<type>string</type>
+		<default_plugins/>
+	    </option>
+	    <option name="audible_bell" type="bool">
+		<_short>Audible Bell</_short>
+		<_long>Audible system beep</_long>
+		<default>true</default>
+	    </option>
+	    <option name="ignore_hints_when_maximized" type="bool">
+		<_short>Ignore Hints When Maximized</_short>
+		<_long>Ignore size increment and aspect hints when window is maximized</_long>
+		<default>true</default>
+	    </option>
+	    <option name="hide_skip_taskbar_windows" type="bool">
+		<_short>Hide Skip Taskbar Windows</_short>
+		<_long>Hide windows not in taskbar when entering show desktop mode</_long>
+		<default>true</default>
+	    </option>
+	    <option name="edge_delay" type="int">
+		<_short>Edge Trigger Delay</_short>
+		<_long>Duration the pointer must rest in a screen edge before an edge action is taken.</_long>
+		<default>0</default>
+		<min>0</min>
+		<max>10000</max>
+	    </option>
+	    <option name="ping_delay" type="int">
+		<_short>Ping Delay</_short>
+		<_long>Interval between ping messages</_long>
+		<default>5000</default>
+		<min>1000</min>
+		<max>30000</max>
+	    </option>
+	    <option name="default_icon" type="string">
+		<_short>Default Icon</_short>
+		<_long>Default window icon image</_long>
+		<default>icon</default>
+	    </option>
+	    <option name="do_serialize" type="bool">
+		<_short>Save plugin states on unload</_short>
+		<_long>Save the state of plugins when they are unloaded such
+		       they will resume their past internal state when reloaded</_long>
+		<default>false</default>
+	    </option>
+	    <group>
+		<_short>Display Settings</_short>
+			<option name="overlapping_outputs" type="int">
+			<_short>Overlapping Output Handling</_short>
+			<_long>Which one of overlapping output devices should be preferred</_long>
+			<default>0</default>
+			<min>0</min>
+			<max>2</max>
+			<desc>
+				<value>0</value>
+				<_name>Smart mode</_name>
+			</desc>
+			<desc>
+				<value>1</value>
+				<_name>Prefer larger output</_name>
+			</desc>
+			<desc>
+				<value>2</value>
+				<_name>Prefer smaller output</_name>
+			</desc>
+			</option>
+			<option name="detect_outputs" type="bool">
+			<_short>Detect Outputs</_short>
+			<_long>Automatic detection of output devices</_long>
+			<default>true</default>
+			</option>
+			<option name="outputs" type="list">
+			<_short>Outputs</_short>
+			<_long>List of strings describing output devices</_long>
+			<type>string</type>
+			<default>
+				<value>640x480+0+0</value>
+			</default>
+			</option>
+	    </group>
+	    <group>
+		<_short>Focus &amp; Raise Behaviour</_short>
+			<option name="click_to_focus" type="bool">
+			<_short>Click To Focus</_short>
+			<_long>Click on window moves input focus to it</_long>
+			<default>true</default>
+			</option>
+			<option name="raise_on_click" type="bool">
+			<_short>Raise On Click</_short>
+			<_long>Raise windows when clicked</_long>
+			<default>true</default>
+			</option>
+			<option name="autoraise" type="bool">
+			<_short>Auto-Raise</_short>
+			<_long>Raise selected windows after interval</_long>
+			<default>true</default>
+			</option>
+			<option name="autoraise_delay" type="int">
+			<_short>Auto-Raise Delay</_short>
+			<_long>Interval before raising selected windows</_long>
+			<default>1000</default>
+			<min>0</min>
+			<max>10000</max>
+			</option>
+			<option name="focus_prevention_level" type="int">
+			<_short>Focus Prevention Level</_short>
+			<_long>Level of focus stealing prevention</_long>
+			<min>0</min>
+			<max>4</max>
+			<default>1</default>
+			<desc>
+				<value>0</value>
+				<_name>Off</_name>
+			</desc>
+			<desc>
+				<value>1</value>
+				<_name>Low</_name>
+			</desc>
+			<desc>
+				<value>2</value>
+				<_name>Normal</_name>
+			</desc>
+			<desc>
+				<value>3</value>
+				<_name>High</_name>
+			</desc>
+			<desc>
+				<value>4</value>
+				<_name>Very High</_name>
+			</desc>
+			</option>
+			<option name="focus_prevention_match" type="match">
+			<_short>Focus Prevention Windows</_short>
+			<_long>Focus prevention windows</_long>
+			<default>any</default>
+			</option>
+		</group>
+		<group>
+		<_short>Key bindings</_short>
+			<option name="close_window_key" type="key">
+			<_short>Close Window</_short>
+			<_long>Close active window</_long>
+			<default>&lt;Alt&gt;F4</default>
+			</option>
+			<option name="close_window_button" type="button">
+			<_short>Close Window</_short>
+			<_long>Close active window</_long>
+			</option>
+			<option name="raise_window_key" type="key">
+			<_short>Raise Window</_short>
+			<_long>Raise window above other windows</_long>
+			</option>
+			<option name="raise_window_button" type="button">
+			<_short>Raise Window</_short>
+			<_long>Raise window above other windows</_long>
+			<default>&lt;Control&gt;Button6</default>
+			</option>
+			<option name="lower_window_key" type="key">
+			<_short>Lower Window</_short>
+			<_long>Lower window beneath other windows</_long>
+			</option>
+			<option name="lower_window_button" type="button">
+			<_short>Lower Window</_short>
+			<_long>Lower window beneath other windows</_long>
+			<default>&lt;Alt&gt;Button6</default>
+			</option>
+			<option name="minimize_window_key" type="key">
+			<_short>Minimize Window</_short>
+			<_long>Minimize active window</_long>
+			<default>&lt;Alt&gt;F9</default>
+			</option>
+			<option name="minimize_window_button" type="button">
+			<_short>Minimize Window</_short>
+			<_long>Minimize active window</_long>
+			</option>
+			<option name="maximize_window_key" type="key">
+			<_short>Maximize Window</_short>
+			<_long>Maximize active window</_long>
+			<default>&lt;Alt&gt;F10</default>
+			</option>
+			<option name="unmaximize_window_key" type="key">
+			<_short>Unmaximize Window</_short>
+			<_long>Unmaximize active window</_long>
+			<default>&lt;Alt&gt;F5</default>
+			</option>
+			<option name="maximize_window_horizontally_key" type="key">
+			<_short>Maximize Window Horizontally</_short>
+			<_long>Maximize active window horizontally</_long>
+			</option>
+			<option name="maximize_window_vertically_key" type="key">
+			<_short>Maximize Window Vertically</_short>
+			<_long>Maximize active window vertically</_long>
+			</option>
+			<option name="window_menu_key" type="key">
+			<_short>Window Menu</_short>
+			<_long>Window menu key binding</_long>
+			<default>&lt;Alt&gt;space</default>
+			</option>
+			<option name="window_menu_button" type="button">
+			<_short>Window Menu</_short>
+			<_long>Window menu button binding</_long>
+			<default>&lt;Alt&gt;Button3</default>
+			</option>
+			<option name="show_desktop_key" type="key">
+			<_short>Show Desktop</_short>
+			<_long>Hide all windows and focus desktop</_long>
+			<default>&lt;Control&gt;&lt;Alt&gt;d</default>
+			</option>
+			<option name="show_desktop_edge" type="edge">
+			<_short>Show Desktop</_short>
+			<_long>Hide all windows and focus desktop</_long>
+			<default/>
+			</option>
+			<option name="toggle_window_maximized_key" type="key">
+			<_short>Toggle Window Maximized</_short>
+			<_long>Toggle active window maximized</_long>
+			</option>
+			<option name="toggle_window_maximized_button" type="button">
+			<_short>Toggle Window Maximized</_short>
+			<_long>Toggle active window maximized</_long>
+			</option>
+			<option name="toggle_window_maximized_horizontally_key" type="key">
+			<_short>Toggle Window Maximized Horizontally</_short>
+			<_long>Toggle active window maximized horizontally</_long>
+			</option>
+			<option name="toggle_window_maximized_vertically_key" type="key">
+			<_short>Toggle Window Maximized Vertically</_short>
+			<_long>Toggle active window maximized vertically</_long>
+			</option>
+			<option name="toggle_window_shaded_key" type="key">
+			<_short>Toggle Window Shaded</_short>
+			<_long>Toggle active window shaded</_long>
+			<default>&lt;Control&gt;&lt;Alt&gt;s</default>
+			</option>
+	    </group>
+	    <group>
+		<_short>Desktop Size</_short>
+			<option name="hsize" type="int">
+			<_short>Horizontal Virtual Size</_short>
+			<_long>Screen size multiplier for horizontal virtual size</_long>
+			<default>4</default>
+			<min>1</min>
+			<max>32</max>
+			</option>
+			<option name="vsize" type="int">
+			<_short>Vertical Virtual Size</_short>
+			<_long>Screen size multiplier for vertical virtual size</_long>
+			<default>1</default>
+			<min>1</min>
+			<max>32</max>
+			</option>
+			<option name="number_of_desktops" type="int">
+			<_short>Number of Desktops</_short>
+			<_long>Number of virtual desktops</_long>
+			<default>1</default>
+			<min>1</min>
+			<max>36</max>
+			</option>
+	    </group>
+	</options>
+    </plugin>
+</compiz>

=== added directory '.pc/029_default_options.patch/plugins'
=== added directory '.pc/029_default_options.patch/plugins/cube'
=== added file '.pc/029_default_options.patch/plugins/cube/cube.xml.in'
--- .pc/029_default_options.patch/plugins/cube/cube.xml.in	1970-01-01 00:00:00 +0000
+++ .pc/029_default_options.patch/plugins/cube/cube.xml.in	2011-06-15 05:26:31 +0000
@@ -0,0 +1,167 @@
+<compiz>
+    <plugin name="cube" useBcop="true">
+	<_short>Desktop Cube</_short>
+	<_long>Place windows on cube</_long>
+	<category>Desktop</category>
+	<feature>largedesktop</feature>
+	<deps>
+	    <requirement>
+		<plugin>opengl</plugin>
+	    </requirement>
+	    <relation type="before">
+		<plugin>switcher</plugin>
+		<plugin>scale</plugin>
+	    </relation>
+	    <relation type="after">
+		<plugin>decor</plugin>
+	    </relation>
+	</deps>
+	<options>
+	    <option name="unfold_key" type="key">
+		<_short>Unfold</_short>
+		<_long>Unfold cube</_long>
+		<default>&lt;Control&gt;&lt;Alt&gt;Down</default>
+	    </option>
+	    <option name="mipmap" type="bool">
+		<_short>Mipmap</_short>
+		<_long>Generate mipmaps when possible for higher quality scaling</_long>
+		<default>true</default>
+	    </option>
+	    <option name="multioutput_mode" type="int">
+		<_short>Multi Output Mode</_short>
+		<_long>Selects how the cube is displayed if multiple output devices are used.</_long>
+		<min>0</min>
+		<max>2</max>
+		<default>0</default>
+		<desc>
+		    <value>0</value>
+		    <_name>Automatic</_name>
+		</desc>
+		<desc>
+		    <value>1</value>
+		    <_name>Multiple cubes</_name>
+		</desc>
+		<desc>
+		    <value>2</value>
+		    <_name>One big cube</_name>
+		</desc>
+	    </option>
+	    <group>
+		<_short>Behaviour</_short>
+			<option name="in" type="bool">
+			<_short>Inside Cube</_short>
+			<_long>Inside cube</_long>
+			<default>false</default>
+			</option>
+			<option name="acceleration" type="float">
+			<_short>Acceleration</_short>
+			<_long>Fold Acceleration</_long>
+			<default>4.0</default>
+			<min>1.0</min>
+			<max>20.0</max>
+			<precision>0.1</precision>
+			</option>
+			<option name="speed" type="float">
+			<_short>Speed</_short>
+			<_long>Fold Speed</_long>
+			<default>1.5</default>
+			<min>0.1</min>
+			<max>50.0</max>
+			<precision>0.1</precision>
+			</option>
+			<option name="timestep" type="float">
+			<_short>Timestep</_short>
+			<_long>Fold Timestep</_long>
+			<default>1.2</default>
+			<min>0.1</min>
+			<max>50.0</max>
+			<precision>0.1</precision>
+			</option>
+	    </group>
+	    <group>
+		<_short>Appearance</_short>
+			<subgroup>
+			<_short>Cube Cap Colors</_short>
+			<option name="top_color" type="color">
+				<_short>Top</_short>
+				<_long>Color of top face of the cube</_long>
+				<default>
+					<red>0xffff</red>
+					<green>0xffff</green>
+					<blue>0xffff</blue>
+				</default>
+			</option>
+			<option name="bottom_color" type="color">
+				<_short>Bottom</_short>
+				<_long>Color of bottom face of the cube</_long>
+				<default>
+					<red>0xffff</red>
+					<green>0xffff</green>
+					<blue>0xffff</blue>
+				</default>
+			</option>
+			</subgroup>
+			<subgroup>
+				<_short>Skydome</_short>
+			<option name="skydome" type="bool">
+			<_short>Skydome</_short>
+			<_long>Render skydome</_long>
+			<default>false</default>
+			</option>
+			<option name="skydome_image" type="string">
+			<_short>Skydome Image</_short>
+			<_long>Image to use as texture for the skydome</_long>
+			<hints>file;image;</hints>
+			</option>
+			<option name="skydome_animated" type="bool">
+			<_short>Animate Skydome</_short>
+			<_long>Animate skydome when rotating cube</_long>
+			<default>false</default>
+			</option>
+			<option name="skydome_gradient_start_color" type="color">
+			<_short>Skydome Gradient Start Color</_short>
+			<_long>Color to use for the top color-stop of the skydome-fallback gradient</_long>
+			<default>
+				<red>0x0d0d</red>
+				<green>0xb1b1</green>
+				<blue>0xfdfd</blue>
+			</default>
+			</option>
+			<option name="skydome_gradient_end_color" type="color">
+			<_short>Skydome Gradient End Color</_short>
+			<_long>Color to use for the bottom color-stop of the skydome-fallback gradient</_long>
+			<default>
+				<red>0xfefe</red>
+				<green>0xffff</green>
+				<blue>0xc7c7</blue>
+			</default>
+			</option>
+			</subgroup>
+	    </group>
+	    <group>
+		<_short>Transparent Cube</_short>
+			<option name="active_opacity" type="float">
+			<_short>Opacity During Rotation</_short>
+			<_long>Opacity of desktop window during rotation.</_long>
+			<default>100.0</default>
+			<min>0.0</min>
+			<max>100.0</max>
+			<precision>1.0</precision>
+			</option>
+			<option name="inactive_opacity" type="float">
+			<_short>Opacity When Not Rotating</_short>
+			<_long>Opacity of desktop window when not rotating.</_long>
+			<default>100.0</default>
+			<min>0.0</min>
+			<max>100.0</max>
+			<precision>1.0</precision>
+			</option>
+			<option name="transparent_manual_only" type="bool">
+			<_short>Transparency Only on Mouse Rotate</_short>
+			<_long>Initiates Cube transparency only if rotation is mouse driven.</_long>
+			<default>true</default>
+			</option>
+	    </group>
+	</options>
+    </plugin>
+</compiz>

=== added directory '.pc/029_default_options.patch/plugins/decor'
=== added file '.pc/029_default_options.patch/plugins/decor/decor.xml.in'
--- .pc/029_default_options.patch/plugins/decor/decor.xml.in	1970-01-01 00:00:00 +0000
+++ .pc/029_default_options.patch/plugins/decor/decor.xml.in	2011-06-15 05:26:31 +0000
@@ -0,0 +1,75 @@
+<compiz>
+    <plugin name="decor" useBcop="true">
+	<_short>Window Decoration</_short>
+	<_long>Window decorations</_long>
+	<category>Effects</category>
+	<feature>decorations</feature>
+	<deps>
+	    <relation type="before">
+		<plugin>fade</plugin>
+		<plugin>cube</plugin>
+		<plugin>scale</plugin>
+		<plugin>wobbly</plugin>
+	    </relation>
+	    <relation type="after">
+		<plugin>composite</plugin>
+		<plugin>opengl</plugin>
+	    </relation>
+	</deps>
+	<options>
+	    <option name="shadow_radius" type="float">
+		<_short>Shadow Radius</_short>
+		<_long>Drop shadow radius</_long>
+		<default>8.0</default>
+		<min>0.1</min>
+		<max>18.0</max>
+		<precision>0.1</precision>
+	    </option>
+	    <option name="shadow_opacity" type="float">
+		<_short>Shadow Opacity</_short>
+		<_long>Drop shadow opacity</_long>
+		<default>0.5</default>
+		<min>0.01</min>
+		<max>6.0</max>
+		<precision>0.01</precision>
+	    </option>
+	    <option name="shadow_color" type="color">
+		<_short>Shadow Color</_short>
+		<_long>Drop shadow color</_long>
+	    </option>
+	    <option name="shadow_x_offset" type="int">
+		<_short>Shadow Offset X</_short>
+		<_long>Drop shadow X offset</_long>
+		<default>1</default>
+		<min>-16</min>
+		<max>16</max>
+	    </option>
+	    <option name="shadow_y_offset" type="int">
+		<_short>Shadow Offset Y</_short>
+		<_long>Drop shadow Y offset</_long>
+		<default>1</default>
+		<min>-16</min>
+		<max>16</max>
+	    </option>
+	    <option name="command" type="string">
+		<_short>Command</_short>
+		<_long>Decorator command line that is executed if no decorator is already running</_long>
+	    </option>
+	    <option name="mipmap" type="bool">
+		<_short>Mipmap</_short>
+		<_long>Allow mipmaps to be generated for decoration textures</_long>
+		<default>false</default>
+	    </option>
+	    <option name="decoration_match" type="match">
+		<_short>Decoration windows</_short>
+		<_long>Windows that should be decorated</_long>
+		<default>any</default>
+	    </option>
+	    <option name="shadow_match" type="match">
+		<_short>Shadow windows</_short>
+		<_long>Windows that should have a shadow</_long>
+		<default>any</default>
+	    </option>
+	</options>
+    </plugin>
+</compiz>

=== added directory '.pc/029_default_options.patch/plugins/fade'
=== added file '.pc/029_default_options.patch/plugins/fade/fade.xml.in'
--- .pc/029_default_options.patch/plugins/fade/fade.xml.in	1970-01-01 00:00:00 +0000
+++ .pc/029_default_options.patch/plugins/fade/fade.xml.in	2011-06-15 05:26:31 +0000
@@ -0,0 +1,85 @@
+<compiz>
+    <plugin name="fade" useBcop="true">
+	<_short>Fading Windows</_short>
+	<_long>Fade in windows when mapped and fade out windows when unmapped</_long>
+	<category>Effects</category>
+	<deps>
+	    <requirement>
+		<plugin>opengl</plugin>
+	    </requirement>
+	    <relation type="after">
+		<plugin>decor</plugin>
+	    </relation>
+	    <relation type="before">
+		<plugin>cube</plugin>
+		<plugin>scale</plugin>
+	    </relation>
+	</deps>
+	<options>
+	    <option name="fade_mode" type="int">
+		<_short>Fade Mode</_short>
+		<_long>Window fade mode</_long>
+		<min>0</min>
+		<max>1</max>
+		<default>0</default>
+		<desc>
+		    <value>0</value>
+		    <_name>Constant speed</_name>
+		</desc>
+		<desc>
+		    <value>1</value>
+		    <_name>Constant time</_name>
+		</desc>
+	    </option>
+	    <option name="fade_speed" type="float">
+		<_short>Fade Speed</_short>
+		<_long>Window fade speed</_long>
+		<default>5.0</default>
+		<min>0.1</min>
+		<max>25.0</max>
+		<precision>0.1</precision>
+	    </option>
+	    <option name="fade_time" type="int">
+		<_short>Fade Time</_short>
+		<_long>Window fade time (in ms) in "Constant time" mode</_long>
+		<default>100</default>
+		<min>1</min>
+		<max>5000</max>
+	    </option>
+	    <option name="window_match" type="match">
+		<_short>Fade windows</_short>
+		<_long>Windows that should be fading</_long>
+		<default>any</default>
+	    </option>
+	    <option name="visual_bell" type="bool">
+		<_short>Visual Bell</_short>
+		<_long>Fade effect on system beep</_long>
+		<default>false</default>
+	    </option>
+	    <option name="fullscreen_visual_bell" type="bool">
+		<_short>Fullscreen Visual Bell</_short>
+		<_long>Fullscreen fade effect on system beep</_long>
+		<default>false</default>
+	    </option>
+	    <option name="dim_unresponsive" type="bool">
+		<_short>Dim Unresponsive Windows</_short>
+		<_long>Dim windows that are not responding to window manager requests</_long>
+		<default>true</default>
+	    </option>
+	    <option name="unresponsive_brightness" type="int">
+		<_short>Unresponsive Window Brightness</_short>
+		<_long>Brightness (in %) of unresponsive windows</_long>
+		<min>0</min>
+		<max>100</max>
+		<default>65</default>
+	    </option>
+	    <option name="unresponsive_saturation" type="int">
+		<_short>Unresponsive Window Saturation</_short>
+		<_long>Saturation (in %) of unresponsive windows</_long>
+		<min>0</min>
+		<max>100</max>
+		<default>0</default>
+	    </option>
+	</options>
+    </plugin>
+</compiz>

=== added directory '.pc/029_default_options.patch/plugins/opengl'
=== added file '.pc/029_default_options.patch/plugins/opengl/opengl.xml.in'
--- .pc/029_default_options.patch/plugins/opengl/opengl.xml.in	1970-01-01 00:00:00 +0000
+++ .pc/029_default_options.patch/plugins/opengl/opengl.xml.in	2011-06-15 05:26:31 +0000
@@ -0,0 +1,48 @@
+<compiz>
+    <plugin name="opengl" useBcop="true">
+	<_short>OpenGL</_short>
+	<_long>OpenGL Plugin</_long>
+	<category>General</category>
+	<deps>
+	    <requirement>
+		<plugin>composite</plugin>
+	    </requirement>
+	</deps>
+	<options>
+	    <option name="texture_filter" type="int">
+		<_short>Texture Filter</_short>
+		<_long>Texture filtering</_long>
+		<default>1</default>
+		<min>0</min>
+		<max>2</max>
+		<desc>
+		    <value>0</value>
+		    <_name>Fast</_name>
+		</desc>
+		<desc>
+		    <value>1</value>
+		    <_name>Good</_name>
+		</desc>
+		<desc>
+		    <value>2</value>
+		    <_name>Best</_name>
+		</desc>
+	    </option>
+	    <option name="lighting" type="bool">
+		<_short>Lighting</_short>
+		<_long>Use diffuse light when screen is transformed</_long>
+		<default>true</default>
+	    </option>
+	    <option name="sync_to_vblank" type="bool">
+		<_short>Sync To VBlank</_short>
+		<_long>Only perform screen updates during vertical blanking period</_long>
+		<default>true</default>
+	    </option>
+	    <option name="texture_compression" type="bool">
+		<_short>Texture Compression</_short>
+		<_long>If available use compression for textures converted from images</_long>
+		<default>false</default>
+	    </option>
+	</options>
+    </plugin>
+</compiz>

=== added directory '.pc/029_default_options.patch/plugins/place'
=== added file '.pc/029_default_options.patch/plugins/place/place.xml.in'
--- .pc/029_default_options.patch/plugins/place/place.xml.in	1970-01-01 00:00:00 +0000
+++ .pc/029_default_options.patch/plugins/place/place.xml.in	2011-06-15 05:26:31 +0000
@@ -0,0 +1,168 @@
+<compiz>
+    <plugin name="place" useBcop="true">
+	<_short>Place Windows</_short>
+	<_long>Place windows at appropriate positions when mapped</_long>
+	<category>Window Management</category>
+	<deps>
+	    <relation type="after">
+		<plugin>composite</plugin>
+		<plugin>opengl</plugin>
+		<plugin>decor</plugin>
+	    </relation>
+	</deps>
+	<options>
+	    <option name="workarounds" type="bool">
+		<_short>Workarounds</_short>
+		<_long>Window placement workarounds</_long>
+		<default>true</default>
+	    </option>
+	    <option name="mode" type="int">
+		<_short>Placement Mode</_short>
+		<_long>Algorithm to use for window placement</_long>
+		<default>0</default>
+		<min>0</min>
+		<max>5</max>
+		<desc>
+		    <value>0</value>
+		    <_name>Cascade</_name>
+		</desc>
+		<desc>
+		    <value>1</value>
+		    <_name>Centered</_name>
+		</desc>
+		<desc>
+		    <value>2</value>
+		    <_name>Smart</_name>
+		</desc>
+		<desc>
+		    <value>3</value>
+		    <_name>Maximize</_name>
+		</desc>
+		<desc>
+		    <value>4</value>
+		    <_name>Random</_name>
+		</desc>
+		<desc>
+		    <value>5</value>
+		    <_name>Pointer</_name>
+		</desc>
+	    </option>
+	    <option name="multioutput_mode" type="int">
+		<_short>Multi Output Mode</_short>
+		<_long>Selects how window placement should behave if multiple outputs are selected</_long>
+		<min>0</min>
+		<max>3</max>
+		<default>0</default>
+		<desc>
+		    <value>0</value>
+		    <_name>Use active output device</_name>
+		</desc>
+		<desc>
+		    <value>1</value>
+		    <_name>Use output device with pointer</_name>
+		</desc>
+		<desc>
+		    <value>2</value>
+		    <_name>Use output device of focussed window</_name>
+		</desc>
+		<desc>
+		    <value>3</value>
+		    <_name>Place across all outputs</_name>
+		</desc>
+	    </option>
+	    <option name="force_placement_match" type="match">
+		<_short>Force Placement Windows</_short>
+		<_long>Windows that should forcedly be placed, even if they indicate the window manager should avoid placing them.</_long>
+		<default></default>
+	    </option>
+	    <group>
+		<_short>Fixed Window Placement</_short>
+		<subgroup>
+		    <_short>Windows with fixed positions</_short>
+		    <option name="position_matches" type="list">
+			<_short>Positioned windows</_short>
+			<_long>Windows that should be positioned by default</_long>
+			<type>match</type>
+		    </option>
+		    <option name="position_x_values" type="list">
+			<_short>X Positions</_short>
+			<_long>X position values</_long>
+			<type>int</type>
+		    </option>
+		    <option name="position_y_values" type="list">
+			<_short>Y Positions</_short>
+			<_long>Y position values</_long>
+			<type>int</type>
+		    </option>
+		    <option name="position_constrain_workarea" type="list">
+			<_short>Keep In Workarea</_short>
+			<_long>Keep placed window in work area, even if that means that the position might differ from the specified position</_long>
+			<type>bool</type>
+		    </option>
+		</subgroup>
+		<subgroup>
+		    <_short>Windows with fixed placement mode</_short>
+		    <option name="mode_matches" type="list">
+			<_short>Windows</_short>
+			<_long>Windows that should have a certain positioning mo+de</_long>
+			<type>match</type>
+		    </option>
+		    <option name="mode_modes" type="list">
+			<_short>Mode</_short>
+			<_long>Positioning modes</_long>
+			<type>int</type>
+			<default>0</default>
+			<min>0</min>
+			<max>5</max>
+			<desc>
+			    <value>0</value>
+			    <_name>Cascade</_name>
+			</desc>
+			<desc>
+			    <value>1</value>
+			    <_name>Centered</_name>
+			</desc>
+			<desc>
+			    <value>2</value>
+			    <_name>Smart</_name>
+			</desc>
+			<desc>
+			    <value>3</value>
+			    <_name>Maximize</_name>
+			</desc>
+			<desc>
+			    <value>4</value>
+			    <_name>Random</_name>
+			</desc>
+			<desc>
+			    <value>5</value>
+			    <_name>Pointer</_name>
+			</desc>
+		    </option>
+		</subgroup>
+		<subgroup>
+		    <_short>Windows with fixed viewport</_short>
+		    <option name="viewport_matches" type="list">
+			<_short>Viewport positioned windows</_short>
+			<_long>Windows that should be positioned in specific viewports by default</_long>
+			<type>match</type>
+		    </option>
+		    <option name="viewport_x_values" type="list">
+			<_short>X Viewport Positions</_short>
+			<_long>Horizontal viewport positions</_long>
+			<type>int</type>
+			<min>1</min>
+			<max>32</max>
+		    </option>
+		    <option name="viewport_y_values" type="list">
+			<_short>Y Viewport Positions</_short>
+			<_long>Vertical viewport positions</_long>
+			<type>int</type>
+			<min>1</min>
+			<max>32</max>
+		    </option>
+		</subgroup>
+	    </group>
+	</options>
+    </plugin>
+</compiz>

=== added directory '.pc/029_default_options.patch/plugins/resize'
=== added file '.pc/029_default_options.patch/plugins/resize/resize.xml.in'
--- .pc/029_default_options.patch/plugins/resize/resize.xml.in	1970-01-01 00:00:00 +0000
+++ .pc/029_default_options.patch/plugins/resize/resize.xml.in	2011-06-15 05:26:31 +0000
@@ -0,0 +1,193 @@
+<?xml version="1.0"?>
+<compiz>
+    <plugin name="resize" useBcop="true">
+	<_short>Resize Window</_short>
+	<_long>Resize window</_long>
+	<category>Window Management</category>
+	<deps>
+	    <relation type="after">
+		<plugin>composite</plugin>
+		<plugin>opengl</plugin>
+		<plugin>decor</plugin>
+	    </relation>
+	</deps>
+	<options>
+	    <group>
+		<_short>Bindings</_short>
+		<option name="outline_modifier" type="list">
+		    <_short>Outline Modifier</_short>
+		    <_long>Use these bindings to resize with an outline.</_long>
+		    <type>int</type>
+		    <min>0</min>
+		    <max>3</max>
+		    <desc>
+			<value>0</value>
+			<_name>Shift</_name>
+		    </desc>
+		    <desc>
+			<value>1</value>
+			<_name>Alt</_name>
+		    </desc>
+		    <desc>
+			<value>2</value>
+			<_name>Control</_name>
+		    </desc>
+		    <desc>
+			<value>3</value>
+			<_name>Meta</_name>
+		    </desc>
+		</option>
+		<option name="rectangle_modifier" type="list">
+		    <_short>Rectangle Modifier</_short>
+		    <_long>Use these bindings to resize with an rectangle.</_long>
+		    <type>int</type>
+		    <min>0</min>
+		    <max>3</max>
+		    <desc>
+			<value>0</value>
+			<_name>Shift</_name>
+		    </desc>
+		    <desc>
+			<value>1</value>
+			<_name>Alt</_name>
+		    </desc>
+		    <desc>
+			<value>2</value>
+			<_name>Control</_name>
+		    </desc>
+		    <desc>
+			<value>3</value>
+			<_name>Meta</_name>
+		    </desc>
+		</option>
+		<option name="stretch_modifier" type="list">
+		    <_short>Stretch Modifier</_short>
+		    <_long>Use these bindings to resize by stretching.</_long>
+		    <type>int</type>
+		    <min>0</min>
+		    <max>3</max>
+		    <desc>
+			<value>0</value>
+			<_name>Shift</_name>
+		    </desc>
+		    <desc>
+			<value>1</value>
+			<_name>Alt</_name>
+		    </desc>
+		    <desc>
+			<value>2</value>
+			<_name>Control</_name>
+		    </desc>
+		    <desc>
+			<value>3</value>
+			<_name>Meta</_name>
+		    </desc>
+		</option>
+		<option name="centered_modifier" type="list">
+		    <_short>Centered Modifier</_short>
+		    <_long>Use these bindings to resize from the center.</_long>
+		    <type>int</type>
+		    <min>0</min>
+		    <max>3</max>
+		    <default>
+			<value>0</value>
+		    </default>
+		    <desc>
+			<value>0</value>
+			<_name>Shift</_name>
+		    </desc>
+		    <desc>
+			<value>1</value>
+			<_name>Alt</_name>
+		    </desc>
+		    <desc>
+			<value>2</value>
+			<_name>Control</_name>
+		    </desc>
+		    <desc>
+			<value>3</value>
+			<_name>Meta</_name>
+		    </desc>
+		</option>
+		<option name="initiate_button" type="button">
+		    <_short>Initiate Window Resize</_short>
+		    <_long>Start resizing window</_long>
+		    <default>&lt;Alt&gt;Button2</default>
+		</option>
+		<option name="initiate_key" type="key">
+		    <_short>Initiate Window Resize</_short>
+		    <_long>Start resizing window</_long>
+		    <default>&lt;Alt&gt;F8</default>
+		</option>
+	    </group>
+	    <option name="mode" type="int">
+		<_short>Default Resize Mode</_short>
+		<_long>Default mode used for window resizing</_long>
+		<default>0</default>
+		<min>0</min>
+		<max>3</max>
+		<desc>
+		    <value>0</value>
+		    <_name>Normal</_name>
+		</desc>
+		<desc>
+		    <value>1</value>
+		    <_name>Outline</_name>
+		</desc>
+		<desc>
+		    <value>2</value>
+		    <_name>Rectangle</_name>
+		</desc>
+		<desc>
+		    <value>3</value>
+		    <_name>Stretch</_name>
+		</desc>
+	    </option>
+	    <option name="border_color" type="color">
+		<_short>Border Color</_short>
+		<_long>Border color used for outline and rectangle resize modes</_long>
+		<default>
+		    <red>0x2f2f</red>
+		    <green>0x2f2f</green>
+		    <blue>0x4f4f</blue>
+		    <alpha>0x9f9f</alpha>
+		</default>
+	    </option>
+	    <option name="fill_color" type="color">
+		<_short>Fill Color</_short>
+		<_long>Fill color used for rectangle resize mode</_long>
+		<default>
+		    <red>0x2f2f</red>
+		    <green>0x2f2f</green>
+		    <blue>0x4f4f</blue>
+		    <alpha>0x4f4f</alpha>
+		</default>
+	    </option>
+	    <option name="normal_match" type="match">
+		<_short>Normal Resize Windows</_short>
+		<_long>Windows that normal resize should be used for</_long>
+		<default/>
+	    </option>
+	    <option name="outline_match" type="match">
+		<_short>Outline Resize Windows</_short>
+		<_long>Windows that outline resize should be used for</_long>
+		<default/>
+	    </option>
+	    <option name="rectangle_match" type="match">
+		<_short>Rectangle Resize Windows</_short>
+		<_long>Windows that rectangle resize should be used for</_long>
+		<default/>
+	    </option>
+	    <option name="stretch_match" type="match">
+		<_short>Stretch Resize Windows</_short>
+		<_long>Windows that stretch resize should be used for</_long>
+		<default/>
+	    </option>
+	    <option name="resize_from_center_match" type="match">
+		<short>Resize From Center Windows</short>
+		<long>Windows that should be resized from center</long>
+		<default></default>
+	    </option>
+	</options>
+    </plugin>
+</compiz>

=== added directory '.pc/029_default_options.patch/plugins/scale'
=== added file '.pc/029_default_options.patch/plugins/scale/scale.xml.in'
--- .pc/029_default_options.patch/plugins/scale/scale.xml.in	1970-01-01 00:00:00 +0000
+++ .pc/029_default_options.patch/plugins/scale/scale.xml.in	2011-06-15 05:26:31 +0000
@@ -0,0 +1,179 @@
+<compiz>
+    <plugin name="scale" useBcop="true">
+	<_short>Scale</_short>
+	<_long>Scale windows</_long>
+	<category>Window Management</category>
+	<deps>
+	    <requirement>
+		<plugin>opengl</plugin>
+	    </requirement>
+	    <relation type="after">
+		<plugin>fade</plugin>
+		<plugin>decor</plugin>
+	    </relation>
+	</deps>
+	<options>
+	    <group>
+		<_short>Appearance</_short>
+			<option name="spacing" type="int">
+				<_short>Spacing</_short>
+				<_long>Space between windows</_long>
+				<default>10</default>
+				<min>0</min>
+				<max>250</max>
+			</option>
+			<option name="speed" type="float">
+				<_short>Speed</_short>
+				<_long>Scale speed</_long>
+				<default>1.5</default>
+				<min>0.1</min>
+				<max>50</max>
+				<precision>0.1</precision>
+			</option>
+			<option name="timestep" type="float">
+				<_short>Timestep</_short>
+				<_long>Scale timestep</_long>
+				<default>1.2</default>
+				<min>0.1</min>
+				<max>50</max>
+				<precision>0.1</precision>
+			</option>
+			<option name="darken_back" type="bool">
+				<_short>Darken Background</_short>
+				<_long>Darken background when scaling windows</_long>
+				<default>true</default>
+			</option>
+			<option name="opacity" type="int">
+				<_short>Opacity</_short>
+				<_long>Amount of opacity in percent</_long>
+				<default>75</default>
+				<min>0</min>
+				<max>100</max>
+			</option>
+			<option name="overlay_icon" type="int">
+				<_short>Overlay Icon</_short>
+				<_long>Overlay an icon on windows once they are scaled</_long>
+				<min>0</min>
+				<max>2</max>
+				<default>1</default>
+				<desc>
+					<value>0</value>
+					<_name>None</_name>
+				</desc>
+				<desc>
+					<value>1</value>
+					<_name>Emblem</_name>
+				</desc>
+				<desc>
+					<value>2</value>
+					<_name>Big</_name>
+				</desc>
+			</option>
+	    </group>
+	    <group>
+		<_short>Behaviour</_short>
+			<option name="window_match" type="match">
+				<_short>Scale Windows</_short>
+				<_long>Windows that should be scaled in scale mode</_long>
+				<default>Toolbar | Utility | Dialog | Normal | Unknown</default>
+			</option>
+			<option name="hover_time" type="int">
+				<_short>Drag and Drop Hover Timeout</_short>
+				<_long>Time (in ms) before scale mode is terminated when hovering over a window dragging and dropping an item</_long>
+				<default>750</default>
+				<min>50</min>
+				<max>10000</max>
+			</option>
+			<option name="multioutput_mode" type="int">
+				<_short>Multi Output Mode</_short>
+				<_long>Selects where windows are scaled if multiple output devices are used.</_long>
+				<min>0</min>
+				<max>1</max>
+				<default>0</default>
+				<desc>
+					<value>0</value>
+					<_name>On current output device</_name>
+				</desc>
+				<desc>
+					<value>1</value>
+					<_name>On all output devices</_name>
+				</desc>
+			</option>
+	    </group>
+	    <group>
+		<_short>Bindings</_short>
+			<option name="key_bindings_toggle" type="bool">
+			    <_short>Key Bindings Toggle Scale Mode</_short>
+			    <_long>Key bindings toggle scale mode instead of enabling it when pressed and disabling it when released.</_long>
+			    <default>false</default>
+			</option>
+			<option name="button_bindings_toggle" type="bool">
+			    <_short>Button Bindings Toggle Scale Mode</_short>
+			    <_long>Button bindings toggle scale mode instead of enabling it when pressed and disabling it when released.</_long>
+			    <default>false</default>
+			</option>
+			<option name="initiate_edge" type="edge">
+				<_short>Initiate Window Picker</_short>
+				<_long>Layout and start transforming windows</_long>
+				<default>
+				<edge name="TopRight"/>
+				</default>
+				<allowed edgednd="true"/>
+			</option>
+			<option name="initiate_key" type="key">
+				<_short>Initiate Window Picker</_short>
+				<_long>Layout and start transforming windows</_long>
+				<default>&lt;Shift&gt;&lt;Alt&gt;Up</default>
+			</option>
+			<option name="initiate_button" type="button">
+				<_short>Initiate Window Picker</_short>
+				<_long>Layout and start transforming windows</_long>
+			</option>
+			<option name="initiate_all_edge" type="edge">
+				<_short>Initiate Window Picker For All Windows</_short>
+				<_long>Layout and start transforming all windows</_long>
+				<allowed edgednd="true"/>
+			</option>
+				<option name="initiate_all_button" type="button">
+				<_short>Initiate Window Picker For All Windows</_short>
+				<_long>Layout and start transforming all windows</_long>
+			</option>
+			<option name="initiate_all_key" type="key">
+				<_short>Initiate Window Picker For All Windows</_short>
+				<_long>Layout and start transforming all windows</_long>
+			</option>
+			<option name="initiate_group_edge" type="edge">
+				<_short>Initiate Window Picker For Window Group</_short>
+				<_long>Layout and start transforming window group</_long>
+				<allowed edgednd="true"/>
+			</option>
+			<option name="initiate_group_button" type="button">
+				<_short>Initiate Window Picker For Window Group</_short>
+				<_long>Layout and start transforming window group</_long>
+			</option>
+			<option name="initiate_group_key" type="key">
+				<_short>Initiate Window Picker For Window Group</_short>
+				<_long>Layout and start transforming window group</_long>
+			</option>
+			<option name="initiate_output_edge" type="edge">
+				<_short>Initiate Window Picker For Windows on Current Output</_short>
+				<_long>Layout and start transforming windows on current output</_long>
+				<allowed edgednd="true"/>
+			</option>
+			<option name="initiate_output_button" type="button">
+				<_short>Initiate Window Picker For Windows on Current Output</_short>
+				<_long>Layout and start transforming windows on current output</_long>
+			</option>
+			<option name="initiate_output_key" type="key">
+				<_short>Initiate Window Picker For Windows on Current Output</_short>
+				<_long>Layout and start transforming windows on current output</_long>
+			</option>
+			<option name="show_desktop" type="bool">
+				<_short>Click Desktop to Show Desktop</_short>
+				<_long>Enter Show Desktop mode when Desktop is clicked during Scale</_long>
+				<default>true</default>
+			</option>
+	    </group>
+	</options>
+    </plugin>
+</compiz>

=== added directory '.pc/02_add_debug_spewer_for_apport.patch'
=== added directory '.pc/02_add_debug_spewer_for_apport.patch/include'
=== added directory '.pc/02_add_debug_spewer_for_apport.patch/include/core'
=== added file '.pc/02_add_debug_spewer_for_apport.patch/include/core/screen.h'
--- .pc/02_add_debug_spewer_for_apport.patch/include/core/screen.h	1970-01-01 00:00:00 +0000
+++ .pc/02_add_debug_spewer_for_apport.patch/include/core/screen.h	2011-06-15 05:26:31 +0000
@@ -0,0 +1,481 @@
+/*
+ * Copyright © 2008 Dennis Kasprzyk
+ * Copyright © 2007 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
+ * Dennis Kasprzyk not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Dennis Kasprzyk makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * DENNIS KASPRZYK DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL DENNIS KASPRZYK 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.
+ *
+ * Authors: Dennis Kasprzyk <onestone@xxxxxxxxxxxxxxxxx>
+ *          David Reveman <davidr@xxxxxxxxxx>
+ */
+
+#ifndef _COMPSCREEN_H
+#define _COMPSCREEN_H
+
+#include <core/window.h>
+#include <core/output.h>
+#include <core/session.h>
+#include <core/plugin.h>
+#include <core/match.h>
+#include <core/pluginclasses.h>
+#include <core/region.h>
+#include <core/modifierhandler.h>
+
+class CompScreen;
+class PrivateScreen;
+class CompManager;
+
+typedef std::list<CompWindow *> CompWindowList;
+typedef std::vector<CompWindow *> CompWindowVector;
+
+extern char       *backgroundImage;
+extern bool       replaceCurrentWm;
+extern bool       indirectRendering;
+extern bool       noDetection;
+extern bool       debugOutput;
+
+extern CompScreen   *screen;
+extern ModifierHandler *modHandler;
+
+extern int lastPointerX;
+extern int lastPointerY;
+extern unsigned int lastPointerMods;
+extern int pointerX;
+extern int pointerY;
+extern unsigned int pointerMods;
+
+#define NOTIFY_CREATE_MASK (1 << 0)
+#define NOTIFY_DELETE_MASK (1 << 1)
+#define NOTIFY_MOVE_MASK   (1 << 2)
+#define NOTIFY_MODIFY_MASK (1 << 3)
+
+typedef boost::function<void (short int)> FdWatchCallBack;
+typedef boost::function<void (const char *)> FileWatchCallBack;
+
+typedef int CompFileWatchHandle;
+typedef int CompWatchFdHandle;
+
+/**
+ * Information needed to invoke a CallBack when a file changes.
+ */
+struct CompFileWatch {
+    CompString		path;
+    int			mask;
+    FileWatchCallBack   callBack;
+    CompFileWatchHandle handle;
+};
+typedef std::list<CompFileWatch *> CompFileWatchList;
+
+#define ACTIVE_WINDOW_HISTORY_SIZE 64
+#define ACTIVE_WINDOW_HISTORY_NUM  32
+
+/**
+ * Information about the last activity with a window.
+ */
+struct CompActiveWindowHistory {
+    Window id[ACTIVE_WINDOW_HISTORY_SIZE];
+    int    x;
+    int    y;
+    int    activeNum;
+};
+
+/**
+ * Interface to an abstract screen.
+ */
+class ScreenInterface : public WrapableInterface<CompScreen, ScreenInterface> {
+    public:
+	virtual void fileWatchAdded (CompFileWatch *fw);
+	virtual void fileWatchRemoved (CompFileWatch *fw);
+
+	virtual bool initPluginForScreen (CompPlugin *p);
+	virtual void finiPluginForScreen (CompPlugin *p);
+
+	virtual bool setOptionForPlugin (const char *plugin,
+					 const char *name,
+					 CompOption::Value &v);
+
+	virtual void sessionEvent (CompSession::Event event,
+				   CompOption::Vector &options);
+
+	virtual void handleEvent (XEvent *event);
+        virtual void handleCompizEvent (const char * plugin, const char *event,
+					CompOption::Vector &options);
+
+        virtual bool fileToImage (CompString &path, CompSize &size,
+				  int &stride, void *&data);
+	virtual bool imageToFile (CompString &path, CompString &format,
+				  CompSize &size, int stride, void *data);
+
+	virtual CompMatch::Expression *matchInitExp (const CompString& value);
+
+	virtual void matchExpHandlerChanged ();
+	virtual void matchPropertyChanged (CompWindow *window);
+
+	virtual void logMessage (const char   *componentName,
+				 CompLogLevel level,
+				 const char   *message);
+
+	virtual void enterShowDesktopMode ();
+	virtual void leaveShowDesktopMode (CompWindow *window);
+
+	virtual void outputChangeNotify ();
+	virtual void addSupportedAtoms (std::vector<Atom>& atoms);
+};
+
+/**
+ * A wrapping of the X display screen. This takes care of communication to the
+ * X server.
+ */
+class CompScreen :
+    public CompSize,
+    public WrapableHandler<ScreenInterface, 18>,
+    public PluginClassStorage,
+    public CompOption::Class
+{
+
+    public:
+	typedef void* GrabHandle;
+
+    public:
+	CompScreen ();
+	~CompScreen ();
+
+	bool init (const char *name);
+
+	void eventLoop ();
+	bool processEvents ();
+
+	CompFileWatchHandle addFileWatch (const char        *path,
+					  int               mask,
+					  FileWatchCallBack callBack);
+
+	void removeFileWatch (CompFileWatchHandle handle);
+
+	const CompFileWatchList& getFileWatches () const;
+
+	CompWatchFdHandle addWatchFd (int             fd,
+				      short int       events,
+				      FdWatchCallBack callBack);
+
+	void removeWatchFd (CompWatchFdHandle handle);
+
+	void storeValue (CompString key, CompPrivate value);
+	bool hasValue (CompString key);
+	CompPrivate getValue (CompString key);
+	void eraseValue (CompString key);
+
+	Display * dpy ();
+
+	CompOption::Vector & getOptions ();
+
+	bool setOption (const CompString &name, CompOption::Value &value);
+
+	bool XRandr ();
+
+	int randrEvent ();
+
+	bool XShape ();
+
+	int shapeEvent ();
+
+	int syncEvent ();
+
+	SnDisplay * snDisplay ();
+
+	Window activeWindow ();
+
+	Window autoRaiseWindow ();
+
+	const char * displayString ();
+
+
+	CompWindow * findWindow (Window id);
+
+	CompWindow * findTopLevelWindow (Window id,
+					 bool   override_redirect = false);
+
+	bool readImageFromFile (CompString &name,
+				CompString &pname,
+				CompSize   &size,
+				void       *&data);
+
+	bool writeImageToFile (CompString &path,
+			       const char *format,
+			       CompSize   &size,
+			       void       *data);
+
+	unsigned int getWindowProp (Window       id,
+				    Atom         property,
+				    unsigned int defaultValue);
+
+
+	void setWindowProp (Window       id,
+			    Atom         property,
+			    unsigned int value);
+
+
+	unsigned short getWindowProp32 (Window         id,
+					Atom           property,
+					unsigned short defaultValue);
+
+
+	void setWindowProp32 (Window         id,
+			      Atom           property,
+			      unsigned short value);
+
+	Window root ();
+
+	int xkbEvent ();
+
+	XWindowAttributes attrib ();
+
+	int screenNum ();
+
+	CompWindowList & windows ();
+
+	void warpPointer (int dx, int dy);
+
+	Time getCurrentTime ();
+
+	Window selectionWindow ();
+
+	void forEachWindow (CompWindow::ForEach);
+
+	void focusDefaultWindow ();
+
+	void insertWindow (CompWindow *w, Window aboveId);
+
+	void unhookWindow (CompWindow *w);
+
+	Cursor normalCursor ();
+
+	Cursor invisibleCursor ();
+
+	/* Adds an X Pointer and Keyboard grab to the stack. Since
+	 * compiz as a client only need to grab once, multiple clients
+	 * can call this and all get events, but the pointer will
+	 * be grabbed once and the actual grab refcounted */
+	GrabHandle pushGrab (Cursor cursor, const char *name);
+
+	/* Allows you to change the pointer of your grab */
+	void updateGrab (GrabHandle handle, Cursor cursor);
+
+	/* Removes your grab from the stack. Once the internal refcount
+	 * reaches zero, the X Pointer and Keyboard are both ungrabbed
+	 */
+	void removeGrab (GrabHandle handle, CompPoint *restorePointer);
+
+	/* Returns true if a grab other than the grabs specified here
+	 * exists */
+	bool otherGrabExist (const char *, ...);
+
+	/* Returns true if the specified grab exists */
+	bool grabExist (const char *);
+
+	/* Returns true if the X Pointer and / or Keyboard is grabbed
+	 * by anything (another application, pluigins etc) */
+	bool grabbed ();
+
+	const CompWindowVector & clientList (bool stackingOrder = true);
+
+	bool addAction (CompAction *action);
+
+	void removeAction (CompAction *action);
+
+	void updateWorkarea ();
+
+	void toolkitAction (Atom   toolkitAction,
+			    Time   eventTime,
+			    Window window,
+			    long   data0,
+			    long   data1,
+			    long   data2);
+
+	void runCommand (CompString command);
+
+	void moveViewport (int tx, int ty, bool sync);
+
+	void sendWindowActivationRequest (Window id);
+
+	int outputDeviceForPoint (int x, int y);
+	int outputDeviceForPoint (const CompPoint &point);
+
+	CompRect getCurrentOutputExtents ();
+
+	const CompRect & getWorkareaForOutput (unsigned int outputNum) const;
+
+	void viewportForGeometry (const CompWindow::Geometry &gm,
+				  CompPoint                   &viewport);
+
+	int outputDeviceForGeometry (const CompWindow::Geometry& gm);
+
+	CompPoint vp ();
+
+	CompSize vpSize ();
+
+	int desktopWindowCount ();
+	unsigned int activeNum () const;
+
+	CompOutput::vector & outputDevs ();
+	CompOutput & currentOutputDev () const;
+
+	const CompRect & workArea () const;
+
+	unsigned int currentDesktop ();
+
+	unsigned int nDesktop ();
+
+	CompActiveWindowHistory *currentHistory ();
+
+	bool shouldSerializePlugins () ;
+
+	const CompRegion & region () const;
+
+	bool hasOverlappingOutputs ();
+
+	CompOutput & fullscreenOutput ();
+
+	std::vector<XineramaScreenInfo> & screenInfo ();
+
+	CompIcon *defaultIcon () const;
+
+	bool updateDefaultIcon ();
+
+	void updateSupportedWmHints ();
+
+	static unsigned int allocPluginClassIndex ();
+	static void freePluginClassIndex (unsigned int index);
+
+	WRAPABLE_HND (0, ScreenInterface, void, fileWatchAdded, CompFileWatch *)
+	WRAPABLE_HND (1, ScreenInterface, void, fileWatchRemoved, CompFileWatch *)
+
+	WRAPABLE_HND (2, ScreenInterface, bool, initPluginForScreen,
+		      CompPlugin *)
+	WRAPABLE_HND (3, ScreenInterface, void, finiPluginForScreen,
+		      CompPlugin *)
+
+	WRAPABLE_HND (4, ScreenInterface, bool, setOptionForPlugin,
+		      const char *, const char *, CompOption::Value &)
+
+	WRAPABLE_HND (5, ScreenInterface, void, sessionEvent, CompSession::Event,
+		      CompOption::Vector &)
+	WRAPABLE_HND (6, ScreenInterface, void, handleEvent, XEvent *event)
+	WRAPABLE_HND (7, ScreenInterface, void, handleCompizEvent,
+		      const char *, const char *, CompOption::Vector &)
+
+	WRAPABLE_HND (8, ScreenInterface, bool, fileToImage, CompString &,
+		      CompSize &, int &, void *&);
+	WRAPABLE_HND (9, ScreenInterface, bool, imageToFile, CompString &,
+		      CompString &, CompSize &, int, void *);
+
+	WRAPABLE_HND (10, ScreenInterface, CompMatch::Expression *,
+		      matchInitExp, const CompString&);
+	WRAPABLE_HND (11, ScreenInterface, void, matchExpHandlerChanged)
+	WRAPABLE_HND (12, ScreenInterface, void, matchPropertyChanged,
+		      CompWindow *)
+
+	WRAPABLE_HND (13, ScreenInterface, void, logMessage, const char *,
+		      CompLogLevel, const char*)
+	WRAPABLE_HND (14, ScreenInterface, void, enterShowDesktopMode);
+	WRAPABLE_HND (15, ScreenInterface, void, leaveShowDesktopMode,
+		      CompWindow *);
+
+	WRAPABLE_HND (16, ScreenInterface, void, outputChangeNotify);
+	WRAPABLE_HND (17, ScreenInterface, void, addSupportedAtoms,
+		      std::vector<Atom>& atoms);
+
+	friend class CompTimer;
+	friend class CompWindow;
+	friend class PrivateWindow;
+	friend class CoreWindow;
+	friend class ModifierHandler;
+	friend class CompEventSource;
+	friend class CompTimeoutSource;
+	friend class CompManager;
+	friend class CompWatchFd;
+
+    private:
+	PrivateScreen *priv;
+
+    public :
+
+	static bool showDesktop (CompAction         *action,
+				 CompAction::State  state,
+				 CompOption::Vector &options);
+
+	static bool windowMenu (CompAction         *action,
+				CompAction::State  state,
+				CompOption::Vector &options);
+
+	static bool closeWin (CompAction         *action,
+			      CompAction::State  state,
+			      CompOption::Vector &options);
+
+	static bool unmaximizeWin (CompAction         *action,
+				   CompAction::State  state,
+				   CompOption::Vector &options);
+
+	static bool minimizeWin (CompAction         *action,
+				 CompAction::State  state,
+				 CompOption::Vector &options);
+
+	static bool maximizeWin (CompAction         *action,
+				 CompAction::State  state,
+				 CompOption::Vector &options);
+
+	static bool maximizeWinHorizontally (CompAction         *action,
+					     CompAction::State  state,
+					     CompOption::Vector &options);
+
+	static bool maximizeWinVertically (CompAction         *action,
+					   CompAction::State  state,
+					   CompOption::Vector &options);
+
+	static bool raiseWin (CompAction         *action,
+			      CompAction::State  state,
+			      CompOption::Vector &options);
+
+	static bool lowerWin (CompAction         *action,
+			      CompAction::State  state,
+			      CompOption::Vector &options);
+
+	static bool toggleWinMaximized (CompAction         *action,
+					CompAction::State  state,
+					CompOption::Vector &options);
+
+	static bool toggleWinMaximizedHorizontally (CompAction         *action,
+						    CompAction::State  state,
+						    CompOption::Vector &options);
+
+	static bool toggleWinMaximizedVertically (CompAction         *action,
+					          CompAction::State  state,
+					          CompOption::Vector &options);
+
+	static bool shadeWin (CompAction         *action,
+			      CompAction::State  state,
+			      CompOption::Vector &options);
+
+	static void
+	compScreenSnEvent (SnMonitorEvent *event,
+			   void           *userData);
+
+	static int checkForError (Display *dpy);
+};
+
+#endif

=== added file '.pc/02_add_debug_spewer_for_apport.patch/include/core/window.h'
--- .pc/02_add_debug_spewer_for_apport.patch/include/core/window.h	1970-01-01 00:00:00 +0000
+++ .pc/02_add_debug_spewer_for_apport.patch/include/core/window.h	2011-06-15 05:26:31 +0000
@@ -0,0 +1,568 @@
+/*
+ * Copyright © 2008 Dennis Kasprzyk
+ * Copyright © 2007 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
+ * Dennis Kasprzyk not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Dennis Kasprzyk makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * DENNIS KASPRZYK DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL DENNIS KASPRZYK 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.
+ *
+ * Authors: Dennis Kasprzyk <onestone@xxxxxxxxxxxxxxxxx>
+ *          David Reveman <davidr@xxxxxxxxxx>
+ */
+
+#ifndef _COMPWINDOW_H
+#define _COMPWINDOW_H
+
+#include <boost/function.hpp>
+
+#include <X11/Xlib-xcb.h>
+#include <X11/Xutil.h>
+#include <X11/Xregion.h>
+#include <X11/extensions/Xdamage.h>
+#include <X11/extensions/sync.h>
+
+#include <core/action.h>
+#include <core/pluginclasses.h>
+#include <core/size.h>
+#include <core/point.h>
+#include <core/region.h>
+
+#include <core/wrapsystem.h>
+
+#include <map>
+
+class CompWindow;
+class CompIcon;
+class PrivateWindow;
+struct CompStartupSequence;
+
+#define ROOTPARENT(x) (((x)->frame ()) ? (x)->frame () : (x)->id ())
+
+#define CompWindowProtocolDeleteMask	  (1 << 0)
+#define CompWindowProtocolTakeFocusMask	  (1 << 1)
+#define CompWindowProtocolPingMask	  (1 << 2)
+#define CompWindowProtocolSyncRequestMask (1 << 3)
+
+#define CompWindowTypeDesktopMask      (1 << 0)
+#define CompWindowTypeDockMask         (1 << 1)
+#define CompWindowTypeToolbarMask      (1 << 2)
+#define CompWindowTypeMenuMask         (1 << 3)
+#define CompWindowTypeUtilMask         (1 << 4)
+#define CompWindowTypeSplashMask       (1 << 5)
+#define CompWindowTypeDialogMask       (1 << 6)
+#define CompWindowTypeNormalMask       (1 << 7)
+#define CompWindowTypeDropdownMenuMask (1 << 8)
+#define CompWindowTypePopupMenuMask    (1 << 9)
+#define CompWindowTypeTooltipMask      (1 << 10)
+#define CompWindowTypeNotificationMask (1 << 11)
+#define CompWindowTypeComboMask	       (1 << 12)
+#define CompWindowTypeDndMask	       (1 << 13)
+#define CompWindowTypeModalDialogMask  (1 << 14)
+#define CompWindowTypeFullscreenMask   (1 << 15)
+#define CompWindowTypeUnknownMask      (1 << 16)
+
+#define NO_FOCUS_MASK (CompWindowTypeDesktopMask | \
+		       CompWindowTypeDockMask    | \
+		       CompWindowTypeSplashMask)
+
+#define CompWindowStateModalMask	    (1 <<  0)
+#define CompWindowStateStickyMask	    (1 <<  1)
+#define CompWindowStateMaximizedVertMask    (1 <<  2)
+#define CompWindowStateMaximizedHorzMask    (1 <<  3)
+#define CompWindowStateShadedMask	    (1 <<  4)
+#define CompWindowStateSkipTaskbarMask	    (1 <<  5)
+#define CompWindowStateSkipPagerMask	    (1 <<  6)
+#define CompWindowStateHiddenMask	    (1 <<  7)
+#define CompWindowStateFullscreenMask	    (1 <<  8)
+#define CompWindowStateAboveMask	    (1 <<  9)
+#define CompWindowStateBelowMask	    (1 << 10)
+#define CompWindowStateDemandsAttentionMask (1 << 11)
+#define CompWindowStateDisplayModalMask	    (1 << 12)
+
+#define MAXIMIZE_STATE (CompWindowStateMaximizedHorzMask | \
+			CompWindowStateMaximizedVertMask)
+
+#define CompWindowActionMoveMask	  (1 << 0)
+#define CompWindowActionResizeMask	  (1 << 1)
+#define CompWindowActionStickMask	  (1 << 2)
+#define CompWindowActionMinimizeMask      (1 << 3)
+#define CompWindowActionMaximizeHorzMask  (1 << 4)
+#define CompWindowActionMaximizeVertMask  (1 << 5)
+#define CompWindowActionFullscreenMask	  (1 << 6)
+#define CompWindowActionCloseMask	  (1 << 7)
+#define CompWindowActionShadeMask	  (1 << 8)
+#define CompWindowActionChangeDesktopMask (1 << 9)
+#define CompWindowActionAboveMask	  (1 << 10)
+#define CompWindowActionBelowMask	  (1 << 11)
+
+#define MwmFuncAll      (1L << 0)
+#define MwmFuncResize   (1L << 1)
+#define MwmFuncMove     (1L << 2)
+#define MwmFuncIconify  (1L << 3)
+#define MwmFuncMaximize (1L << 4)
+#define MwmFuncClose    (1L << 5)
+
+#define MwmDecorHandle   (1L << 2)
+#define MwmDecorTitle    (1L << 3)
+#define MwmDecorMenu     (1L << 4)
+#define MwmDecorMinimize (1L << 5)
+#define MwmDecorMaximize (1L << 6)
+
+#define MwmDecorAll      (1L << 0)
+#define MwmDecorBorder   (1L << 1)
+#define MwmDecorHandle   (1L << 2)
+#define MwmDecorTitle    (1L << 3)
+#define MwmDecorMenu     (1L << 4)
+#define MwmDecorMinimize (1L << 5)
+#define MwmDecorMaximize (1L << 6)
+
+#define WmMoveResizeSizeTopLeft      0
+#define WmMoveResizeSizeTop          1
+#define WmMoveResizeSizeTopRight     2
+#define WmMoveResizeSizeRight        3
+#define WmMoveResizeSizeBottomRight  4
+#define WmMoveResizeSizeBottom       5
+#define WmMoveResizeSizeBottomLeft   6
+#define WmMoveResizeSizeLeft         7
+#define WmMoveResizeMove             8
+#define WmMoveResizeSizeKeyboard     9
+#define WmMoveResizeMoveKeyboard    10
+#define WmMoveResizeCancel          11
+
+/* EWMH source indication client types */
+#define ClientTypeUnknown      0
+#define ClientTypeApplication  1
+#define ClientTypePager        2
+
+#define CompWindowGrabKeyMask         (1 << 0)
+#define CompWindowGrabButtonMask      (1 << 1)
+#define CompWindowGrabMoveMask        (1 << 2)
+#define CompWindowGrabResizeMask      (1 << 3)
+#define CompWindowGrabExternalAppMask (1 << 4)
+
+/**
+ * Enumeration value which represents
+ * how a window will be stacked by compiz
+ */
+enum CompStackingUpdateMode {
+    CompStackingUpdateModeNone = 0,
+    CompStackingUpdateModeNormal,
+    CompStackingUpdateModeAboveFullscreen,
+    CompStackingUpdateModeInitialMap,
+    CompStackingUpdateModeInitialMapDeniedFocus
+};
+
+/**
+ * Enumeration value used by CompWindow::windowNotify
+ * which specifies the type of event that occured.
+ */
+enum CompWindowNotify {
+   CompWindowNotifyMap,
+   CompWindowNotifyUnmap,
+   CompWindowNotifyRestack,
+   CompWindowNotifyHide,
+   CompWindowNotifyShow,
+   CompWindowNotifyAliveChanged,
+   CompWindowNotifySyncAlarm,
+   CompWindowNotifyReparent,
+   CompWindowNotifyUnreparent,
+   CompWindowNotifyFrameUpdate,
+   CompWindowNotifyFocusChange,
+   CompWindowNotifyBeforeUnmap,
+   CompWindowNotifyBeforeDestroy,
+   CompWindowNotifyClose,
+   CompWindowNotifyMinimize,
+   CompWindowNotifyUnminimize,
+   CompWindowNotifyShade,
+   CompWindowNotifyUnshade,
+   CompWindowNotifyEnterShowDesktopMode,
+   CompWindowNotifyLeaveShowDesktopMode,
+   CompWindowNotifyBeforeMap
+};
+
+/**
+ * Specifies the left, right, top and bottom positions of a window's
+ * geometry
+ */
+struct CompWindowExtents {
+    int left;
+    int right;
+    int top;
+    int bottom;
+};
+
+/**
+ * Specifies the area of the screen taken up by strut windows
+ */
+struct CompStruts {
+    XRectangle left;
+    XRectangle right;
+    XRectangle top;
+    XRectangle bottom;
+};
+
+/**
+ * Wrappable core window functions. Derive from this class
+ * and overload these functions in order to have your function called
+ * after a core CompWindow function is called with the same name.
+ */
+class WindowInterface : public WrapableInterface<CompWindow, WindowInterface>
+{
+    public:
+	virtual void getOutputExtents (CompWindowExtents& output);
+
+	virtual void getAllowedActions (unsigned int &setActions,
+					unsigned int &clearActions);
+
+	virtual bool focus ();
+	virtual void activate ();
+	virtual bool place (CompPoint &pos);
+
+	virtual void validateResizeRequest (unsigned int   &mask,
+					    XWindowChanges *xwc,
+					    unsigned int   source);
+
+	virtual void resizeNotify (int dx, int dy, int dwidth, int dheight);
+	virtual void moveNotify (int dx, int dy, bool immediate);
+	virtual void windowNotify (CompWindowNotify n);
+
+	virtual void grabNotify (int x, int y,
+				 unsigned int state, unsigned int mask);
+	virtual void ungrabNotify ();
+
+	virtual void stateChangeNotify (unsigned int lastState);
+
+	virtual void updateFrameRegion (CompRegion &region);
+
+	virtual void minimize ();
+	virtual void unminimize ();
+	virtual bool minimized ();
+
+	virtual bool alpha ();
+	virtual bool isFocussable ();
+	virtual bool managed ();
+};
+
+/**
+ * An Window object that wraps an X window. This handles snychronization of
+ * window state, geometry, etc. between Compiz and the X server.
+ */
+class CompWindow :
+    public WrapableHandler<WindowInterface, 19>,
+    public PluginClassStorage
+{
+    public:
+
+    /**
+     * A mutable object about the dimensions and location of a CompWindow.
+     */
+	class Geometry : public CompRect
+    {
+	    public:
+		Geometry ();
+		Geometry (int, int, int, int, int);
+
+		int border () const;
+
+		void set (int, int, int, int, int);
+		void setBorder (int);
+
+	    private:
+		int mBorder;
+	};
+
+	typedef boost::function<void (CompWindow *)> ForEach;
+	typedef std::map<Window, CompWindow *> Map;
+
+    public:
+	CompWindow *next;
+	CompWindow *prev;
+
+    public:
+	~CompWindow ();
+
+	/**
+	*  Geometry retrieved from the
+	 * last ConfigureNotify event received
+	 */
+	Geometry & geometry () const;
+
+	int x () const;
+	int y () const;
+	CompPoint pos () const;
+
+	/* With border */
+	int width () const;
+	int height () const;
+	CompSize size () const;
+
+	/**
+	 * Geometry last sent to the server
+         */
+	Geometry & serverGeometry () const;
+
+	int serverX () const;
+	int serverY () const;
+	CompPoint serverPos () const;
+
+	/* With border */
+	int serverWidth () const;
+	int serverHeight () const;
+	const CompSize serverSize () const;
+
+	/* effective decoration extents */
+	CompRect borderRect () const;
+	CompRect serverBorderRect () const;
+
+	/* frame window geometry */
+	CompRect inputRect () const;
+	CompRect serverInputRect () const;
+
+	/* includes decorations and shadows */
+	CompRect outputRect () const;
+	CompRect serverOutputRect () const;
+
+	Window id ();
+	Window frame ();
+
+	CompString resName ();
+
+	const CompRegion & region () const;
+
+	const CompRegion & frameRegion () const;
+
+	void updateFrameRegion ();
+	void setWindowFrameExtents (CompWindowExtents *border,
+				    CompWindowExtents *frame = NULL);
+
+	unsigned int & wmType ();
+
+	unsigned int type ();
+
+	unsigned int & state ();
+
+	unsigned int actions ();
+
+	unsigned int & protocols ();
+
+	void close (Time serverTime);
+
+	bool inShowDesktopMode ();
+
+	void setShowDesktopMode (bool);
+
+	bool grabbed ();
+
+	int pendingMaps ();
+
+	unsigned int activeNum ();
+
+	int mapNum () const;
+
+	int & saveMask ();
+
+	XWindowChanges & saveWc ();
+
+	void moveToViewportPosition (int x, int y, bool sync);
+
+	char * startupId ();
+
+	unsigned int desktop ();
+
+	Window clientLeader (bool checkAncestor = false);
+
+	void changeState (unsigned int newState);
+
+	void recalcActions ();
+
+	void recalcType ();
+
+	void updateWindowOutputExtents ();
+
+	void destroy ();
+
+	void sendConfigureNotify ();
+
+	void sendSyncRequest ();
+
+	XSyncAlarm syncAlarm ();
+
+	void map ();
+
+	void unmap ();
+
+	void incrementUnmapReference ();
+
+	void incrementDestroyReference ();
+
+	bool hasUnmapReference ();
+
+	bool resize (XWindowAttributes);
+
+	bool resize (Geometry);
+
+	bool resize (int x, int y, int width, int height,
+		     int border = 0);
+
+	void move (int dx, int dy, bool immediate = true);
+
+	void syncPosition ();
+
+	void moveInputFocusTo ();
+
+	void moveInputFocusToOtherWindow ();
+
+	/* wraps XConfigureWindow and updates serverGeometry */
+	void configureXWindow (unsigned int valueMask,
+			       XWindowChanges *xwc);
+
+	void moveResize (XWindowChanges *xwc,
+			 unsigned int   xwcm,
+			 int            gravity,
+			 unsigned int   source);
+
+	void raise ();
+
+	void lower ();
+
+	void restackAbove (CompWindow *sibling);
+
+	void restackBelow (CompWindow *sibling);
+
+	void updateAttributes (CompStackingUpdateMode stackingMode);
+
+	void hide ();
+
+	void show ();
+
+	void maximize (unsigned int state = 0);
+
+	CompPoint defaultViewport ();
+
+	CompPoint & initialViewport () const;
+
+	CompIcon * getIcon (int width, int height);
+
+	const CompRect & iconGeometry () const;
+
+	int outputDevice ();
+
+	void setDesktop (unsigned int desktop);
+
+	bool onCurrentDesktop ();
+
+	bool onAllViewports ();
+
+	CompPoint getMovementForOffset (CompPoint offset);
+
+	Window transientFor ();
+
+	int pendingUnmaps ();
+
+	bool placed ();
+
+	bool shaded ();
+
+	CompWindowExtents & border () const;
+	CompWindowExtents & input () const;
+	CompWindowExtents & output () const;
+
+	XSizeHints & sizeHints () const;
+
+	bool destroyed ();
+
+	bool invisible ();
+
+	bool syncWait ();
+
+	bool alive ();
+
+	bool overrideRedirect ();
+
+	bool isMapped () const;
+	bool isViewable () const;
+
+	int windowClass ();
+
+	unsigned int depth ();
+
+	unsigned int mwmDecor ();
+	unsigned int mwmFunc ();
+
+	bool constrainNewWindowSize (int width,
+				     int height,
+				     int *newWidth,
+				     int *newHeight);
+
+	static unsigned int constrainWindowState (unsigned int state,
+						  unsigned int actions);
+
+	static unsigned int allocPluginClassIndex ();
+	static void freePluginClassIndex (unsigned int index);
+
+	bool updateStruts ();
+	CompStruts *struts ();
+
+	WRAPABLE_HND (0, WindowInterface, void, getOutputExtents,
+		      CompWindowExtents&);
+	WRAPABLE_HND (1, WindowInterface, void, getAllowedActions,
+		      unsigned int &, unsigned int &);
+
+	WRAPABLE_HND (2, WindowInterface, bool, focus);
+	WRAPABLE_HND (3, WindowInterface, void, activate);
+	WRAPABLE_HND (4, WindowInterface, bool, place, CompPoint &);
+	WRAPABLE_HND (5, WindowInterface, void, validateResizeRequest,
+		      unsigned int &, XWindowChanges *, unsigned int);
+
+	WRAPABLE_HND (6, WindowInterface, void, resizeNotify,
+		      int, int, int, int);
+	WRAPABLE_HND (7, WindowInterface, void, moveNotify, int, int, bool);
+	WRAPABLE_HND (8, WindowInterface, void, windowNotify, CompWindowNotify);
+	WRAPABLE_HND (9, WindowInterface, void, grabNotify, int, int,
+		      unsigned int, unsigned int);
+	WRAPABLE_HND (10, WindowInterface, void, ungrabNotify);
+	WRAPABLE_HND (11, WindowInterface, void, stateChangeNotify,
+		      unsigned int);
+
+	WRAPABLE_HND (12, WindowInterface, void, updateFrameRegion,
+		      CompRegion &);
+
+	WRAPABLE_HND (13, WindowInterface, void, minimize);
+	WRAPABLE_HND (14, WindowInterface, void, unminimize);
+	WRAPABLE_HND (15, WindowInterface, bool, minimized);
+
+	WRAPABLE_HND (16, WindowInterface, bool, alpha);
+	WRAPABLE_HND (17, WindowInterface, bool, isFocussable);
+	WRAPABLE_HND (18, WindowInterface, bool, managed);
+
+	friend class PrivateWindow;
+	friend class CompScreen;
+	friend class PrivateScreen;
+	friend class ModifierHandler;
+	friend class CoreWindow;
+
+    private:
+
+	CompWindow (Window	      aboveId,
+		    XWindowAttributes &wa,
+		    PrivateWindow     *priv);
+
+	PrivateWindow *priv;
+};
+
+#endif

=== added directory '.pc/02_add_debug_spewer_for_apport.patch/plugins'
=== added directory '.pc/02_add_debug_spewer_for_apport.patch/plugins/composite'
=== added directory '.pc/02_add_debug_spewer_for_apport.patch/plugins/composite/include'
=== added directory '.pc/02_add_debug_spewer_for_apport.patch/plugins/composite/include/composite'
=== added file '.pc/02_add_debug_spewer_for_apport.patch/plugins/composite/include/composite/composite.h'
--- .pc/02_add_debug_spewer_for_apport.patch/plugins/composite/include/composite/composite.h	1970-01-01 00:00:00 +0000
+++ .pc/02_add_debug_spewer_for_apport.patch/plugins/composite/include/composite/composite.h	2011-06-15 05:26:31 +0000
@@ -0,0 +1,414 @@
+/*
+ * Copyright © 2008 Dennis Kasprzyk
+ * Copyright © 2007 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
+ * Dennis Kasprzyk not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Dennis Kasprzyk makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * DENNIS KASPRZYK DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL DENNIS KASPRZYK 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.
+ *
+ * Authors: Dennis Kasprzyk <onestone@xxxxxxxxxxxxxxxxx>
+ *          David Reveman <davidr@xxxxxxxxxx>
+ */
+
+#ifndef _COMPIZ_COMPOSITE_H
+#define _COMPIZ_COMPOSITE_H
+
+#include <X11/extensions/Xcomposite.h>
+
+#define COMPIZ_COMPOSITE_ABI 2
+
+#include <core/pluginclasshandler.h>
+#include <core/timer.h>
+#include <core/core.h>
+
+#define COMPOSITE_SCREEN_DAMAGE_PENDING_MASK (1 << 0)
+#define COMPOSITE_SCREEN_DAMAGE_REGION_MASK  (1 << 1)
+#define COMPOSITE_SCREEN_DAMAGE_ALL_MASK     (1 << 2)
+
+#define OPAQUE 0xffff
+#define COLOR  0xffff
+#define BRIGHT 0xffff
+
+/**
+ * Used to indicate only part of the screen is being redrawn
+ */
+#define PAINT_SCREEN_REGION_MASK		   (1 << 0)
+/**
+ * Used to indicate that the whole screen is being redrawn
+ */
+#define PAINT_SCREEN_FULL_MASK			   (1 << 1)
+/**
+ * Used to indicate that every window on this screen will be
+ * transformed, so non-painted areas should be
+ * double-buffered
+ */
+#define PAINT_SCREEN_TRANSFORMED_MASK		   (1 << 2)
+/**
+ * Used to indicate that some windows on this screen will
+ * be drawn transformed
+ */
+#define PAINT_SCREEN_WITH_TRANSFORMED_WINDOWS_MASK (1 << 3)
+/**
+ * Used to indicate that nothing is being drawn on this pass
+ */
+#define PAINT_SCREEN_CLEAR_MASK			   (1 << 4)
+/**
+ * Used to indicate that occlusion detection is not in use
+ * on this pass
+ */
+#define PAINT_SCREEN_NO_OCCLUSION_DETECTION_MASK   (1 << 5)
+/**
+ * Used to indicate that no background will be drawn on this
+ * pass
+ */
+#define PAINT_SCREEN_NO_BACKGROUND_MASK            (1 << 6)
+
+
+typedef enum
+{
+    CompositeFPSLimiterModeDisabled = 0,
+    CompositeFPSLimiterModeDefault,
+    CompositeFPSLimiterModeVSyncLike
+} CompositeFPSLimiterMode;
+
+class PrivateCompositeScreen;
+class PrivateCompositeWindow;
+class CompositeScreen;
+class CompositeWindow;
+
+/**
+ * Wrapable function interface for CompositeScreen
+ */
+class CompositeScreenInterface :
+    public WrapableInterface<CompositeScreen, CompositeScreenInterface>
+{
+    public:
+    
+	/**
+	 * Hook which activates just before the screen is painted,
+	 * plugins should use this to calculate animation parameters
+	 *
+	 * @param msSinceLastPaint Describes how many milliseconds have passed
+	 * since the last screen repaint
+	 */
+	virtual void preparePaint (int);
+	
+	/**
+	 * Hook which activates right after the screen is painted,
+	 * plugins should use this to run post-paint cleanup, damage handling
+	 * and setting next paint variables
+	 *
+	 */
+	virtual void donePaint ();
+	
+	/**
+	 * Hookable function which dispatches painting of outputs
+	 * to rendering plugins such as OpenGL. Hook this function
+	 * to change which outputs are painted, or to paint them
+	 * manually if you are rendering
+	 */
+	virtual void paint (CompOutput::ptrList &outputs, unsigned int);
+	
+	/**
+	 * Hookable function which gets a list of windows that need to be 
+	 * evaluated for repainting
+	 */
+	virtual const CompWindowList & getWindowPaintList ();
+};
+
+
+class CompositeScreen :
+    public WrapableHandler<CompositeScreenInterface, 4>,
+    public PluginClassHandler<CompositeScreen, CompScreen, COMPIZ_COMPOSITE_ABI>,
+    public CompOption::Class
+{
+    public:
+
+	class PaintHandler {
+	    public:
+		virtual ~PaintHandler () {};
+
+		virtual void paintOutputs (CompOutput::ptrList &outputs,
+					   unsigned int        mask,
+					   const CompRegion    &region) = 0;
+
+		virtual bool hasVSync () { return false; };
+
+		virtual void prepareDrawing () {};
+	};
+
+    public:
+	CompositeScreen (CompScreen *s);
+	~CompositeScreen ();
+
+	CompOption::Vector & getOptions ();
+        bool setOption (const CompString &name, CompOption::Value &value);
+
+	/** 
+	 * Register a dispatch PaintHandler for a rendering plugin
+	 */	
+	bool registerPaintHandler (PaintHandler *pHnd);
+        void unregisterPaintHandler ();
+
+	bool compositingActive ();
+
+	/**
+	 * Returns the value of an XDamage Extension event signature
+	 */	
+	int damageEvent ();
+
+	/**
+	 * Causes the entire screen to be redrawn on the next
+	 * event loop
+	 */
+	void damageScreen ();
+
+	/**
+	 * Adds a specific region to be redrawn on the next
+	 * event loop
+	 */
+	void damageRegion (const CompRegion &);
+	void damagePending ();
+	
+
+	unsigned int damageMask ();
+	const CompRegion & currentDamage () const;
+
+	void showOutputWindow ();
+	void hideOutputWindow ();
+	void updateOutputWindow ();
+
+	Window overlay ();
+	Window output ();
+
+	int & overlayWindowCount ();
+
+	void setWindowPaintOffset (int x, int y);
+	CompPoint windowPaintOffset ();
+
+	/**
+	 * Limits the number of redraws per second
+	 */	
+	void setFPSLimiterMode (CompositeFPSLimiterMode newMode);
+	CompositeFPSLimiterMode FPSLimiterMode ();
+
+	int redrawTime ();
+	int optimalRedrawTime ();
+
+	bool handlePaintTimeout ();
+
+	WRAPABLE_HND (0, CompositeScreenInterface, void, preparePaint, int);
+	WRAPABLE_HND (1, CompositeScreenInterface, void, donePaint);
+	WRAPABLE_HND (2, CompositeScreenInterface, void, paint,
+		      CompOutput::ptrList &outputs, unsigned int);
+
+	WRAPABLE_HND (3, CompositeScreenInterface, const CompWindowList &,
+		      getWindowPaintList);
+
+	friend class PrivateCompositeDisplay;
+
+    private:
+	PrivateCompositeScreen *priv;
+
+    public:
+	static bool toggleSlowAnimations (CompAction         *action,
+					  CompAction::State  state,
+					  CompOption::Vector &options);
+};
+
+/*
+  window paint flags
+
+  bit 1-16 are used for read-only flags and they provide
+  information that describe the screen rendering pass
+  currently in process.
+
+  bit 17-32 are writable flags and they provide information
+  that is used to optimize rendering.
+*/
+
+/**
+ * this flag is present when window is being painted
+ * on a transformed screen.
+ */
+#define PAINT_WINDOW_ON_TRANSFORMED_SCREEN_MASK (1 << 0)
+
+/**
+ * this flag is present when window is being tested
+ * for occlusion of other windows.
+ */
+#define PAINT_WINDOW_OCCLUSION_DETECTION_MASK   (1 << 1)
+
+/**
+ * this flag indicates that the window ist painted with
+ * an offset
+ */
+#define PAINT_WINDOW_WITH_OFFSET_MASK           (1 << 2)
+
+/**
+ * flag indicate that window is translucent.
+ */
+#define PAINT_WINDOW_TRANSLUCENT_MASK           (1 << 16)
+
+/**
+ * flag indicate that window is transformed.
+ */
+#define PAINT_WINDOW_TRANSFORMED_MASK           (1 << 17)
+
+/**
+ * flag indicate that core PaintWindow function should
+ * not draw this window.
+ */
+#define PAINT_WINDOW_NO_CORE_INSTANCE_MASK	(1 << 18)
+
+/**
+ * flag indicate that blending is required.
+ */
+#define PAINT_WINDOW_BLEND_MASK			(1 << 19)
+
+class CompositeWindowInterface :
+    public WrapableInterface<CompositeWindow, CompositeWindowInterface>
+{
+    public:
+
+	/**
+	 * Hookable function to determine which parts of the
+	 * screen for this window to redraw on the next pass
+	 *
+	 * @param initial Indicates if this is the first time
+	 * this window is being redrawn
+	 * @param rect Reference to a rect which describes which
+	 * parts of the screen need to be redrawn on next pass
+	 */
+	virtual bool damageRect (bool initial, const CompRect &rect);
+};
+
+class CompositeWindow :
+    public WrapableHandler<CompositeWindowInterface, 1>,
+    public PluginClassHandler<CompositeWindow, CompWindow, COMPIZ_COMPOSITE_ABI>
+{
+    public:
+
+	CompositeWindow (CompWindow *w);
+	~CompositeWindow ();
+
+	/**
+	 * Binds the window contents of this window to some offscreen pixmap
+	 */
+	bool bind ();
+	
+	/**
+	 * Releases the pixmap data for this window with XFreePixmap.
+	 */
+	void release ();
+	
+	/**
+	 * Returns the window pixmap
+	 */
+	Pixmap pixmap ();
+
+	/**
+	 * Pixmap size at the time the pixmap was last bound
+	 */
+
+	const CompSize & size ();
+
+	/**
+	 * Forces this window to be composited so that the X Server
+	 * stops drawing it and all output is redirected to an
+	 * offscreen pixmap
+	 */
+	void redirect ();
+	
+	/**
+	 * Stops this window from being composited, so that the X Server
+	 * draws the window on-screen normally and output is not redirected
+	 * to an offscreen pixmap
+	 */
+	
+	void unredirect ();
+	
+	/**
+	 * Returns true if a window is redirected
+	 */
+	bool redirected ();
+	bool overlayWindow ();
+
+	void damageTransformedRect (float          xScale,
+				    float          yScale,
+				    float          xTranslate,
+				    float          yTranslate,
+				    const CompRect &rect);
+
+	void damageOutputExtents ();
+
+	/**
+	 * Causes an area of the window to be redrawn on the
+	 * next event loop
+	 */
+	void addDamageRect (const CompRect &);
+
+	/**
+	 * Causes the window to be redrawn on the next
+	 * event loop
+	 */
+	void addDamage (bool force = false);
+
+	/**
+	 * Returns true if this window will be redrawn or
+	 * partially redrawn on the next event loop
+	 */
+	bool damaged ();
+
+	/**
+	 * Sets screen redraw hints for "damaged" areas
+	 * as stated by XDamageNotifyEvent
+	 *
+	 * @param de An XDamageNotifyEvent to be used to
+	 * calculate areas to redraw on the next event loop
+	 */
+	void processDamage (XDamageNotifyEvent *de);
+
+	void updateOpacity ();
+	void updateBrightness ();
+	void updateSaturation ();
+
+	/**
+	 * Returns the window opacity
+	 */
+	unsigned short opacity ();
+	/**
+	 * Returns the window brightness
+	 */
+	unsigned short brightness ();
+	/**
+	 * Returns the window saturation
+	 */
+	unsigned short saturation ();
+
+	WRAPABLE_HND (0, CompositeWindowInterface, bool, damageRect,
+		      bool, const CompRect &);
+
+	friend class PrivateCompositeWindow;
+	friend class CompositeScreen;
+
+    private:
+	PrivateCompositeWindow *priv;
+};
+
+#endif

=== added directory '.pc/02_add_debug_spewer_for_apport.patch/plugins/debugspew'
=== added file '.pc/02_add_debug_spewer_for_apport.patch/plugins/debugspew/CMakeLists.txt'
=== added file '.pc/02_add_debug_spewer_for_apport.patch/plugins/debugspew/debugspew.xml.in'
=== added directory '.pc/02_add_debug_spewer_for_apport.patch/plugins/debugspew/src'
=== added file '.pc/02_add_debug_spewer_for_apport.patch/plugins/debugspew/src/debugspew.cpp'
=== added file '.pc/02_add_debug_spewer_for_apport.patch/plugins/debugspew/src/debugspew.h'
=== added directory '.pc/02_add_debug_spewer_for_apport.patch/plugins/opengl'
=== added directory '.pc/02_add_debug_spewer_for_apport.patch/plugins/opengl/include'
=== added directory '.pc/02_add_debug_spewer_for_apport.patch/plugins/opengl/include/opengl'
=== added file '.pc/02_add_debug_spewer_for_apport.patch/plugins/opengl/include/opengl/opengl.h'
--- .pc/02_add_debug_spewer_for_apport.patch/plugins/opengl/include/opengl/opengl.h	1970-01-01 00:00:00 +0000
+++ .pc/02_add_debug_spewer_for_apport.patch/plugins/opengl/include/opengl/opengl.h	2011-06-15 05:26:31 +0000
@@ -0,0 +1,590 @@
+/*
+ * Copyright © 2008 Dennis Kasprzyk
+ * Copyright © 2007 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
+ * Dennis Kasprzyk not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Dennis Kasprzyk makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * DENNIS KASPRZYK DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL DENNIS KASPRZYK 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.
+ *
+ * Authors: Dennis Kasprzyk <onestone@xxxxxxxxxxxxxxxxx>
+ *          David Reveman <davidr@xxxxxxxxxx>
+ */
+
+#ifndef _COMPIZ_OPENGL_H
+#define _COMPIZ_OPENGL_H
+
+#include <GL/gl.h>
+#include <GL/glx.h>
+
+#include <opengl/matrix.h>
+#include <opengl/texture.h>
+#include <opengl/fragment.h>
+
+#define COMPIZ_OPENGL_ABI 3
+
+#include <core/pluginclasshandler.h>
+
+/**
+ * camera distance from screen, 0.5 * tan (FOV)
+ */
+#define DEFAULT_Z_CAMERA 0.866025404f
+
+#define RED_SATURATION_WEIGHT   0.30f
+#define GREEN_SATURATION_WEIGHT 0.59f
+#define BLUE_SATURATION_WEIGHT  0.11f
+
+class PrivateGLScreen;
+class PrivateGLWindow;
+
+extern GLushort   defaultColor[4];
+
+#ifndef GLX_EXT_texture_from_pixmap
+#define GLX_BIND_TO_TEXTURE_RGB_EXT        0x20D0
+#define GLX_BIND_TO_TEXTURE_RGBA_EXT       0x20D1
+#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT     0x20D2
+#define GLX_BIND_TO_TEXTURE_TARGETS_EXT    0x20D3
+#define GLX_Y_INVERTED_EXT                 0x20D4
+#define GLX_TEXTURE_FORMAT_EXT             0x20D5
+#define GLX_TEXTURE_TARGET_EXT             0x20D6
+#define GLX_MIPMAP_TEXTURE_EXT             0x20D7
+#define GLX_TEXTURE_FORMAT_NONE_EXT        0x20D8
+#define GLX_TEXTURE_FORMAT_RGB_EXT         0x20D9
+#define GLX_TEXTURE_FORMAT_RGBA_EXT        0x20DA
+#define GLX_TEXTURE_1D_BIT_EXT             0x00000001
+#define GLX_TEXTURE_2D_BIT_EXT             0x00000002
+#define GLX_TEXTURE_RECTANGLE_BIT_EXT      0x00000004
+#define GLX_TEXTURE_1D_EXT                 0x20DB
+#define GLX_TEXTURE_2D_EXT                 0x20DC
+#define GLX_TEXTURE_RECTANGLE_EXT          0x20DD
+#define GLX_FRONT_LEFT_EXT                 0x20DE
+#endif
+
+namespace GL {
+
+    typedef void (*FuncPtr) (void);
+    typedef FuncPtr (*GLXGetProcAddressProc) (const GLubyte *procName);
+
+    typedef void    (*GLXBindTexImageProc)    (Display	 *display,
+					       GLXDrawable	 drawable,
+					       int		 buffer,
+					       int		 *attribList);
+    typedef void    (*GLXReleaseTexImageProc) (Display	 *display,
+					       GLXDrawable	 drawable,
+					       int		 buffer);
+    typedef void    (*GLXQueryDrawableProc)   (Display	 *display,
+					       GLXDrawable	 drawable,
+					       int		 attribute,
+					       unsigned int  *value);
+
+    typedef void (*GLXCopySubBufferProc) (Display     *display,
+					  GLXDrawable drawable,
+					  int	  x,
+					  int	  y,
+					  int	  width,
+					  int	  height);
+
+    typedef int (*GLXGetVideoSyncProc)  (unsigned int *count);
+    typedef int (*GLXWaitVideoSyncProc) (int	  divisor,
+					 int	  remainder,
+					 unsigned int *count);
+
+    #ifndef GLX_VERSION_1_3
+    typedef struct __GLXFBConfigRec *GLXFBConfig;
+    #endif
+
+    typedef GLXFBConfig *(*GLXGetFBConfigsProc) (Display *display,
+						 int     screen,
+						 int     *nElements);
+    typedef int (*GLXGetFBConfigAttribProc) (Display     *display,
+					     GLXFBConfig config,
+					     int	     attribute,
+					     int	     *value);
+    typedef GLXPixmap (*GLXCreatePixmapProc) (Display     *display,
+					      GLXFBConfig config,
+					      Pixmap      pixmap,
+					      const int   *attribList);
+    typedef void      (*GLXDestroyPixmapProc) (Display *display,
+    					       GLXPixmap pixmap);
+
+    typedef void (*GLActiveTextureProc) (GLenum texture);
+    typedef void (*GLClientActiveTextureProc) (GLenum texture);
+    typedef void (*GLMultiTexCoord2fProc) (GLenum, GLfloat, GLfloat);
+
+    typedef void (*GLGenProgramsProc) (GLsizei n,
+				       GLuint  *programs);
+    typedef void (*GLDeleteProgramsProc) (GLsizei n,
+					  GLuint  *programs);
+    typedef void (*GLBindProgramProc) (GLenum target,
+				       GLuint program);
+    typedef void (*GLProgramStringProc) (GLenum	  target,
+					 GLenum	  format,
+					 GLsizei	  len,
+					 const GLvoid *string);
+    typedef void (*GLProgramParameter4fProc) (GLenum  target,
+					      GLuint  index,
+					      GLfloat x,
+					      GLfloat y,
+					      GLfloat z,
+					      GLfloat w);
+    typedef void (*GLGetProgramivProc) (GLenum target,
+					GLenum pname,
+					int    *params);
+
+    typedef void (*GLGenFramebuffersProc) (GLsizei n,
+					   GLuint  *framebuffers);
+    typedef void (*GLDeleteFramebuffersProc) (GLsizei n,
+					      GLuint  *framebuffers);
+    typedef void (*GLBindFramebufferProc) (GLenum target,
+					   GLuint framebuffer);
+    typedef GLenum (*GLCheckFramebufferStatusProc) (GLenum target);
+    typedef void (*GLFramebufferTexture2DProc) (GLenum target,
+						GLenum attachment,
+						GLenum textarget,
+						GLuint texture,
+						GLint  level);
+    typedef void (*GLGenerateMipmapProc) (GLenum target);
+
+    extern GLXBindTexImageProc      bindTexImage;
+    extern GLXReleaseTexImageProc   releaseTexImage;
+    extern GLXQueryDrawableProc     queryDrawable;
+    extern GLXCopySubBufferProc     copySubBuffer;
+    extern GLXGetVideoSyncProc      getVideoSync;
+    extern GLXWaitVideoSyncProc     waitVideoSync;
+    extern GLXGetFBConfigsProc      getFBConfigs;
+    extern GLXGetFBConfigAttribProc getFBConfigAttrib;
+    extern GLXCreatePixmapProc      createPixmap;
+    extern GLXDestroyPixmapProc     destroyPixmap;
+
+    extern GLActiveTextureProc       activeTexture;
+    extern GLClientActiveTextureProc clientActiveTexture;
+    extern GLMultiTexCoord2fProc     multiTexCoord2f;
+
+    extern GLGenProgramsProc        genPrograms;
+    extern GLDeleteProgramsProc     deletePrograms;
+    extern GLBindProgramProc        bindProgram;
+    extern GLProgramStringProc      programString;
+    extern GLProgramParameter4fProc programEnvParameter4f;
+    extern GLProgramParameter4fProc programLocalParameter4f;
+    extern GLGetProgramivProc       getProgramiv;
+
+    extern GLGenFramebuffersProc        genFramebuffers;
+    extern GLDeleteFramebuffersProc     deleteFramebuffers;
+    extern GLBindFramebufferProc        bindFramebuffer;
+    extern GLCheckFramebufferStatusProc checkFramebufferStatus;
+    extern GLFramebufferTexture2DProc   framebufferTexture2D;
+    extern GLGenerateMipmapProc         generateMipmap;
+
+    extern bool  textureFromPixmap;
+    extern bool  textureRectangle;
+    extern bool  textureNonPowerOfTwo;
+    extern bool  textureEnvCombine;
+    extern bool  textureEnvCrossbar;
+    extern bool  textureBorderClamp;
+    extern bool  textureCompression;
+    extern GLint maxTextureSize;
+    extern bool  fbo;
+    extern bool  fragmentProgram;
+    extern GLint maxTextureUnits;
+
+    extern bool canDoSaturated;
+    extern bool canDoSlightlySaturated;
+};
+
+struct GLScreenPaintAttrib {
+    GLfloat xRotate;
+    GLfloat yRotate;
+    GLfloat vRotate;
+    GLfloat xTranslate;
+    GLfloat yTranslate;
+    GLfloat zTranslate;
+    GLfloat zCamera;
+};
+
+#define MAX_DEPTH 32
+
+struct GLFBConfig {
+    GLXFBConfig fbConfig;
+    int         yInverted;
+    int         mipmap;
+    int         textureFormat;
+    int         textureTargets;
+};
+
+#define NOTHING_TRANS_FILTER 0
+#define SCREEN_TRANS_FILTER  1
+#define WINDOW_TRANS_FILTER  2
+
+
+extern GLScreenPaintAttrib defaultScreenPaintAttrib;
+
+class GLScreen;
+
+class GLScreenInterface :
+    public WrapableInterface<GLScreen, GLScreenInterface>
+{
+    public:
+
+	/**
+	 * Hookable function used for plugins to use openGL to draw on an output
+	 *
+	 * @param attrib Describes some basic drawing attribs for the screen
+	 * including translation, rotation and scale
+	 * @param matrix Describes a 4x4 3D modelview matrix for which this
+	 * screen should be drawn in
+	 * @param region Describes the region of the screen being redrawn
+	 * @param output Describes the output being redrawn
+	 * @param mask   Bitmask which describes how the screen is being redrawn'
+	 */
+	virtual bool glPaintOutput (const GLScreenPaintAttrib &attrib,
+				    const GLMatrix 	      &matrix,
+				    const CompRegion 	      &region,
+				    CompOutput 		      *output,
+				    unsigned int	      mask);
+
+
+	/**
+	 * Hookable function used for plugins to use openGL to draw on an output
+	 * when the screen is transformed
+	 *
+	 * There is little difference between this and glPaintOutput, however
+	 * this will be called when the entire screen is being transformed
+	 * (eg cube)
+	 *
+	 * @param attrib Describes some basic drawing attribs for the screen
+	 * including translation, rotation and scale
+	 * @param matrix Describes a 4x4 3D modelview matrix for which this
+	 * screen should be drawn in
+	 * @param region Describes the region of the screen being redrawn
+	 * @param output Describes the output being redrawn
+	 * @param mask   Bitmask which describes how the screen is being redrawn'
+	 */
+	virtual void glPaintTransformedOutput (const GLScreenPaintAttrib &attrib,
+					       const GLMatrix 		 &matrix,
+					       const CompRegion 	 &region,
+					       CompOutput 		 *output,
+					       unsigned int		 mask);
+
+	/**
+	 * Hookable function to apply elements from a GLScreenPaintAttrib
+	 * to a GLMatrix in the context of a CompOutput
+	 *
+	 * @param attrib Describes the basic drawing attribs of a screen
+	 * including translation, rotation and scale to be applies to a matrix
+	 * @param output Describes the output in which these operations take
+	 * place
+	 * @param matrix Pointer to a matrix where transformations will
+	 * be applied
+	 */
+	virtual void glApplyTransform (const GLScreenPaintAttrib &attrib,
+				       CompOutput 		 *output,
+				       GLMatrix 		 *mask);
+
+	virtual void glEnableOutputClipping (const GLMatrix &,
+					     const CompRegion &,
+					     CompOutput *);
+	virtual void glDisableOutputClipping ();
+
+};
+
+
+class GLScreen :
+    public WrapableHandler<GLScreenInterface, 5>,
+    public PluginClassHandler<GLScreen, CompScreen, COMPIZ_OPENGL_ABI>,
+    public CompOption::Class
+{
+    public:
+	GLScreen (CompScreen *s);
+	~GLScreen ();
+
+	CompOption::Vector & getOptions ();
+        bool setOption (const CompString &name, CompOption::Value &value);
+
+	/**
+	 * Returns the current compiz-wide openGL texture filter
+	 */
+	GLenum textureFilter ();
+
+	/**
+	 * Sets a new compiz-wide openGL texture filter
+	 */
+	void setTextureFilter (GLenum);
+
+	void clearTargetOutput (unsigned int mask);
+
+	/**
+	 * Gets the libGL address of a particular openGL functor
+	 */
+	GL::FuncPtr getProcAddress (const char *name);
+
+	void updateBackground ();
+
+	/**
+	 * Returns the current compiz-wide texture filter
+	 */
+	GLTexture::Filter filter (int);
+
+	/**
+	 * Sets a new compiz-wide texture filter
+	 */
+	void setFilter (int, GLTexture::Filter);
+
+	GLFragment::Storage * fragmentStorage ();
+
+	/**
+	 * Sets a new compiz-wid openGL texture environment mode
+	 */
+	void setTexEnvMode (GLenum mode);
+
+	/**
+	 * Turns lighting on and off
+	 */
+
+	void setLighting (bool lighting);
+
+	/**
+	 * Returns true if lighting is enabled
+	 */
+	bool lighting ();
+
+	void clearOutput (CompOutput *output, unsigned int mask);
+
+	void setDefaultViewport ();
+
+	GLTexture::BindPixmapHandle registerBindPixmap (GLTexture::BindPixmapProc);
+	void unregisterBindPixmap (GLTexture::BindPixmapHandle);
+
+	GLFBConfig * glxPixmapFBConfig (unsigned int depth);
+
+	/**
+	 * Returns a default icon texture
+	 */
+	GLTexture *defaultIcon ();
+
+	void resetRasterPos ();
+
+	/**
+	 * Returns a 4x4 const float array which
+	 * represents the current projection matrix
+	 */
+	const float * projectionMatrix ();
+
+	WRAPABLE_HND (0, GLScreenInterface, bool, glPaintOutput,
+		      const GLScreenPaintAttrib &, const GLMatrix &,
+		      const CompRegion &, CompOutput *, unsigned int);
+	WRAPABLE_HND (1, GLScreenInterface, void, glPaintTransformedOutput,
+		      const GLScreenPaintAttrib &,
+		      const GLMatrix &, const CompRegion &, CompOutput *,
+		      unsigned int);
+	WRAPABLE_HND (2, GLScreenInterface, void, glApplyTransform,
+		      const GLScreenPaintAttrib &, CompOutput *, GLMatrix *);
+
+	WRAPABLE_HND (3, GLScreenInterface, void, glEnableOutputClipping,
+		      const GLMatrix &, const CompRegion &, CompOutput *);
+	WRAPABLE_HND (4, GLScreenInterface, void, glDisableOutputClipping);
+
+	friend class GLTexture;
+
+    private:
+	PrivateGLScreen *priv;
+};
+
+struct GLWindowPaintAttrib {
+    GLushort opacity;
+    GLushort brightness;
+    GLushort saturation;
+    GLfloat  xScale;
+    GLfloat  yScale;
+    GLfloat  xTranslate;
+    GLfloat  yTranslate;
+};
+
+class GLWindow;
+
+class GLWindowInterface :
+    public WrapableInterface<GLWindow, GLWindowInterface>
+{
+    public:
+
+	/**
+	 * Hookable function to paint a window on-screen
+	 *
+	 * @param attrib Describes basic drawing attribs of this window;
+	 * opacity, brightness, saturation
+	 * @param matrix A 4x4 matrix which describes the transformation of
+	 * this window
+	 * @param region Describes the region of the window being drawn
+	 * @param mask   Bitmask which describes how this window is drawn
+	 */
+	virtual bool glPaint (const GLWindowPaintAttrib &attrib,
+			      const GLMatrix 		&matrix,
+			      const CompRegion 		&region,
+			      unsigned int		mask);
+
+	/**
+	 * Hookable function to draw a window on-screen
+	 *
+	 * Unlike glPaint, when glDraw is called, the window is
+	 * drawn immediately
+	 *
+	 * @param matrix A 4x4 matrix which describes the transformation of
+	 * this window
+	 * @param attrib A Fragment attrib which describes the texture
+	 * modification state of this window
+	 * @param region Describes which region will be drawn
+	 * @param mask   Bitmask which describes how this window is drawn
+	 */
+	virtual bool glDraw (const GLMatrix 	&matrix,
+			     GLFragment::Attrib &attrib,
+			     const CompRegion 	&region,
+			     unsigned int	mask);
+
+	/**
+	 * Hookable function to add points to a window
+	 * texture geometry
+	 *
+	 * This function adds rects to a window's texture geometry
+	 * and modifies their points by the values in the GLTexture::MatrixList
+	 *
+	 * It is used for texture transformation to set points
+	 * for where the texture should be skewed
+	 *
+	 * @param matrices Describes the matrices by which the texture exists
+	 * @param region
+	 * @param clipRegion
+	 * @param min
+	 * @param max
+	 */
+	virtual void glAddGeometry (const GLTexture::MatrixList &matrices,
+				    const CompRegion 		&region,
+				    const CompRegion 		&clipRegion,
+				    unsigned int		min = MAXSHORT,
+				    unsigned int		max = MAXSHORT);
+	virtual void glDrawTexture (GLTexture *texture, GLFragment::Attrib &,
+				    unsigned int);
+	virtual void glDrawGeometry ();
+};
+
+class GLWindow :
+    public WrapableHandler<GLWindowInterface, 5>,
+    public PluginClassHandler<GLWindow, CompWindow, COMPIZ_OPENGL_ABI>
+{
+    public:
+
+	/**
+	 * Class which describes the texture geometry and transformation points
+	 * of a window
+	 */
+	class Geometry {
+	    public:
+		Geometry ();
+		~Geometry ();
+
+		void reset ();
+
+		/**
+		 * Set the number of vertices in the texture geometry
+		 */
+		bool moreVertices (int newSize);
+
+		/**
+		 * Set the number of indices in the texture geometry
+		 */
+		bool moreIndices (int newSize);
+
+	    public:
+		GLfloat  *vertices;
+		int      vertexSize;
+		int      vertexStride;
+		GLushort *indices;
+		int      indexSize;
+		int      vCount;
+		int      texUnits;
+		int      texCoordSize;
+		int      indexCount;
+	};
+
+	static GLWindowPaintAttrib defaultPaintAttrib;
+    public:
+
+	GLWindow (CompWindow *w);
+	~GLWindow ();
+
+	const CompRegion & clip () const;
+
+	/**
+	 * Returns the current paint attributes for this window
+	 */
+	GLWindowPaintAttrib & paintAttrib ();
+
+	/**
+	 * Returns the last paint attributes for this window
+	 */
+	GLWindowPaintAttrib & lastPaintAttrib ();
+
+	unsigned int lastMask () const;
+
+	/**
+	 * Binds this window to an openGL texture
+	 */
+	bool bind ();
+
+	/**
+	 * Releases this window from an openGL texture
+	 */
+	void release ();
+
+	/**
+	 * Returns the tiled textures for this window
+	 */
+	const GLTexture::List &       textures () const;
+
+	/**
+	 * Returns the matrices for the tiled textures for this windwo
+	 */
+	const GLTexture::MatrixList & matrices () const;
+
+	void updatePaintAttribs ();
+
+	/**
+	 * Returns the window texture geometry
+	 */
+	Geometry & geometry ();
+
+	GLTexture *getIcon (int width, int height);
+
+	WRAPABLE_HND (0, GLWindowInterface, bool, glPaint,
+		      const GLWindowPaintAttrib &, const GLMatrix &,
+		      const CompRegion &, unsigned int);
+	WRAPABLE_HND (1, GLWindowInterface, bool, glDraw, const GLMatrix &,
+		      GLFragment::Attrib &, const CompRegion &, unsigned int);
+	WRAPABLE_HND (2, GLWindowInterface, void, glAddGeometry,
+		      const GLTexture::MatrixList &, const CompRegion &,
+		      const CompRegion &,
+		      unsigned int = MAXSHORT, unsigned int = MAXSHORT);
+	WRAPABLE_HND (3, GLWindowInterface, void, glDrawTexture,
+		      GLTexture *texture, GLFragment::Attrib &, unsigned int);
+	WRAPABLE_HND (4, GLWindowInterface, void, glDrawGeometry);
+
+	friend class GLScreen;
+	friend class PrivateGLScreen;
+
+    private:
+	PrivateGLWindow *priv;
+};
+
+#endif

=== added directory '.pc/02_add_debug_spewer_for_apport.patch/src'
=== added file '.pc/02_add_debug_spewer_for_apport.patch/src/privatescreen.h'
--- .pc/02_add_debug_spewer_for_apport.patch/src/privatescreen.h	1970-01-01 00:00:00 +0000
+++ .pc/02_add_debug_spewer_for_apport.patch/src/privatescreen.h	2011-06-15 05:26:31 +0000
@@ -0,0 +1,551 @@
+/*
+ * Copyright © 2008 Dennis Kasprzyk
+ * Copyright © 2007 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
+ * Dennis Kasprzyk not be used in advertising or publicity pertaining to
+ * distribution of the software without specific, written prior permission.
+ * Dennis Kasprzyk makes no representations about the suitability of this
+ * software for any purpose. It is provided "as is" without express or
+ * implied warranty.
+ *
+ * DENNIS KASPRZYK DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL DENNIS KASPRZYK 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.
+ *
+ * Authors: Dennis Kasprzyk <onestone@xxxxxxxxxxxxxxxxx>
+ *          David Reveman <davidr@xxxxxxxxxx>
+ */
+
+#ifndef _PRIVATESCREEN_H
+#define _PRIVATESCREEN_H
+
+#include <core/core.h>
+#include <core/screen.h>
+#include <core/size.h>
+#include <core/point.h>
+#include <core/timer.h>
+#include <core/plugin.h>
+#include <time.h>
+
+#include <glibmm/main.h>
+
+#include "core_options.h"
+
+CompPlugin::VTable * getCoreVTable ();
+
+class CoreWindow;
+
+extern bool shutDown;
+extern bool restartSignal;
+
+class CompWatchFd :
+    public Glib::IOSource
+{
+    public:
+
+	static
+	Glib::RefPtr <CompWatchFd> create (int,
+					   Glib::IOCondition,
+					   FdWatchCallBack);
+
+    protected:
+
+	explicit CompWatchFd (int, Glib::IOCondition, FdWatchCallBack);
+	bool		 internalCallback (Glib::IOCondition);
+
+    private:
+
+	int		  mFd;
+	FdWatchCallBack   mCallBack;
+	CompWatchFdHandle mHandle;
+	bool		  mForceFail;
+	bool		  mExecuting;
+
+    friend class CompScreen;
+};
+
+class CompTimeoutSource :
+    public Glib::Source
+{
+    public:
+
+	static Glib::RefPtr <CompTimeoutSource> create  ();
+	sigc::connection connect (const sigc::slot <bool> &slot);
+
+    protected:
+
+	bool prepare (int &timeout);
+	bool check ();
+	bool dispatch (sigc::slot_base *slot);
+	bool callback ();
+
+	explicit CompTimeoutSource ();
+	virtual ~CompTimeoutSource ();
+
+    private:
+
+	struct timespec mLastTimeout;
+
+    friend class CompTimer;
+    friend class PrivateScreen;
+};
+
+extern CompWindow *lastFoundWindow;
+extern bool	  useDesktopHints;
+
+extern bool inHandleEvent;
+
+extern CompScreen *targetScreen;
+extern CompOutput *targetOutput;
+
+extern std::list <CompString> initialPlugins;
+
+
+typedef struct _CompDelayedEdgeSettings
+{
+    CompAction::CallBack initiate;
+    CompAction::CallBack terminate;
+
+    unsigned int edge;
+    unsigned int state;
+
+    CompOption::Vector options;
+} CompDelayedEdgeSettings;
+
+
+#define SCREEN_EDGE_LEFT	0
+#define SCREEN_EDGE_RIGHT	1
+#define SCREEN_EDGE_TOP		2
+#define SCREEN_EDGE_BOTTOM	3
+#define SCREEN_EDGE_TOPLEFT	4
+#define SCREEN_EDGE_TOPRIGHT	5
+#define SCREEN_EDGE_BOTTOMLEFT	6
+#define SCREEN_EDGE_BOTTOMRIGHT 7
+#define SCREEN_EDGE_NUM		8
+
+struct CompScreenEdge {
+    Window	 id;
+    unsigned int count;
+};
+
+struct CompGroup {
+    unsigned int      refCnt;
+    Window	      id;
+};
+
+struct CompStartupSequence {
+    SnStartupSequence		*sequence;
+    unsigned int		viewportX;
+    unsigned int		viewportY;
+};
+
+class CompEventSource:
+    public Glib::Source
+{
+    public:
+
+	static
+	Glib::RefPtr <CompEventSource> create ();
+
+	sigc::connection connect (const sigc::slot <bool> &slot);
+
+    protected:
+
+	bool prepare (int &timeout);
+	bool check ();
+	bool dispatch (sigc::slot_base *slot);
+	bool callback ();
+
+	explicit CompEventSource ();
+	virtual ~CompEventSource ();
+
+    private:
+
+	Display	      *mDpy;
+	Glib::PollFD  mPollFD;
+	int	      mConnectionFD;
+};
+
+class PrivateScreen : public CoreOptions {
+
+    public:
+	class KeyGrab {
+	    public:
+		int          keycode;
+		unsigned int modifiers;
+		int          count;
+	};
+
+	class ButtonGrab {
+	    public:
+		int          button;
+		unsigned int modifiers;
+		int          count;
+	};
+
+	class Grab {
+	    public:
+
+		friend class CompScreen;
+	    private:
+		Cursor     cursor;
+		const char *name;
+	};
+
+    public:
+	PrivateScreen (CompScreen *screen);
+	~PrivateScreen ();
+
+	bool setOption (const CompString &name, CompOption::Value &value);
+
+	void processEvents ();
+
+	void removeDestroyed ();
+
+	void updatePassiveGrabs ();
+
+	void handleTimers (struct timeval *tv);
+
+	void addTimer (CompTimer *timer);
+	void removeTimer (CompTimer *timer);
+
+	void updatePlugins ();
+
+	bool triggerButtonPressBindings (CompOption::Vector &options,
+					 XButtonEvent       *event,
+					 CompOption::Vector &arguments);
+
+	bool triggerButtonReleaseBindings (CompOption::Vector &options,
+					   XButtonEvent       *event,
+					   CompOption::Vector &arguments);
+
+	bool triggerKeyPressBindings (CompOption::Vector &options,
+				      XKeyEvent          *event,
+				      CompOption::Vector &arguments);
+
+	bool triggerKeyReleaseBindings (CompOption::Vector &options,
+					XKeyEvent          *event,
+					CompOption::Vector &arguments);
+
+	bool triggerStateNotifyBindings (CompOption::Vector  &options,
+					 XkbStateNotifyEvent *event,
+					 CompOption::Vector  &arguments);
+
+	bool triggerEdgeEnter (unsigned int       edge,
+			       CompAction::State  state,
+			       CompOption::Vector &arguments);
+
+	void setAudibleBell (bool audible);
+
+	bool syncStacks ();
+
+	bool handlePingTimeout ();
+
+	bool handleActionEvent (XEvent *event);
+
+	void handleSelectionRequest (XEvent *event);
+
+	void handleSelectionClear (XEvent *event);
+
+	bool desktopHintEqual (unsigned long *data,
+			       int           size,
+			       int           offset,
+			       int           hintSize);
+
+	void setDesktopHints ();
+
+	void setVirtualScreenSize (int hsize, int vsize);
+
+	void updateOutputDevices ();
+
+	void detectOutputDevices ();
+
+	void updateStartupFeedback ();
+
+	void updateScreenEdges ();
+
+	void reshape (int w, int h);
+
+	bool handleStartupSequenceTimeout ();
+
+	void addSequence (SnStartupSequence *sequence);
+
+	void removeSequence (SnStartupSequence *sequence);
+
+	void removeAllSequences ();
+
+	void setSupportingWmCheck ();
+
+	void getDesktopHints ();
+
+	void grabUngrabOneKey (unsigned int modifiers,
+			       int          keycode,
+			       bool         grab);
+
+
+	bool grabUngrabKeys (unsigned int modifiers,
+			     int          keycode,
+			     bool         grab);
+
+	bool addPassiveKeyGrab (CompAction::KeyBinding &key);
+
+	void removePassiveKeyGrab (CompAction::KeyBinding &key);
+
+	void updatePassiveKeyGrabs ();
+
+	bool addPassiveButtonGrab (CompAction::ButtonBinding &button);
+
+	void removePassiveButtonGrab (CompAction::ButtonBinding &button);
+
+	CompRect computeWorkareaForBox (const CompRect &box);
+
+	void updateScreenInfo ();
+
+	Window getActiveWindow (Window root);
+
+	int getWmState (Window id);
+
+	void setWmState (int state, Window id);
+
+	unsigned int windowStateMask (Atom state);
+
+	static unsigned int windowStateFromString (const char *str);
+
+	unsigned int getWindowState (Window id);
+
+	void setWindowState (unsigned int state, Window id);
+
+	unsigned int getWindowType (Window id);
+
+	void getMwmHints (Window       id,
+			  unsigned int *func,
+			  unsigned int *decor);
+
+	unsigned int getProtocols (Window id);
+
+	bool readWindowProp32 (Window         id,
+			       Atom           property,
+			       unsigned short *returnValue);
+
+	void setCurrentOutput (unsigned int outputNum);
+
+	void configure (XConfigureEvent *ce);
+
+	void eraseWindowFromMap (Window id);
+
+	void updateClientList ();
+
+	CompGroup * addGroup (Window id);
+
+	void removeGroup (CompGroup *group);
+
+	CompGroup * findGroup (Window id);
+
+	void applyStartupProperties (CompWindow *window);
+
+	Window getTopWindow ();
+
+	void setNumberOfDesktops (unsigned int nDesktop);
+
+	void setCurrentDesktop (unsigned int desktop);
+
+	void setCurrentActiveWindowHistory (int x, int y);
+
+	void addToCurrentActiveWindowHistory (Window id);
+
+	void enableEdge (int edge);
+
+	void disableEdge (int edge);
+
+	void addScreenActions ();
+
+	CompWindow *
+	focusTopMostWindow ();
+
+	bool
+	createFailed ();
+	
+	void setDefaultWindowAttributes (XWindowAttributes *);
+
+    public:
+
+	PrivateScreen *priv;
+
+	Glib::RefPtr <Glib::MainLoop>  mainloop;
+	Glib::RefPtr <CompEventSource> source;
+	Glib::RefPtr <CompTimeoutSource> timeout;
+	Glib::RefPtr <Glib::MainContext> ctx;
+
+	CompFileWatchList   fileWatch;
+	CompFileWatchHandle lastFileWatchHandle;
+
+	std::list <CompTimer *> timers;
+	struct timeval         lastTimeout;
+
+	std::list<Glib::RefPtr <CompWatchFd> > watchFds;
+	CompWatchFdHandle        lastWatchFdHandle;
+
+	std::map<CompString, CompPrivate> valueMap;
+
+	xcb_connection_t *connection;
+
+	Display    *dpy;
+
+	int syncEvent, syncError;
+
+	bool randrExtension;
+	int  randrEvent, randrError;
+
+	bool shapeExtension;
+	int  shapeEvent, shapeError;
+
+	bool xkbExtension;
+	int  xkbEvent, xkbError;
+
+	bool xineramaExtension;
+	int  xineramaEvent, xineramaError;
+
+	std::vector<XineramaScreenInfo> screenInfo;
+
+	SnDisplay *snDisplay;
+
+	unsigned int lastPing;
+	CompTimer    pingTimer;
+
+	/* Stack Attack Hack */
+	CompTimer    stackAttackTimer;
+
+	Window activeWindow;
+	Window nextActiveWindow;
+
+	Window below;
+	char   displayString[256];
+
+	KeyCode escapeKeyCode;
+	KeyCode returnKeyCode;
+
+	CompTimer autoRaiseTimer;
+	Window    autoRaiseWindow;
+
+	CompTimer               edgeDelayTimer;
+	CompDelayedEdgeSettings edgeDelaySettings;
+
+	CompOption::Value plugin;
+	bool	          dirtyPluginList;
+
+	CompScreen  *screen;
+
+	std::list <CoreWindow *> createdWindows;
+	CompWindowList windows;
+	CompWindow::Map windowsMap;
+
+	Colormap colormap;
+	int      screenNum;
+
+	CompPoint    vp;
+	CompSize     vpSize;
+	unsigned int nDesktop;
+	unsigned int currentDesktop;
+	CompRegion   region;
+
+	Window	      root;
+
+	XWindowAttributes attrib;
+	Window            grabWindow;
+
+	int          desktopWindowCount;
+	unsigned int mapNum;
+	unsigned int activeNum;
+
+	CompOutput::vector outputDevs;
+	int	           currentOutputDev;
+	CompOutput         fullscreenOutput;
+	bool               hasOverlappingOutputs;
+
+	XRectangle lastViewport;
+
+	CompActiveWindowHistory history[ACTIVE_WINDOW_HISTORY_NUM];
+	int                     currentHistory;
+
+	CompScreenEdge screenEdge[SCREEN_EDGE_NUM];
+
+	SnMonitorContext                 *snContext;
+	std::list<CompStartupSequence *> startupSequences;
+	CompTimer                        startupSequenceTimer;
+
+	std::list<CompGroup *> groups;
+
+	CompIcon *defaultIcon;
+
+	Window wmSnSelectionWindow;
+	Atom   wmSnAtom;
+	Time   wmSnTimestamp;
+
+	Cursor normalCursor;
+	Cursor busyCursor;
+	Cursor invisibleCursor;
+
+	CompWindowVector clientList;            /* clients in mapping order */
+	CompWindowVector clientListStacking;    /* clients in stacking order */
+
+	std::vector<Window> clientIdList;        /* client ids in mapping order */
+	std::vector<Window> clientIdListStacking;/* client ids in stacking order */
+
+	std::list<ButtonGrab> buttonGrabs;
+	std::list<KeyGrab>    keyGrabs;
+
+	std::list<Grab *> grabs;
+
+	bool		      grabbed; /* true once we recieve a GrabNotify
+					  on FocusOut and false on
+					  UngrabNotify from FocusIn */
+
+	unsigned int pendingDestroys;
+
+	CompRect workArea;
+
+	unsigned int showingDesktopMask;
+
+	unsigned long *desktopHintData;
+	int           desktopHintSize;
+
+	Window	      edgeWindow;
+	Window	      xdndWindow;
+
+        bool initialized;
+};
+
+class CompManager
+{
+    public:
+
+	CompManager ();
+
+	bool init ();
+	void run ();
+	void fini ();
+
+	bool parseArguments (int, char **);
+	void usage ();
+
+	static bool initPlugin (CompPlugin *p);
+	static void finiPlugin (CompPlugin *p);
+
+    private:
+
+	std::list <CompString> plugins;
+	bool		       disableSm;
+	char		       *clientId;
+	char		       *displayName;
+};
+
+#endif

=== added directory '.pc/030_no_fade_in_staticswicher.patch'
=== added directory '.pc/030_no_fade_in_staticswicher.patch/plugins'
=== added directory '.pc/030_no_fade_in_staticswicher.patch/plugins/fade'
=== added file '.pc/030_no_fade_in_staticswicher.patch/plugins/fade/fade.xml.in'
--- .pc/030_no_fade_in_staticswicher.patch/plugins/fade/fade.xml.in	1970-01-01 00:00:00 +0000
+++ .pc/030_no_fade_in_staticswicher.patch/plugins/fade/fade.xml.in	2011-06-15 05:26:31 +0000
@@ -0,0 +1,85 @@
+<compiz>
+    <plugin name="fade" useBcop="true">
+	<_short>Fading Windows</_short>
+	<_long>Fade in windows when mapped and fade out windows when unmapped</_long>
+	<category>Effects</category>
+	<deps>
+	    <requirement>
+		<plugin>opengl</plugin>
+	    </requirement>
+	    <relation type="after">
+		<plugin>decor</plugin>
+	    </relation>
+	    <relation type="before">
+		<plugin>cube</plugin>
+		<plugin>scale</plugin>
+	    </relation>
+	</deps>
+	<options>
+	    <option name="fade_mode" type="int">
+		<_short>Fade Mode</_short>
+		<_long>Window fade mode</_long>
+		<min>0</min>
+		<max>1</max>
+		<default>0</default>
+		<desc>
+		    <value>0</value>
+		    <_name>Constant speed</_name>
+		</desc>
+		<desc>
+		    <value>1</value>
+		    <_name>Constant time</_name>
+		</desc>
+	    </option>
+	    <option name="fade_speed" type="float">
+		<_short>Fade Speed</_short>
+		<_long>Window fade speed</_long>
+		<default>5.0</default>
+		<min>0.1</min>
+		<max>25.0</max>
+		<precision>0.1</precision>
+	    </option>
+	    <option name="fade_time" type="int">
+		<_short>Fade Time</_short>
+		<_long>Window fade time (in ms) in "Constant time" mode</_long>
+		<default>100</default>
+		<min>1</min>
+		<max>5000</max>
+	    </option>
+	    <option name="window_match" type="match">
+		<_short>Fade windows</_short>
+		<_long>Windows that should be fading</_long>
+                <default>any &amp; !(title=notify-osd)</default>
+	    </option>
+	    <option name="visual_bell" type="bool">
+		<_short>Visual Bell</_short>
+		<_long>Fade effect on system beep</_long>
+		<default>false</default>
+	    </option>
+	    <option name="fullscreen_visual_bell" type="bool">
+		<_short>Fullscreen Visual Bell</_short>
+		<_long>Fullscreen fade effect on system beep</_long>
+		<default>false</default>
+	    </option>
+	    <option name="dim_unresponsive" type="bool">
+		<_short>Dim Unresponsive Windows</_short>
+		<_long>Dim windows that are not responding to window manager requests</_long>
+		<default>true</default>
+	    </option>
+	    <option name="unresponsive_brightness" type="int">
+		<_short>Unresponsive Window Brightness</_short>
+		<_long>Brightness (in %) of unresponsive windows</_long>
+		<min>0</min>
+		<max>100</max>
+		<default>65</default>
+	    </option>
+	    <option name="unresponsive_saturation" type="int">
+		<_short>Unresponsive Window Saturation</_short>
+		<_long>Saturation (in %) of unresponsive windows</_long>
+		<min>0</min>
+		<max>100</max>
+		<default>0</default>
+	    </option>
+	</options>
+    </plugin>
+</compiz>

=== added directory '.pc/060_move_checks_to_compiz.patch'
=== added directory '.pc/060_move_checks_to_compiz.patch/src'
=== added file '.pc/060_move_checks_to_compiz.patch/src/main.cpp'
--- .pc/060_move_checks_to_compiz.patch/src/main.cpp	1970-01-01 00:00:00 +0000
+++ .pc/060_move_checks_to_compiz.patch/src/main.cpp	2011-06-15 05:26:31 +0000
@@ -0,0 +1,283 @@
+/*
+ * 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.
+ *
+ * Author: David Reveman <davidr@xxxxxxxxxx>
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include <compiz.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <signal.h>
+#include <unistd.h>
+#include <string.h>
+#include <sys/wait.h>
+
+#include <core/core.h>
+#include "privatescreen.h"
+
+char *programName;
+char **programArgv;
+int  programArgc;
+
+char *backgroundImage = NULL;
+
+bool shutDown = false;
+bool restartSignal = false;
+
+CompWindow *lastFoundWindow = 0;
+
+bool replaceCurrentWm = false;
+bool indirectRendering = false;
+bool noDetection = false;
+bool useDesktopHints = false;
+bool debugOutput = false;
+bool useCow = true;
+
+std::list <CompString> initialPlugins;
+
+unsigned int pluginClassHandlerIndex = 0;
+
+void
+CompManager::usage ()
+{
+    printf ("Usage: %s "
+	    "[--replace] "
+	    "[--display DISPLAY]\n       "
+	    "[--indirect-rendering] "
+	    "[--sm-disable] "
+	    "[--sm-client-id ID]\n       "
+	    "[--bg-image PNG] "
+	    "[--no-detection] "
+	    "[--keep-desktop-hints]\n       "
+	    "[--use-root-window] "
+	    "[--debug] "
+	    "[--version] "
+	    "[--help] "
+	    "[PLUGIN]...\n",
+	    programName);
+}
+
+static void
+signalHandler (int sig)
+{
+    int status;
+
+    switch (sig) {
+    case SIGCHLD:
+	waitpid (-1, &status, WNOHANG | WUNTRACED);
+	break;
+    case SIGHUP:
+	restartSignal = true;
+	break;
+    case SIGINT:
+    case SIGTERM:
+	shutDown = true;
+    default:
+	break;
+    }
+}
+
+bool
+CompManager::parseArguments (int argc, char **argv)
+{
+    for (int i = 1; i < argc; i++)
+    {
+	if (!strcmp (argv[i], "--help"))
+	{
+	    usage ();
+	    return false;
+	}
+	else if (!strcmp (argv[i], "--version"))
+	{
+	    printf (PACKAGE_STRING "\n");
+	    return false;
+	}
+	else if (!strcmp (argv[i], "--debug"))
+	{
+	    debugOutput = true;
+	}
+	else if (!strcmp (argv[i], "--display"))
+	{
+	    if (i + 1 < argc)
+		displayName = argv[++i];
+	}
+	else if (!strcmp (argv[i], "--indirect-rendering"))
+	{
+	    indirectRendering = true;
+	}
+	else if (!strcmp (argv[i], "--keep-desktop-hints"))
+	{
+	    useDesktopHints = true;
+	}
+	else if (!strcmp (argv[i], "--use-root-window"))
+	{
+	    useCow = false;
+	}
+	else if (!strcmp (argv[i], "--replace"))
+	{
+	    replaceCurrentWm = true;
+	}
+	else if (!strcmp (argv[i], "--sm-disable"))
+	{
+	    disableSm = true;
+	}
+	else if (!strcmp (argv[i], "--sm-client-id"))
+	{
+	    if (i + 1 < argc)
+		clientId = argv[++i];
+	}
+	else if (!strcmp (argv[i], "--no-detection"))
+	{
+	    noDetection = true;
+	}
+	else if (!strcmp (argv[i], "--bg-image"))
+	{
+	    if (i + 1 < argc)
+		backgroundImage = argv[++i];
+	}
+	else if (*argv[i] == '-')
+	{
+	    compLogMessage ("core", CompLogLevelWarn,
+			    "Unknown option '%s'\n", argv[i]);
+	}
+	else
+	{
+	    plugins.push_back (argv[i]);
+	}
+    }
+
+    initialPlugins = plugins;
+
+    return true;
+}
+
+CompManager::CompManager () :
+    disableSm (false),
+    clientId (NULL),
+    displayName (NULL)
+{
+}
+
+bool
+CompManager::init ()
+{
+    screen = new CompScreen ();
+
+    if (!screen || !screen->priv)
+	return false;
+
+    if (screen->priv->createFailed ())
+    {
+	delete screen;
+	return false;
+    }
+
+    modHandler = new ModifierHandler ();
+
+    if (!modHandler)
+	return false;
+
+    if (!plugins.empty ())
+    {
+	CompOption::Value::Vector list;
+        CompOption::Value         value;
+	CompOption                *o = screen->getOption ("active_plugins");
+
+	foreach (CompString &str, plugins)
+	{
+	    value.set (str);
+	    list.push_back (value);
+	}
+
+	value.set (CompOption::TypeString, list);
+
+	if (o)
+	    o->set (value);
+    }
+
+    screen->priv->dirtyPluginList = true;
+    screen->priv->updatePlugins ();
+
+    if (!screen->init (displayName))
+	return false;
+
+    if (!disableSm)
+	CompSession::init (clientId);
+
+    return true;
+}
+
+void
+CompManager::run ()
+{
+    screen->eventLoop ();
+}
+
+void
+CompManager::fini ()
+{
+    if (!disableSm)
+	CompSession::close ();
+
+    delete screen;
+    delete modHandler;
+}
+
+
+
+int
+main (int argc, char **argv)
+{
+    CompManager		    manager;
+
+    programName = argv[0];
+    programArgc = argc;
+    programArgv = argv;
+
+    signal (SIGHUP, signalHandler);
+    signal (SIGCHLD, signalHandler);
+    signal (SIGINT, signalHandler);
+    signal (SIGTERM, signalHandler);
+
+    if (!manager.parseArguments (argc, argv))
+	return 0;
+
+    if (!manager.init ())
+	return 1;
+
+    manager.run ();
+
+    manager.fini ();
+
+    if (restartSignal)
+    {
+	execvp (programName, programArgv);
+	return 1;
+    }
+
+    return 0;
+}

=== added directory '.pc/065_add_bailer_and_detection_plugins.patch'
=== added directory '.pc/065_add_bailer_and_detection_plugins.patch/plugins'
=== added directory '.pc/065_add_bailer_and_detection_plugins.patch/plugins/bailer'
=== added file '.pc/065_add_bailer_and_detection_plugins.patch/plugins/bailer/CMakeLists.txt'
=== added file '.pc/065_add_bailer_and_detection_plugins.patch/plugins/bailer/bailer.xml.in'
=== added directory '.pc/065_add_bailer_and_detection_plugins.patch/plugins/bailer/src'
=== added file '.pc/065_add_bailer_and_detection_plugins.patch/plugins/bailer/src/bailer.cpp'
=== added file '.pc/065_add_bailer_and_detection_plugins.patch/plugins/bailer/src/bailer.h'
=== added directory '.pc/065_add_bailer_and_detection_plugins.patch/plugins/detection'
=== added file '.pc/065_add_bailer_and_detection_plugins.patch/plugins/detection/CMakeLists.txt'
=== added file '.pc/065_add_bailer_and_detection_plugins.patch/plugins/detection/detection.xml.in'
=== added directory '.pc/065_add_bailer_and_detection_plugins.patch/plugins/detection/src'
=== added file '.pc/065_add_bailer_and_detection_plugins.patch/plugins/detection/src/detection.cpp'
=== added file '.pc/065_add_bailer_and_detection_plugins.patch/plugins/detection/src/detection.h'
=== added directory '.pc/086_new_grid_defaults.patch'
=== added directory '.pc/086_new_grid_defaults.patch/plugins'
=== added directory '.pc/086_new_grid_defaults.patch/plugins/grid'
=== added file '.pc/086_new_grid_defaults.patch/plugins/grid/grid.xml.in'
--- .pc/086_new_grid_defaults.patch/plugins/grid/grid.xml.in	1970-01-01 00:00:00 +0000
+++ .pc/086_new_grid_defaults.patch/plugins/grid/grid.xml.in	2011-06-15 05:26:31 +0000
@@ -0,0 +1,593 @@
+<?xml version="1.0"?>
+<compiz>
+    <plugin name="grid" useBcop="true">
+	<_short>Grid</_short>
+	<_long>Warp and resize windows to fit an imaginary grid.</_long>
+	<category>Window Management</category>
+	<deps>
+	    <relation type="before">
+		<plugin>wobbly</plugin>
+	    </relation>
+	    <relation type="after">
+		<plugin>composite</plugin>
+		<plugin>opengl</plugin>
+		<plugin>decor</plugin>
+	    </relation>
+	</deps>
+	<options>
+	    <group>
+		<_short>Bindings</_short>
+		<option name="put_center_key" type="key">
+		    <_short>Put Center</_short>
+		    <_long>Move window to the center</_long>
+		    <default>&lt;Control&gt;&lt;Alt&gt;KP_5</default>
+		</option>
+		<option name="put_left_key" type="key">
+		    <_short>Put Left</_short>
+		    <_long>Move window to the left edge</_long>
+		    <default>&lt;Control&gt;&lt;Alt&gt;KP_4</default>
+		</option>
+		<option name="put_right_key" type="key">
+		    <_short>Put Right</_short>
+		    <_long>Move window to the right edge</_long>
+		    <default>&lt;Control&gt;&lt;Alt&gt;KP_6</default>
+		</option>
+		<option name="put_top_key" type="key">
+		    <_short>Put Top</_short>
+		    <_long>Move window to the top edge</_long>
+		    <default>&lt;Control&gt;&lt;Alt&gt;KP_8</default>
+		</option>
+		<option name="put_bottom_key" type="key">
+		    <_short>Put Bottom</_short>
+		    <_long>Move window to the bottom edge</_long>
+		    <default>&lt;Control&gt;&lt;Alt&gt;KP_2</default>
+		</option>
+		<option name="put_topleft_key" type="key">
+		    <_short>Put Top Left</_short>
+		    <_long>Move window to the top left corner</_long>
+		    <default>&lt;Control&gt;&lt;Alt&gt;KP_7</default>
+		</option>
+		<option name="put_topright_key" type="key">
+		    <_short>Put Top Right</_short>
+		    <_long>Move window to the top right corner</_long>
+		    <default>&lt;Control&gt;&lt;Alt&gt;KP_9</default>
+		</option>
+		<option name="put_bottomleft_key" type="key">
+		    <_short>Put Bottom Left</_short>
+		    <_long>Move window to the bottom left corner</_long>
+		    <default>&lt;Control&gt;&lt;Alt&gt;KP_1</default>
+		</option>
+		<option name="put_bottomright_key" type="key">
+		    <_short>Put Bottom Right</_short>
+		    <_long>Move window to the bottom right corner</_long>
+		    <default>&lt;Control&gt;&lt;Alt&gt;KP_3</default>
+		</option>
+		<option name="put_maximize_key" type="key">
+		    <_short>Maximize</_short>
+		    <_long>Maximize window</_long>
+		    <default>&lt;Control&gt;&lt;Alt&gt;KP_0</default>
+		</option>
+		<option name="put_restore_key" type="key">
+		    <_short>Restore</_short>
+		    <_long>Restore window to it's original size</_long>
+		    <default>&lt;Control&gt;&lt;Alt&gt;r</default>
+		</option>
+	    </group>
+	    <group>
+		<_short>Edges</_short>
+		<subgroup>
+			<_short>Resize Actions</_short>
+			<_long>Window resize action</_long>
+			<option name="top_left_corner_action" type="int">
+			    <_short>Upper Left Corner</_short>
+			    <_long>Action to be performed when window is dropped on the top left corner</_long>
+			    <default>7</default>
+			    <min>0</min>
+			    <max>10</max>
+			    <desc>
+				<value>0</value>
+				<_name>None</_name>
+			    </desc>
+			    <desc>
+				<value>1</value>
+				<_name>Bottom Left Corner</_name>
+			    </desc>
+			    <desc>
+				<value>2</value>
+				<_name>Bottom Half</_name>
+			    </desc>
+			    <desc>
+				<value>3</value>
+				<_name>Bottom Right Corner</_name>
+			    </desc>
+			    <desc>
+				<value>4</value>
+				<_name>Left Half</_name>
+			    </desc>
+			    <desc>
+				<value>5</value>
+				<_name>Fill Screen</_name>
+			    </desc>
+			    <desc>
+				<value>6</value>
+				<_name>Right Half</_name>
+			    </desc>
+			    <desc>
+				<value>7</value>
+				<_name>Top Left Corner</_name>
+			    </desc>
+			    <desc>
+				<value>8</value>
+				<_name>Top Half</_name>
+			    </desc>
+			    <desc>
+				<value>9</value>
+				<_name>Top Right Corner</_name>
+			    </desc>
+			    <desc>
+				<value>10</value>
+				<_name>Maximize</_name>
+			    </desc>
+			</option>
+			<option name="top_edge_action" type="int">
+			    <_short>Top Edge</_short>
+			    <_long>Action to be performed when window is dropped on the top edge</_long>
+			    <default>10</default>
+			    <min>0</min>
+			    <max>10</max>
+			    <desc>
+				<value>0</value>
+				<_name>None</_name>
+			    </desc>
+			    <desc>
+				<value>1</value>
+				<_name>Bottom Left Corner</_name>
+			    </desc>
+			    <desc>
+				<value>2</value>
+				<_name>Bottom Half</_name>
+			    </desc>
+			    <desc>
+				<value>3</value>
+				<_name>Bottom Right Corner</_name>
+			    </desc>
+			    <desc>
+				<value>4</value>
+				<_name>Left Half</_name>
+			    </desc>
+			    <desc>
+				<value>5</value>
+				<_name>Fill Screen</_name>
+			    </desc>
+			    <desc>
+				<value>6</value>
+				<_name>Right Half</_name>
+			    </desc>
+			    <desc>
+				<value>7</value>
+				<_name>Top Left Corner</_name>
+			    </desc>
+			    <desc>
+				<value>8</value>
+				<_name>Top Half</_name>
+			    </desc>
+			    <desc>
+				<value>9</value>
+				<_name>Top Right Corner</_name>
+			    </desc>
+			    <desc>
+				<value>10</value>
+				<_name>Maximize</_name>
+			    </desc>
+			</option>
+			<option name="top_right_corner_action" type="int">
+			    <_short>Upper Right Corner</_short>
+			    <_long>Action to be performed when window is dropped on the top right corner</_long>
+			    <default>9</default>
+			    <min>0</min>
+			    <max>10</max>
+			    <desc>
+				<value>0</value>
+				<_name>None</_name>
+			    </desc>
+			    <desc>
+				<value>1</value>
+				<_name>Bottom Left Corner</_name>
+			    </desc>
+			    <desc>
+				<value>2</value>
+				<_name>Bottom Half</_name>
+			    </desc>
+			    <desc>
+				<value>3</value>
+				<_name>Bottom Right Corner</_name>
+			    </desc>
+			    <desc>
+				<value>4</value>
+				<_name>Left Half</_name>
+			    </desc>
+			    <desc>
+				<value>5</value>
+				<_name>Fill Screen</_name>
+			    </desc>
+			    <desc>
+				<value>6</value>
+				<_name>Right Half</_name>
+			    </desc>
+			    <desc>
+				<value>7</value>
+				<_name>Top Left Corner</_name>
+			    </desc>
+			    <desc>
+				<value>8</value>
+				<_name>Top Half</_name>
+			    </desc>
+			    <desc>
+				<value>9</value>
+				<_name>Top Right Corner</_name>
+			    </desc>
+			    <desc>
+				<value>10</value>
+				<_name>Maximize</_name>
+			    </desc>
+			</option>
+			<option name="left_edge_action" type="int">
+			    <_short>Left Edge</_short>
+			    <_long>Action to be performed when window is dropped on the left edge</_long>
+			    <default>4</default>
+			    <min>0</min>
+			    <max>10</max>
+			    <desc>
+				<value>0</value>
+				<_name>None</_name>
+			    </desc>
+			    <desc>
+				<value>1</value>
+				<_name>Bottom Left Corner</_name>
+			    </desc>
+			    <desc>
+				<value>2</value>
+				<_name>Bottom Half</_name>
+			    </desc>
+			    <desc>
+				<value>3</value>
+				<_name>Bottom Right Corner</_name>
+			    </desc>
+			    <desc>
+				<value>4</value>
+				<_name>Left Half</_name>
+			    </desc>
+			    <desc>
+				<value>5</value>
+				<_name>Fill Screen</_name>
+			    </desc>
+			    <desc>
+				<value>6</value>
+				<_name>Right Half</_name>
+			    </desc>
+			    <desc>
+				<value>7</value>
+				<_name>Top Left Corner</_name>
+			    </desc>
+			    <desc>
+				<value>8</value>
+				<_name>Top Half</_name>
+			    </desc>
+			    <desc>
+				<value>9</value>
+				<_name>Top Right Corner</_name>
+			    </desc>
+			    <desc>
+				<value>10</value>
+				<_name>Maximize</_name>
+			    </desc>
+			</option>
+			<option name="right_edge_action" type="int">
+			    <_short>Right Edge</_short>
+			    <_long>Action to be performed when window is dropped on the right edge</_long>
+			    <default>6</default>
+			    <min>0</min>
+			    <max>10</max>
+			    <desc>
+				<value>0</value>
+				<_name>None</_name>
+			    </desc>
+			    <desc>
+				<value>1</value>
+				<_name>Bottom Left Corner</_name>
+			    </desc>
+			    <desc>
+				<value>2</value>
+				<_name>Bottom Half</_name>
+			    </desc>
+			    <desc>
+				<value>3</value>
+				<_name>Bottom Right Corner</_name>
+			    </desc>
+			    <desc>
+				<value>4</value>
+				<_name>Left Half</_name>
+			    </desc>
+			    <desc>
+				<value>5</value>
+				<_name>Fill Screen</_name>
+			    </desc>
+			    <desc>
+				<value>6</value>
+				<_name>Right Half</_name>
+			    </desc>
+			    <desc>
+				<value>7</value>
+				<_name>Top Left Corner</_name>
+			    </desc>
+			    <desc>
+				<value>8</value>
+				<_name>Top Half</_name>
+			    </desc>
+			    <desc>
+				<value>9</value>
+				<_name>Top Right Corner</_name>
+			    </desc>
+			    <desc>
+				<value>10</value>
+				<_name>Maximize</_name>
+			    </desc>
+			</option>
+			<option name="bottom_left_corner_action" type="int">
+			    <_short>Bottom Left Corner</_short>
+			    <_long>Action to be performed when window is dropped on the bottom left corner</_long>
+			    <default>1</default>
+			    <min>0</min>
+			    <max>10</max>
+			    <desc>
+				<value>0</value>
+				<_name>None</_name>
+			    </desc>
+			    <desc>
+				<value>1</value>
+				<_name>Bottom Left Corner</_name>
+			    </desc>
+			    <desc>
+				<value>2</value>
+				<_name>Bottom Half</_name>
+			    </desc>
+			    <desc>
+				<value>3</value>
+				<_name>Bottom Right Corner</_name>
+			    </desc>
+			    <desc>
+				<value>4</value>
+				<_name>Left Half</_name>
+			    </desc>
+			    <desc>
+				<value>5</value>
+				<_name>Fill Screen</_name>
+			    </desc>
+			    <desc>
+				<value>6</value>
+				<_name>Right Half</_name>
+			    </desc>
+			    <desc>
+				<value>7</value>
+				<_name>Top Left Corner</_name>
+			    </desc>
+			    <desc>
+				<value>8</value>
+				<_name>Top Half</_name>
+			    </desc>
+			    <desc>
+				<value>9</value>
+				<_name>Top Right Corner</_name>
+			    </desc>
+			    <desc>
+				<value>10</value>
+				<_name>Maximize</_name>
+			    </desc>
+			</option>
+			<option name="bottom_edge_action" type="int">
+			    <_short>Bottom Edge</_short>
+			    <_long>Action to be performed when window is dropped on the bottom edge</_long>
+			    <default>2</default>
+			    <min>0</min>
+			    <max>10</max>
+			    <desc>
+				<value>0</value>
+				<_name>None</_name>
+			    </desc>
+			    <desc>
+				<value>1</value>
+				<_name>Bottom Left Corner</_name>
+			    </desc>
+			    <desc>
+				<value>2</value>
+				<_name>Bottom Half</_name>
+			    </desc>
+			    <desc>
+				<value>3</value>
+				<_name>Bottom Right Corner</_name>
+			    </desc>
+			    <desc>
+				<value>4</value>
+				<_name>Left Half</_name>
+			    </desc>
+			    <desc>
+				<value>5</value>
+				<_name>Fill Screen</_name>
+			    </desc>
+			    <desc>
+				<value>6</value>
+				<_name>Right Half</_name>
+			    </desc>
+			    <desc>
+				<value>7</value>
+				<_name>Top Left Corner</_name>
+			    </desc>
+			    <desc>
+				<value>8</value>
+				<_name>Top Half</_name>
+			    </desc>
+			    <desc>
+				<value>9</value>
+				<_name>Top Right Corner</_name>
+			    </desc>
+			    <desc>
+				<value>10</value>
+				<_name>Maximize</_name>
+			    </desc>
+			</option>
+			<option name="bottom_right_corner_action" type="int">
+			    <_short>Bottom Right Corner</_short>
+			    <_long>Action to be performed when window is dropped on the bottom right corner</_long>
+			    <default>3</default>
+			    <min>0</min>
+			    <max>10</max>
+			    <desc>
+				<value>0</value>
+				<_name>None</_name>
+			    </desc>
+			    <desc>
+				<value>1</value>
+				<_name>Bottom Left Corner</_name>
+			    </desc>
+			    <desc>
+				<value>2</value>
+				<_name>Bottom Half</_name>
+			    </desc>
+			    <desc>
+				<value>3</value>
+				<_name>Bottom Right Corner</_name>
+			    </desc>
+			    <desc>
+				<value>4</value>
+				<_name>Left Half</_name>
+			    </desc>
+			    <desc>
+				<value>5</value>
+				<_name>Fill Screen</_name>
+			    </desc>
+			    <desc>
+				<value>6</value>
+				<_name>Right Half</_name>
+			    </desc>
+			    <desc>
+				<value>7</value>
+				<_name>Top Left Corner</_name>
+			    </desc>
+			    <desc>
+				<value>8</value>
+				<_name>Top Half</_name>
+			    </desc>
+			    <desc>
+				<value>9</value>
+				<_name>Top Right Corner</_name>
+			    </desc>
+			    <desc>
+				<value>10</value>
+				<_name>Maximize</_name>
+			    </desc>
+			</option>
+			<option name="snapoff_maximized" type="bool">
+				<_short>Snapoff maximized windows</_short>
+				<_long>Snapoff maximized windows when pulling to edge.</_long>
+				<default>false</default>
+			</option>
+			<option name="snapback_windows" type="bool">
+				<_short>Snap windows back to original size</_short>
+				<_long>Snaps windows back to their original size if dragged away from their gridded position.</_long>
+				<default>true</default>
+			</option>
+		</subgroup>
+		<subgroup>
+			<_short>Thresholds</_short>
+			<option name="left_edge_threshold" type="int">
+				<_short>Left Edge</_short>
+				<_long>Maximum number of pixels from the left edge a window can be dropped</_long>
+				<default>5</default>
+				<min>0</min>
+				<max>500</max>
+			</option>
+			<option name="right_edge_threshold" type="int">
+				<_short>Right Edge</_short>
+				<_long>Maximum number of pixels from the right edge a window can be dropped</_long>
+				<default>5</default>
+				<min>0</min>
+				<max>500</max>
+			</option>
+			<option name="top_edge_threshold" type="int">
+				<_short>Top Edge</_short>
+				<_long>Maximum number of pixels from the top edge a window can be dropped</_long>
+				<default>5</default>
+				<min>0</min>
+				<max>500</max>
+			</option>
+			<option name="bottom_edge_threshold" type="int">
+				<_short>Bottom Edge</_short>
+				<_long>Maximum number of pixels from the Bottom edge a window can be dropped</_long>
+				<default>5</default>
+				<min>0</min>
+				<max>500</max>
+			</option>
+		</subgroup>
+	    </group>
+	    <group>
+		<_short>Appearance</_short>
+		<option name="draw_indicator" type="bool">
+			<_short>Draw Indicator</_short>
+			<_long>Draw Window Resize Indicator</_long>
+			<default>true</default>
+		</option>
+		<option name="outline_color" type="color">
+			<_short>Outline Color</_short>
+			<_long>Color of the resize indicator outline</_long>
+			<default>
+			    <red>0x2f2f</red>
+			    <green>0x2f2f</green>
+			    <blue>0x4f4f</blue>
+			    <alpha>0x9f9f</alpha>
+			</default>
+		</option>
+		<option name="fill_color" type="color">
+			<_short>Fill Color</_short>
+			<_long>Fill color of the resize indicator</_long>
+			<default>
+			    <red>0x2f2f</red>
+			    <green>0x2f2f</green>
+			    <blue>0x4f4f</blue>
+			    <alpha>0x4f4f</alpha>
+			</default>
+		</option>
+		<option name="indicator_direction" type="int">
+			<_short>Indicator direction</_short>
+			<_long>Where the indicator should come from on-screen</_long>
+			<default>0</default>
+			<min>0</min>
+			<max>1</max>
+			<desc>
+			    <value>0</value>
+			    <_name>From Window</_name>
+			</desc>
+			<desc>
+			    <value>1</value>
+			    <_name>From Edge</_name>
+			</desc>
+		</option>
+		<option name="indicator_type" type="int">
+			<_short>Indicator type</_short>
+			<_long>Appearance of the indicator</_long>
+			<default>0</default>
+			<min>0</min>
+			<max>0</max>
+			<desc>
+			    <value>0</value>
+			    <_name>Outline</_name>
+			</desc>
+		</option>
+		<option name="behind_window" type="bool">
+			<_short>Behind window</_short>
+			<_long>Draw indicator behind window</_long>
+			<default>true</default>
+		</option>
+	    </group>
+	</options>
+    </plugin>
+</compiz>

=== added file '.pc/applied-patches'
--- .pc/applied-patches	1970-01-01 00:00:00 +0000
+++ .pc/applied-patches	2011-06-15 05:26:31 +0000
@@ -0,0 +1,7 @@
+02_add_debug_spewer_for_apport.patch
+018_use_metacity_settings.patch
+029_default_options.patch
+030_no_fade_in_staticswicher.patch
+060_move_checks_to_compiz.patch
+065_add_bailer_and_detection_plugins.patch
+086_new_grid_defaults.patch

=== added file 'AUTHORS'
--- AUTHORS	1970-01-01 00:00:00 +0000
+++ AUTHORS	2011-06-15 05:26:31 +0000
@@ -0,0 +1,29 @@
+compiz and the standard set of plugins are designed and written by
+
+David Reveman <davidr@xxxxxxxxxx>
+
+with additional functionality by
+
+Radek Doulik <rodo@xxxxxxxxxx> IO multiplexing
+Mirco Müller <macslow@xxxxxxxxxx> Skydome support in cube plugin
+Søren Sandmann <sandmann@xxxxxxxxxx> plane plugin
+Dan Winship <danw@xxxxxxxxxx> gconf-dump plugin
+Brian Paul <brian.paul@xxxxxxxxxxxxxxxxxxxx> Matrix functions
+
+and other contributions by
+
+Mike Cook <mcook@xxxxxxxxxx>
+Mike Dransfield <mike@xxxxxxxxxxxxxx>
+Diogo Ferreira <diogo@xxxxxxxxxxxx>
+gandalfn <gandalfn@xxxxxxxxxxxxxxxx>
+Guillaume <ixcemix@xxxxxxxxx>
+Kristian Høgsberg <krh@xxxxxxxxxx>
+Dennis Kasprzyk <onestone@xxxxxxxxxxxxxxxxx>
+Gerd Kohlberger <lowfi@xxxxxxxxx>
+Volker Krause <vkrause@xxxxxxx>
+moppsy <moppsy@xxxxxxxxxxx>
+Jeremy C. Reed <reed@xxxxxxxxxxxxx>
+Thierry Reding <thierry@xxxxxxxx>
+Julian Sikorski <lordzanon@xxxxxxxxxxxxxx>
+Quinn Storm <livinglatexkali@xxxxxxxxx>
+Erkin Bahceci <erkinbah@xxxxxxxxx>

=== added file 'CMakeLists.txt'
--- CMakeLists.txt	1970-01-01 00:00:00 +0000
+++ CMakeLists.txt	2011-06-15 05:26:31 +0000
@@ -0,0 +1,131 @@
+project (compiz)
+
+set (CMAKE_MODULE_PATH_ORIG ${CMAKE_MODULE_PATH})
+set (COMPIZ_CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
+set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${COMPIZ_CMAKE_MODULE_PATH})
+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 4)
+set (COMPIZ_VERSION_MACRO 0)
+set (VERSION ${COMPIZ_VERSION_MAJOR}.${COMPIZ_VERSION_MINOR}.${COMPIZ_VERSION_MICRO}.${COMPIZ_VERSION_MACRO})
+
+set (DECOR_INTERFACE_VERSION 20110130)
+
+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_sharedir ${datadir}/compiz/)
+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 serialization)
+
+set (COMPIZ_REQUIRES
+    x11
+    xext
+    xdamage
+    xcomposite
+    x11-xcb
+    xrandr
+    xinerama
+    xext
+    ice
+    sm
+    libxml-2.0
+    libxslt
+    glib-2.0
+    gio-2.0
+    glibmm-2.4
+    "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 (unity/unity_window_decorator)
+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})
+
+

=== added file 'COPYING'
--- COPYING	1970-01-01 00:00:00 +0000
+++ COPYING	2011-06-15 05:26:31 +0000
@@ -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.

=== added file 'COPYING.GPL'
--- COPYING.GPL	1970-01-01 00:00:00 +0000
+++ COPYING.GPL	2011-06-15 05:26:31 +0000
@@ -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.

=== added file 'COPYING.LGPL'
--- COPYING.LGPL	1970-01-01 00:00:00 +0000
+++ COPYING.LGPL	2011-06-15 05:26:31 +0000
@@ -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!
+
+

=== added file 'COPYING.MIT'
--- COPYING.MIT	1970-01-01 00:00:00 +0000
+++ COPYING.MIT	2011-06-15 05:26:31 +0000
@@ -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

=== added file 'ChangeLog'
--- ChangeLog	1970-01-01 00:00:00 +0000
+++ ChangeLog	2011-06-15 05:26:31 +0000
@@ -0,0 +1,1795 @@
+2006-06-21  David Reveman  <davidr@xxxxxxxxxx>
+
+	* src/window.c: Add updateTransientHint to protect against circular
+	transient dependencies. (bnc 186825)
+
+2006-06-20  David Reveman  <davidr@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* configure.ac (ALL_LINGUAS): Add pl
+
+2006-06-16  David Reveman  <davidr@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* configure.ac: add translations
+
+2006-06-09  David Reveman  <davidr@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* include/compiz.h:
+	* src/window.c: Add updateWindowClass.
+
+2006-05-31  David Reveman  <davidr@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* plugins/switcher.c (ICON_SIZE): Allow use of larger window icons.
+
+2006-05-18  Dan Winship  <danw@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* plugins/gconf-compiz-utils.c (gconfStringToBinding): Treat "" as
+	meaning "disabled"
+
+2006-05-11  David Reveman  <davidr@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* plugins/switcher.c: Allow switcher to be initiated with prev
+	bindings. (Quinn Storm)
+
+2006-05-07  David Reveman  <davidr@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* src/window.c (getModalTransient): Avoid infinite recursion when more
+	than one group transient got modal state.
+
+2006-05-03  David Reveman  <davidr@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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@xxxxxxxxxx>
+
+	* 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.
+	(switchScreenInitOptions, switchSetScreenOption): Generate and
+	regenerate initiate_all, prev, and prev_all bindings as needed.
+	(switchHandleEvent): update
+
+	* plugins/gconf-compiz-utils.c: Remove "<Release>" handling.
+
+	* plugins/compiz.schemas: regen, dropping the terminate bindings
+	and updating a few others.
+
+	* include/compiz.h: remove CompPressMask, CompReleaseMask,
+	EV_BUTTON, and EV_KEY. Add eventMatches, eventTerminates, and
+	keycodeToModifiers. Add modMap field to CompDisplay.
+
+2006-04-28  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/water.c: Handle enter/leave notify events.
+
+	* plugins/decoration.c (decorInitWindow): Check for window specific
+	decoration on both mapped and unmapped windows so that initially
+	minimized windows get properly decorated. (Dan Winship)
+
+	* gnome/window-decorator/gnome-window-decorator.c: Use xfixed_16_16_t
+	instead of XFixed to avoid 64bit issue with XFixed being defined as
+	"int".
+
+	* configure.ac: xrender 0.8.4 is good enough.
+
+2006-04-27  Dan Winship  <danw@xxxxxxxxxx>
+
+	* plugins/rotate.c (rotateHandleEvent): for the
+	rotate-to-specific-face keys, rotate counterclockwise when that's
+	faster. (bnc 169427)
+
+	* plugins/scale.c (scaleHandleEvent): Make the corners toggle
+	scale mode rather than only activating it. (bnc 169408)
+
+2006-04-27  David Reveman  <davidr@xxxxxxxxxx>
+
+	* configure.ac: Bump version to 0.0.10.
+
+	* plugins/decoration.c: Remove debug variable.
+
+	* src/window.c (addWindow): Check if window is minimized. (Dan Winship)
+
+	* plugins/compiz.schemas: Regen (snapoff and maximize_effect).
+
+	* plugins/wobbly.c: Add maximize effect.
+
+	* plugins/zoom.c:
+	* plugins/water.c:
+	* plugins/rotate.c:
+	* plugins/resize.c:
+	* plugins/move.c:
+	* src/event.c:
+	* src/screen.c:
+	* src/display.c:
+	* include/compiz.h: Add proper warp pointer interface and update
+	all plugins to use it.
+
+2006-04-26  Dan Winship  <danw@xxxxxxxxxx>
+
+	* src/event.c (handleEvent): activate window on Button2 click in
+	addition to Button1 and Button3.
+
+	* plugins/gconf.c (gconfSetOption): gconf_value_compare against
+	the old value for list-type options too.
+	(gconfInitOption): Change the call to gconf_client_get_entry to
+	request the default value again; the fix to gconfSetOption will
+	prevent the infinite loops that happened before.
+
+2006-04-26  David Reveman  <davidr@xxxxxxxxxx>
+
+	* gnome/window-decorator/gnome-window-decorator.c (update_shadow): 
+	Remove comment that is no longer valid.
+
+	* plugins/move.c: Support for maximized windows snap-off. Based on
+	patch by Colin Guthrie.
+
+	* plugins/rotate.c (rotateHandleEvent): Don't do edge flipping
+	when a horizontally maximized or fullscreen window is grabbed.
+
+	* plugins/zoom.c:
+	* plugins/rotate.c:
+	* plugins/resize.c:
+	* plugins/move.c:
+	* src/screen.c:
+	* include/compiz.h: Add warpPointerToScreenPos and use it everywhere
+	we want to invisibly warp the pointer.
+
+2006-04-25  David Reveman  <davidr@xxxxxxxxxx>
+
+	* gnome/window-decorator/gnome-window-decorator.c:
+	* plugins/decoration.c: Add clamp and min size.
+
+	* plugins/decoration.c (decorReleaseDecoration): Fix memory leak.
+
+	* plugins/scale.c: Click on background leaves scale mode and enters
+	show desktop mode. (Dan Winship)
+
+	* plugins/minimize.c (minHandleEvent): Initialize scale and
+	translate properly.
+
+	* src/window.c (activateWindow):
+	* src/event.c (handleEvent):
+	* src/screen.c: Add window parameter to leaveShowDesktopMode and
+	use this function for making one window leave show desktop mode.
+	Fixes so that we're leaving show desktop mode when no windows
+	are longer hidden.
+
+	* plugins/scale.c (scaleSetScreenOption): Add missing break statement.
+
+	* plugins/rotate.c (rotateInitScreen): Initialize rotateHandle.
+
+	* src/paint.c (paintScreen): Only paint windows that have been 
+	damaged.
+
+2006-04-24  Dan Winship  <danw@xxxxxxxxxx>
+
+	* plugins/scale.c: 
+	* plugins/switcher.c: clarify the "initiate" descriptions
+
+	* plugins/compiz.schemas: regen
+
+2006-04-24  David Reveman  <davidr@xxxxxxxxxx>
+
+	* src/paint.c (paintScreen): Always call paintWindow when window
+	is visible. Fixes so that window animations (fade, minimize...) aren't
+	paused when if window becomes invisible.
+	(paintWindow): Return early if region is empty.
+
+	* plugins/switcher.c: Use hideWindow and showWindow so that the
+	decoration doesn't have to be redrawn every time the switcher window
+	is mapped.
+
+	* src/window.c:
+	* include/compiz.h: Add hidden flag, that can be used to hide windows
+	without minimizing them.
+
+	* plugins/compiz.schemas: Regen (drop-shadow options).
+
+	* configure.ac: xrender 0.9, required for g-w-d.
+
+	* gnome/window-decorator/gnome-window-decorator.c:
+	* plugins/decoration.c: Add configurable drop-shadows. A minor issue is
+	that shadows around "tiny" windows are not rendered correctly when
+	large shadow offsets are used. Solution is to have the decorator set
+	a minimum size for which a decoration can be used so that no shadows
+	are rendered around "tiny" windows.
+
+2006-04-20  Dan Winship  <danw@xxxxxxxxxx>
+
+	* plugins/rotate.c: add 12 go-directly-to-cube-face and 12
+	go-directly-to-cube-face-with-window bindings.
+
+	* src/display.c (compDisplayInitOptions): fix the binding type on
+	WINDOW_MENU.
+
+	* plugins/compiz.schemas: Regen. (lower_window, window_menu,
+	scale_image, images, resize, flip_move, move_window_types, and the
+	new rotate bindings)
+
+2006-04-20  David Reveman  <davidr@xxxxxxxxxx>
+
+	* src/window.c:
+	* src/event.c (handleEvent):
+	* src/display.c:
+	* include/compiz.h:
+	* gnome/window-decorator/gnome-window-decorator.c: Add force quit
+	dialog.
+
+	* plugins/resize.c: Changed default binding to Button2.
+
+	* src/display.c (LOWER_WINDOW_BUTTON_DEFAULT): Button2 -> 6.
+
+	* gnome/window-decorator/gnome-window-decorator.c:
+	* include/compiz.h:
+	* src/event.c (handleEvent):
+	* src/display.c: Add window menu binding.
+
+	* gnome/window-decorator/gnome-window-decorator.c: Pick up toolkit
+	actions from compiz and send gnome panel actions for "main menu" and
+	"run dialog" actions.
+
+	* src/event.c (handleEvent):
+	* src/screen.c:
+	* include/compiz.h:
+	* src/display.c (addDisplay): panel action -> toolkit action.
+
+	* src/window.c (getModalTransient): Group transient must not be an
+	ancestor to the window we've currently found as the window to focus.
+	(getModalTransient): Check for child modal transient.
+
+2006-04-19  David Reveman  <davidr@xxxxxxxxxx>
+
+	* gnome/compiz-window-manager.c: Be nice to gnome-theme-manager
+	and return a theme even though we currently don't support it.
+
+	* include/compiz.h:
+	* src/main.c: Remove window-image option.
+
+	* include/compiz.h:
+	* plugins/water.c:
+	* plugins/cube.c:
+	* src/texture.c:
+	* src/paint.c:
+	* src/main.c: Add strict-binding option.
+
+2006-04-18  Dan Winship  <danw@xxxxxxxxxx>
+
+	* src/event.c (handleEvent): Fix a crasher in the screenshot
+	binding code (and rename some of the #defines to make them not so
+	ridiculously long). Also temporarily hack around a bug in EV_KEY
+	by putting the check for WINDOW_SCREENSHOT before the check for
+	SCREENSHOT.
+
+	* plugins/scale.c: Change the keybinding again, now to "Pause".
+	(F11 is the "fullscreen mode" binding for many apps.)
+
+	* plugins/compiz.schemas: update
+
+	* plugins/gconf.c: 
+	* plugins/gconf-compiz-utils.c: 
+	* plugins/gconf-dump.c: Rearrange #includes to prevent warning
+	about TRUE and FALSE being redefined
+
+2006-04-18  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/rotate.c (ROTATE_FLIPMOVE_DEFAULT): Changed to TRUE.
+
+	* src/window.c (recalcWindowActions): Remove maximize and fullscreen
+	actions when resizing isn't allowed.
+
+	* gnome/window-decorator/gnome-window-decorator.c: Dynamic positioning
+	of window buttons.
+
+	* plugins/cube.c (readSvgToTexture): Fix typo.
+
+	* plugins/resize.c: Constrain cursor movement to min/max window size.
+
+	* src/window.c (constrainNewWindowSize): Fix aspect ratio calculations.
+
+2006-04-17  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/cube.c: Put PNG on top face by default.
+
+	* images/Makefile.am: Remove window.png.
+	Add novell.png.
+
+	* include/compiz.h:
+	* src/readpng.c: Add openImageFile.
+
+	* plugins/cube.c: Support for PNGs on top face.
+	Add scale image option which is used to determine if top face
+	image should be scaled or not.
+
+2006-04-15  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/wobbly.c: Add modal dialog type to default list of windows
+	that should be wobbly when moved.
+
+	* plugins/water.c (SET): +1 for border.
+
+2006-04-14  Dan Winship  <danw@xxxxxxxxxx>
+
+	* plugins/gconf-dump.c: add "water" to gconfDeps
+
+	* plugins/compiz.schemas: regen including the water options
+
+2006-04-14  David Reveman  <davidr@xxxxxxxxxx>
+
+	* src/event.c (handleWindowDamageRect): Ignore damage from windows
+	that aren't redirected.
+
+	* include/compiz.h:
+	* src/window.c:
+	* src/display.c (eventLoop):
+	* src/screen.c: Add support for automatic unredirecting of fullscreen
+	windows.
+
+	* plugins/scale.c (scaleInitiate): Layout thumbnails before we
+	grab the screen to make sure some window exist.
+
+	* plugins/resize.c: Allow 4-way resize. (Mike Hearn)
+
+2006-04-13  Dan Winship  <danw@xxxxxxxxxx>
+
+	* src/screen.c (panelAction): take a timestamp and pass that to
+	the panel rather than using CurrentTime
+
+	* src/event.c (handleEvent): update for that
+
+	* src/window.c (moveResizeWindow): fix the gravity handling so
+	self-resizing windows don't dance (although I'm pretty sure this
+	is a symptom of mishandling gravity somewhere else).
+
+	* plugins/gconf.c (gconfInitOption): Request the default value of
+	the key from gconf, rather than initializing the key to the
+	internal default value if it hasn't yet been set by the user.
+	Notably, this makes it so that "compiz gconf" on a new account
+	will use the default value of active_plugins rather than the
+	(effectively empty) list of plugins on the command line. (It also
+	makes it so that the sysadmin can override defaults via sabayon or
+	whatever.)
+
+2006-04-13  David Reveman  <davidr@xxxxxxxxxx>
+
+	* src/window.c (mapWindow): Maybe not, disable it again. :(
+
+	* src/window.c (mapWindow): Enable draw synchronization on map
+	again. Should be working correctly with CVS version of X server.
+
+2006-04-12  Dan Winship  <danw@xxxxxxxxxx>
+
+	* src/window.c (moveResizeWindow): move duplicated code from
+	_NET_MOVERESIZE_WINDOW and ConfigureRequest handlers in event.c to
+	here, and handle gravity as well. (Fixes bnc 163058.)
+	(updateWindowAttributes): Do nothing if the window is
+	override_redirect (and remove a few now-redundant checks of that
+	elsewhere). Previously we were forgetting to check
+	!override_redirect in the case where the motif hints changed. (bnc
+	163931)
+	(getWindowUserTime): fix a cut-and-paste-o that caused a crash on
+	64bit machines.
+
+	* src/event.c (handleEvent): fix the _NET_MOVERESIZE_WINDOW bit
+	manipulation to correspond to what the EWMH means rather than what
+	it says, and use moveResizeWindow for that and for
+	ConfigureRequest.
+
+	* plugins/gconf-compiz-utils.c (gconfBindingToString): DTRT with
+	"None" bindings.
+
+	* gnome/window-decorator/gnome-window-decorator.c (title_event):
+	if the user right-clicks on the titlebar while the context menu is
+	popped up, just pop it down and eat the click, like all other
+	GNOME context menus do.
+	(style_changed, value_changed): Don't add decorations to
+	previously-undecorated windows. (bnc 165393)
+
+2006-04-11  David Reveman  <davidr@xxxxxxxxxx>
+
+	* src/screen.c (addScreen): Fix typo.
+
+2006-04-10  Dan Winship  <danw@xxxxxxxxxx>
+
+	* src/window.c (focusWindowOnMap): new function to decide whether
+	or not to focus a newly-mapped window. In addition to the old
+	checks, this also checks that _NET_WM_USER_TIME isn't 0, to allow
+	a window to explicitly request to not get focus.
+
+	* src/event.c (handleEvent): use focusWindowOnMap when processing
+	MapRequest.
+
+	* plugins/rotate.c (rotateHandleEvent): fix _NET_ACTIVE_WINDOW
+	handling so this doesn't interfere with focusable panel applets.
+
+	* plugins/compiz.schemas: regen (fixing cube top/bottom color)
+
+	* plugins/gconf-dump.c: Handle CompOptionTypeColor.
+
+	* configure.ac: Add --enable-gconf-dump so that the gconf-dump
+	plugin doesn't get built in normal builds
+
+	* plugins/Makefile.am: make gconf-dump optional.
+
+2006-04-09  Dan Winship  <danw@xxxxxxxxxx>
+
+	* plugins/gconf-dump.c: add plugin options, and add information
+	about restrictions (numeric ranges, specific string values) to the
+	long description. Make gconf-dump refuse to run if gconf is
+	running (since you want the defaults it writes out to be coming
+	from the defaults in the source code, not from any gconf
+	overrides).
+
+	* plugins/compiz.schemas: regen
+
+	* plugins/gconf.c (gconfGetOptionValue): don't call gconfSetOption
+	from here, or we'll get an infinite loop when anything changes
+
+2006-04-09  David Reveman  <davidr@xxxxxxxxxx>
+
+	* include/compiz.h:
+	* src/display.c:
+	* src/main.c:
+	* src/screen.c:
+	* src/texture.c:
+	* src/window.c: Remove test mode.
+
+	* plugins/Makefile.am: Remove schema from CLEANFILES.
+
+	* plugins/compiz.schemas:
+	* src/display.c:
+	Improve documentation for runcommand keys slightly. (Mike Hearn)
+
+	* include/compiz.h:
+	* src/texture.c:
+	* src/screen.c (addScreen): Switch to using GLX 1.3 functions.
+	 (James Jones)
+
+	* src/main.c: Indirect rendering option. (James Jones)
+
+2006-04-08  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/water.c: Add rain delay option. (Emilie Roberts)
+
+2006-04-07  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/gconf-dump.c: Dump list options correctly.
+
+	* plugins/rotate.c: Add flip_move option, edge flipping is only
+	used when moving windows if this option is enabled.
+	(rotateHandleEvent): Make we don't rotate when some other plugin
+	has grabbed the screen.
+
+	* plugins/scale.c: Change default key-binding to F11.
+	(scaleInitiate): Make sure screen isn't grabbed by some other plugin.
+	(scaleInitScreen): Initialize darkenBack properly.
+
+	* configure.ac: Bump version to 0.0.9.
+
+	* plugins/Makefile.am (CLEANFILES, EXTRA_DIST): Fix.
+
+	* plugins/rotate.c (ROTATE_SPEED_DEFAULT): 1.5.
+
+2006-04-07  Dan Winship  <danw@xxxxxxxxxx>
+
+	(Much of this patch was written by Radek Doulik
+	<rodo@xxxxxxxxxx>.)
+
+	* src/display.c:
+	* src/event.c:
+	* src/screen.c: Move keybinding stuff to CompDisplay, making it no
+	longer settable per-screen. Add bindings for screenshots (for
+	compatibility with metacity, which handles that keybinding in
+	GNOME for historical reasons).
+
+	* include/compiz.h: add an explicit CompBindingTypeNone rather
+	than relying on modifiers==0 to mean none. Update bindings stuff.
+
+	* src/screen.c (removePassiveKeyGrab, removePassiveButtonGrab):
+	Fix these to remove the right grab rather than always removing the
+	most-recently-added one.
+	(addScreenBinding): deal with CompBindingTypeNone
+
+	* plugins/gconf-dump.c: hacky plugin to dump information about the
+	other plugins to a gconf schemas file (used to regenerate
+	compiz.schemas)
+
+	* plugins/gconf-compiz-utils.c: shared code between gconf.c and
+	gconf-dump.c
+
+	* plugins/Makefile.am: add gconf-dump plugin and compiz.schemas,
+	and code to install compiz.schemas.
+
+	* configure.ac: Update gconf test to set macros needed for schema
+	install.
+
+2006-04-07  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/rotate.c: Add edge flipping support.
+
+	* plugins/scale.c: Allow corner screen edges to be used for
+	initiating scale mode.
+
+	* src/option.c (compSetBoolOption): Only return TRUE if value changed.
+
+	* src/screen.c:
+	* src/window.c:
+	* plugins/minimize.c:
+	* plugins/decoration.c:
+	* include/compiz.h: Add immediate argument to MoveNotify, immediate
+	means that any animations should be avoided.
+
+	* src/screen.c:
+	* plugins/water.c:
+	* plugins/resize.c:
+	* plugins/place.c:
+	* plugins/move.c:
+	* plugins/zoom.c:
+	* plugins/rotate.c:
+	* plugins/scale.c:
+	* src/event.c:
+	* include/compiz.h:
+	Add previous pointer position that can be shared between multiple
+	plugins.
+
+2006-04-06  David Reveman  <davidr@xxxxxxxxxx>
+
+	* include/compiz.h:
+	* src/screen.c: Add screen edges and simple interface for enabling
+	and disabling them.
+
+	* plugins/switcher.c (switchDamageWindowRect)
+	(switchWindowRemove): Update switcher list even when screen isn't
+	grabbed.
+
+	* plugins/switcher.c (switchDamageWindowRect):
+	* include/compiz.h:
+	* src/event.c (handleEvent):
+	* src/window.c:	Made it possible to select if window should be
+	stacked above fullscreen windows or not.
+
+	* src/window.c (findSiblingBelow): Only find a fullscreen sibling
+	if aboveFs is TRUE.
+	(activateWindow): Allow stacking of window above fullscreen windows
+	when being activated.
+
+2006-04-05  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/water.c (fboEpilogue): Reset raster position. Avoids
+	an FBO/raster-position issue found in newer nvidia drivers.
+
+	* plugins/move.c: Add constrain_y option that constrains window
+	movement so that top of window is always visible (on by default).
+
+	* src/event.c (handleEvent): Change active window property even though
+	it's not different than the window we currently have as active.
+
+	* src/window.c (moveInputFocusToWindow): Set focus even though
+	the window is considered the active window.
+
+2006-04-03  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/water.c: Use char everywhere instead.
+	Fix offset direction (P-a Bäckström).
+	Add offset scale option.
+
+	* plugins/water.c: (loadFragmentProgram): GLubyte -> const GLbyte.
+	(loadWaterProgram): char -> GLbyte.
+	(loadBumpMapProgram): char -> GLbyte.
+	Use char everywhere.
+
+	* configure.ac: Bump version to 0.0.8.
+
+	* plugins/water.c: Add simple rain effect.
+	(loadFragmentProgram): Clear any previous error.
+
+	* src/display.c: Change so that timeouts are not only triggered
+	when we're idle.
+
+2006-04-02  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/water.c: Add scale and bias to normal so that light can be
+	computed correclty. Offset texture coordinates for nice refraction
+	effect. (P-a Bäckström)
+	(waterDrawWindowTexture): Add scaling after setting up texture
+	coordinate generation.
+	Fix up loading of bump map programs.
+	(softwareUpdate): Improve performance of software fall-back code a bit.
+	(waterDrawWindowTexture): Always use filter for when window is
+	transformed.
+
+	* plugins/gconf.c (gconfGetValue): Fix typo that caused color
+	parsing to be incomplete (Quinn Storm).
+
+2006-04-01  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/switcher.c: Add "initiate all" binding which brings up the
+	switcher window with all mapped windows and "initiate" binding will
+	now bring up the switcher window with only the visible windows.
+
+2006-03-31  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/minimize.c (minDamageWindowRect): Never leave windows
+	in scaled state.
+
+	* src/screen.c (moveScreenViewport): Move hidden windows as well.
+
+	* src/window.c (addWindow, activateWindow, hideWindow)
+	(showWindow):
+	* src/screen.c (enterShowDesktopMode, leaveShowDesktopMode):
+	* src/event.c (handleEvent):
+	* include/compiz.h: Fix up show desktop mode.
+
+	* plugins/water.c (fboVertices): return 1.
+
+2006-03-30  David Reveman  <davidr@xxxxxxxxxx>
+
+	* src/texture.c (enableTexture): Always make sure mipmaps are up to
+	date when using GL_LINEAR_MIPMAP_LINEAR filter.
+
+2006-03-29  David Reveman  <davidr@xxxxxxxxxx>
+
+	* gnome/window-decorator/gnome-window-decorator.c: Draw outline around
+	window title text and buttons instead of small shadow.
+
+	* src/event.c (handleEvent):
+	* include/compiz.h:
+	* src/window.c: Set allowed window actions more correctly.
+
+	* plugins/move.c: Add opacity option.
+
+	* plugins/Makefile.am: Add water plugin. It's not very useful yet
+	and it needs more work but it's a good example of how to use
+	GL_ARB_fragment_program and GL_EXT_framebuffer_object for visual
+	effects.
+
+	* src/screen.c (addScreen): Fix light position.
+
+	* src/paint.c (paintWindow):
+	* plugins/switcher.c (switchPaintThumb):
+	* plugins/decoration.c (decorPaintWindow):
+	* include/compiz.h: Make drawWindowTexture a screen function so that
+	plugins can wrap it.
+
+	* src/texture.c (enableTexture):
+	* src/screen.c (addScreen):
+	* include/compiz.h: GL_EXT_framebuffer_object and
+	GL_ARB_fragment_program support.
+
+2006-03-21  David Reveman  <davidr@xxxxxxxxxx>
+
+	* gnome/window-decorator/gnome-window-decorator.c (lower_window): Don't
+	try to lower a window below hidden windows or desktop windows.
+
+2006-03-20  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/wobbly.c (wobblyHandleEvent):
+	xunmap -> xmap (François Ingelrest).
+
+	* src/screen.c (isClientListWindow): All type of windows should go into
+	the client lists (Thanks to Quinn Storm).
+
+	* src/window.c (freeWindow): Destroy frame window.
+	(mapWindow): Fix so the sync requests are sent correctly when a window
+	is mapped but disable it for now as it seems to be causing problems
+	with some applications.
+	(recalcWindowActions): Allow dialog window actions on util and
+	toolbar windows.
+
+	* src/event.c (handleEvent): Remove event mask and button grabs
+	when window is reparented.
+	(handleEvent): Update client list when window type changes.
+	(handleEvent): Use constrainNewWindowSize on move/resize client
+	messages and configure requests.
+
+	* gnome/window-decorator/gnome-window-decorator.c (window_closed):
+	Delete decor property when window is closed.
+
+2006-03-17  Jeremy C. Reed  <reed@xxxxxxxxxxxxx>
+
+	reviewed by: David Reveman
+
+	* autogen.sh:
+	Be consistent with rest of modular xorg by using same
+	autogen.sh.  This allows it to be run using a different
+	work directory.
+
+2006-03-17  Jeremy C. Reed  <reed@xxxxxxxxxxxxx>
+
+	reviewed by: David Reveman
+
+	* INSTALL:
+	Mention startup-notification requirement.
+
+2006-03-17  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/scale.c: Add opacity option.
+
+	* configure.ac: Bump version to 0.0.7.
+
+2006-03-17  Radek Doulik  <rodo@xxxxxxxxxx>
+
+	* src/session.c: added all mandatory SM client callbacks, handle
+	ICE connection and process ICE messages
+
+	* src/display.c (compAddWatchFd): new function, adds new fd watch
+	- for poll io multiplexing
+	(compRemoveWatchFd): new function, remove fd watch added by
+	compAddWatchFd
+	(doPoll): new helper function, does call poll and calls callbacks
+	for watch fd's. returns the value of poll call
+	(eventLoop): use doPoll, we use NULL for display fd watch so that
+	it doesn't call anything and just use return value from poll as
+	before
+
+2006-03-17  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/switcher.c (switchDamageWindowRect): Update window
+	attributes for popup window. We never get a MapRequest for this
+	window so it most be done here.
+	Add "bring to front" option. (Greg)
+
+	* src/window.c (stackAncestors): Never raise desktop windows.
+	Made restackWindowAbove and restackWindowBelow smarter.
+
+2006-03-16  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/minimize.c:
+	* src/event.c (handleEvent):
+	* src/window.c:
+	Handle window state changes correctly.
+	(maximizeWindow): Use actions to determine if we're allowed maximize
+	window.
+
+	* src/event.c (handleEvent):
+	* src/window.c: Send configure notifies correctly.
+
+2006-03-15  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/switcher.c (switchPaintWindow): Fix paint attribute
+	calculations.
+
+	* include/compiz.h:
+	* src/event.c (handleEvent):
+	* src/window.c: Add restackWindowBelow.
+
+2006-03-14  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/switcher.c: Opacity, brightness and saturation as adjustable
+	options. (Greg)
+
+	* src/window.c (syncWindowPosition): Move frame window now instead of
+	waiting for client window to change before moving it.
+
+	* plugins/move.c (moveTerminate): Sync window position before
+	releasing pointer grab so that the EnterNotify event from the release
+	go to the correct window.
+
+	* src/window.c (unmapWindow): Put window in withdrawn state when
+	being unmapped. Should make it work better with KDE. (Tim Northover)
+
+	* src/screen.c (addScreen): Fix ambient and diffuse light.
+
+	* src/main.c (main): Add --version command line option.
+
+	* src/event.c:
+	* src/screen.c:
+	* include/compiz.h: Add bindings for changing window opacity.
+
+2006-03-14  Radek Doulik  <rodo@xxxxxxxxxx>
+
+	* src/event.c (handleEvent): handle minimize/maximize/unmaximize
+	window keybindings
+
+	* src/screen.c: added minimize/maximize/unmaximize window
+	options/keybindings
+
+	* src/window.c (maximizeWindow): new helper function
+	(unmaximizeWindow): ditto
+
+2006-03-14  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/scale.c: Add darken background option (Daniel G. Taylor).
+
+2006-03-13  David Reveman  <davidr@xxxxxxxxxx>
+
+	* src/display.c (eventLoop):
+	* include/compiz.h:
+	* src/screen.c (addScreen): CopySubBufferMESA support.
+
+2006-03-07  David Reveman  <davidr@xxxxxxxxxx>
+
+	* gnome/window-decorator/gnome-window-decorator.c (lower_window):
+	Remove unused variable tmp.
+
+	* src/event.c:
+	* src/display.c:
+	* src/window.c:
+	* src/screen.c:
+	* include/compiz.h: Better window stacking support.
+
+	* gnome/window-decorator/gnome-window-decorator.c: Lower window
+	when clicking button 2 on titlebar.
+
+	* src/window.c (ensureWindowVisibility): Only ensure that window is
+	visible if it isn't a override redirect window, dock window or
+	window with struts.
+
+2006-03-06  David Reveman  <davidr@xxxxxxxxxx>
+
+	* configure.ac: Bump version to 0.0.6.
+
+	* plugins/cube.c: Skydome update. (MacSlow)
+
+	* src/window.c: Ensure window visibility when activating window.
+
+2006-03-05  David Reveman  <davidr@xxxxxxxxxx>
+
+	* src/window.c (closeWindow): Use protocol mask to determine if
+	Client Message should be send or if we should kill the client.
+
+	* plugins/decoration.c: Don't draw shadow only decorations around
+	windows with alpha channel.
+
+2006-03-03  David Reveman  <davidr@xxxxxxxxxx>
+
+	* src/texture.c (readImageBufferToTexture):
+	(readImageToTexture): Check that returnWidth and returnHeight are
+	not NULL.
+
+	* plugins/cube.c: Skydome support. Thanks to MacSlow.
+
+	* plugins/fade.c (fadeHandleEvent): Make sure opacity isn't opaque
+	when fading out.
+	Stop fading if window is resized.
+
+	* src/window.c (resizeWindow): Only verify pixmap size if window is
+	mapped.
+	(resizeWindow): Check XGetGeometry result.
+
+	* plugins/switcher.c: Make sure switcher is correctly updated
+	even though the previously selected window isn't selectable by
+	switcher.
+
+	* src/event.c (handleEvent): Avoid panel actions when screen is
+	grabbed.
+
+2006-03-03  Radek Doulik  <rodo@xxxxxxxxxx>
+
+	* src/main.c (main): init and close session when sm is not
+	disabled. Enable sm by default.
+
+	* src/session.c: added minimal session support so that compiz at
+	least register with session manager to avoid registering timeouts
+
+2006-03-03  David Reveman  <davidr@xxxxxxxxxx>
+
+	* src/screen.c (removeScreenGrab): Use correct cursor when changing
+	actvie pointer grab.
+
+2006-03-02  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/rotate.c (rotateHandleEvent):
+	* plugins/zoom.c (zoomHandleEvent): Make sure no pending motion
+	notify events exists when warping the pointer.
+
+	* plugins/rotate.c (rotateHandleEvent): Reset movement.
+
+	* plugins/switcher.c: Always send activate request when selecting a
+	window.
+
+	* plugins/cube.c (cubePaintTransformedScreen): Reset color.
+
+	* plugins/switcher.c (switchPaintThumb): PAINT_WINDOW_TRANSLUCENT_MASK
+	if opacity isn't opaque.
+	(switchPaintWindow): Reset color.
+
+2006-03-01  David Reveman  <davidr@xxxxxxxxxx>
+
+	* configure.ac: Bump version to 0.0.5.
+
+	* plugins/fade.c (fadeAddDisplayModal): Higher brightness when showing
+	display modal dialogs.
+
+	* plugins/switcher.c (switchPreparePaintScreen): Continue adjusting
+	window selection even though we're not grabbing the screen.
+	(switchPaintWindow): Use last used paint attributes for thumbnails.
+	(switchPaintWindow): Use blending when drawing selection rectangle.
+
+	* plugins/fade.c (fadeHandleEvent): unmap. -> map.
+	(fadeDamageWindowRect): Only zero opacity if we're not already
+	fading the window.
+
+	* src/window.c (unmapWindow): 'placed' variable should be reset on
+	first call to unmapWindow.
+
+	* src/screen.c:
+	* src/event.c (handleEvent):
+	* src/display.c (eventLoop):
+	* include/compiz.h: Add slow animation option.
+
+	* src/window.c (recalcNormalHints): Constrain window dimensions to
+	max texture size.
+
+	* src/screen.c (addScreen): Get max texture size.
+
+	* gnome/window-decorator/gnome-window-decorator.c: Nicer drop shadow
+	on windows without decorations.
+
+	* src/window.c (addWindow): Move initialization of sync alarm.
+
+	* plugins/cube.c:
+	* plugins/decoration.c:
+	(decorCreateDecoration): Fix minimum size check.
+
+	* src/main.c:
+	* include/compiz.h:
+	* src/paint.c:
+	* src/screen.c: Ligthing support.
+
+	* compiz.pc.in: Fix.
+
+2006-02-23  David Reveman  <davidr@xxxxxxxxxx>
+
+	* src/window.c (unmapWindow): Not minimized and not part of showing
+	desktop mode.
+
+	* plugins/wobbly.c: Fix handling of scaled windows.
+	Update options so that user gets more control over which windows
+	that should wobble and when.
+
+	* configure.ac: Bump version to 0.0.4.
+
+	* gnome/window-decorator/gnome-window-decorator.c (window_opened): Make
+	sure decoration property for switcher window is set.
+
+	* plugins/decoration.c (decorHandleEvent):
+	* src/event.c (handleEvent):
+	* plugins/switcher.c:
+	* src/screen.c (addScreen, setScreenOption)
+	(compScreenInitOptions):
+	* src/texture.c:
+	* include/compiz.h: Mipmap support. Add more RUN_COMMAND options.
+
+2006-02-22  David Reveman  <davidr@xxxxxxxxxx>
+
+	* src/display.c (realToVirtualModMask): Remove modifiers that should
+	be ignored.
+	(addDisplay): Select ButtonPress and ButtonRelease events on root
+	window.
+
+	* include/compiz.h (EV_KEY):
+	(EV_BUTTON):  Modifiers should match exactly.
+
+	* plugins/switcher.c: Add binding for selecting previous window.
+
+	* plugins/decoration.c: Remove sync hack.
+
+	* gnome/window-decorator/gnome-window-decorator.c
+	(draw_shadow_background): Fix drawing of bottom and bottom right
+	shadow rectangle.
+	Add switcher window decorations.
+	Remove sync hack.
+	Always use double buffering.
+
+	* plugins/switcher.c: Remove background color option.
+	Use property instead of client message to indicate change of selected
+	window.
+
+2006-02-21  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/cube.c (cubeHandleEvent): Only load new SVG when available.
+
+2006-02-20  David Reveman  <davidr@xxxxxxxxxx>
+
+	* plugins/decoration.c (decorWindowUpdate): Decorate window
+	MwmDecorTitle is present.
+
+	* src/window.c (focusWindow):
+	(moveInputFocusToWindow):
+	 Allow focusing windows with input hint set to false.
+	 (activateWindow): Fix so that dock windows can be active.
+
+	* src/screen.c (isClientListWindow): Don't put destroyed windows in
+	client lists.
+
+	* src/event.c (handleEvent): Fix so that dock windows can be active.
+	(handleEvent): Avoid focusing windows with input hint set to false
+	when mapped.
+
+2006-02-18  David Reveman  <davidr@xxxxxxxxxx>
+
+	* src/window.c (unmapWindow): Windows not being minimized should be
+	placed again at next map.
+
+	* plugins/wobbly.c (wobblyDonePaintScreen): Also add pending damage
+	if any window is in initial wobbly state.
+
+2006-02-17  David Reveman  <davidr@xxxxxxxxxx>
+
+	* configure.ac: Bump version to 0.0.3.
+
+	* plugins/zoom.c (zoomIn): Translate less.
+	(zoomPaintScreen): Use selected filter.
+	(adjustZoomVelocity): Made zoom animation nicer.
+	(zoomPreparePaintScreen): Don't zoom to much.
+	ADd filter selection option.
+
+	* plugins/decoration.c (decorPaintWindow):
+	* src/paint.c (drawWindowTexture): Use screen filters.
+
+	* include/compiz.h: Add support for adjusting filters.
+
+	* plugins/scale.c (scaleHandleEvent): Only button 1.
+
+	* plugins/cube.c (cubePaintTransformedScreen): Fix drawing with size
+	 greater than 4.
+
+2006-02-16  David Reveman  <davidr@xxxxxxxxxx>
+
+	* configure.ac: Remove menu.
+
+	* plugins/switcher.c (switchNextWindow): Damage new and previously
+	selected window.
+	(switchInitiate): Damage screen initiating switching.
+	(switchTerminate): Damage screen terminating switching.
+	(switchPaintThumb): Draw thumbnail without calling any function that
+	can be wrapped.
+
+	* gnome/window-decorator/gnome-window-decorator.c
+	(update_window_decoration_size): Make sure title isn't rendered
+	when it doesn't fit.
+
+2006-02-14  David Reveman  <davidr@xxxxxxxxxx>
+
+	* gnome/window-decorator/gnome-window-decorator.c
+	(draw_window_decoration): Make sure complete icon is visible.
+
+	* src/display.c (eventLoop):
+	(getTimeToNextRedraw): Handle clock rollback.
+
+2006-02-13  David Reveman  <davidr@xxxxxxxxxx>
+
+	* configure.ac: Remove menu plugin check.
+	Require version 2.8.0 or greater of gtk+.
+
+2006-02-11  David Reveman  <davidr@xxxxxxxxxx>
+
+	* configure.ac: Bump version to 0.0.2.
+
+	* src/window.c:
+	* src/event.c:
+	* plugins/fade.c:
+	* src/display.c:
+	* include/compiz.h: Lower brightness of windows that are not responding
+	and all windows when showing logout dialog.
+
+	* gnome/window-decorator/gnome-window-decorator.c: Use metacity
+	titlebar font settings.
+
+	* gnome/compiz-window-manager.c: Add titlebar font setting.
+
+	* plugins/Makefile.am:
+	* plugins/switcher.c: Add switcher plugin.
+
+	* plugins/gconf.c: Add alpha to color options.
+
+2006-02-10  David Reveman  <davidr@xxxxxxxxxx>
+
+	* src/screen.c:
+	* src/display.c: Do not include X11/extensions/Xevie.h.

=== added file 'Doxyfile'
--- Doxyfile	1970-01-01 00:00:00 +0000
+++ Doxyfile	2011-06-15 05:26:31 +0000
@@ -0,0 +1,1514 @@
+# Doxyfile 1.6.1
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = Compiz
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER         = 0.9
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = doc
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak,
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC    = YES
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH        =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful is your file systems
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF      = YES
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 8
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it parses.
+# With this tag you can assign which parser to use for a given extension.
+# Doxygen has a built-in mapping, but you can override or extend it using this tag.
+# The format is ext=language, where ext is a file extension, and language is one of
+# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP,
+# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat
+# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran),
+# 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.
+
+EXTENSION_MAPPING      =
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate getter
+# and setter methods for a property. Setting this option to YES (the default)
+# will make doxygen to replace the get and set methods by a property in the
+# documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penality.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will rougly double the
+# memory usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols
+
+SYMBOL_CACHE_SIZE      = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespace are hidden.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS        = NO
+
+# 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.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the default)
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or define consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and defines in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES       = NO
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page.
+# This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by
+# doxygen. The layout file controls the global structure of the generated output files
+# in an output format independent way. The create the layout file that represents
+# doxygen's defaults, run doxygen with the -l option. You can optionally specify a
+# file name after the option, if omitted DoxygenLayout.xml will be used as the name
+# of the layout file.
+
+LAYOUT_FILE            =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = NO
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE           =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT                  = include/ src/
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
+# also the default input encoding. Doxygen uses libiconv (or the iconv built
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
+# the list of possible encodings.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
+
+FILE_PATTERNS          = *.h
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE              = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix filesystem feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       = private*
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS        = _* *Private* *Wrap*
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH           =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS       =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH             =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.
+# If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis.
+# Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match.
+# The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
+# is applied to all files.
+
+FILTER_PATTERNS        =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.
+# Otherwise they will link to the documentation.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          = _,Private
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER            =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER            =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        =
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+HTML_DYNAMIC_SECTIONS  = YES
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files
+# will be generated that can be used as input for Apple's Xcode 3
+# integrated development environment, introduced with OSX 10.5 (Leopard).
+# To create a documentation set, doxygen will generate a Makefile in the
+# HTML output directory. Running make will produce the docset in that
+# directory and running "make install" will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
+# it at startup.
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
+
+GENERATE_DOCSET        = NO
+
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
+# feed. A documentation feed provides an umbrella under which multiple
+# documentation sets from a single provider (such as a company or product suite)
+# can be grouped.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
+# should uniquely identify the documentation set bundle. This should be a
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
+# will append .docset to the name.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE               =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
+# content.
+
+CHM_INDEX_ENCODING     =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER
+# are set, an additional index file will be generated that can be used as input for
+# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated
+# HTML documentation.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
+# be used to specify the file name of the resulting .qch file.
+# The path specified is relative to the HTML output folder.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#namespace
+
+QHP_NAMESPACE          =
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add.
+# For more information please see
+# http://doc.trolltech.com/qthelpproject.html#custom-filters
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters";>Qt Help Project / Custom Filters</a>.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's
+# filter section matches.
+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes";>Qt Help Project / Filter Attributes</a>.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+# be used to specify the location of Qt's qhelpgenerator.
+# If non-empty doxygen will try to run qhelpgenerator on the generated
+# .qhp file.
+
+QHG_LOCATION           =
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information.
+# If the tag value is set to YES, a side panel will be generated
+# containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
+# Windows users are probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = NO
+
+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
+# and Class Hierarchy pages using a tree view instead of an ordered list.
+
+USE_INLINE_TREES       = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+# Use this tag to change the font size of Latex formulas included
+# as images in the HTML documentation. The default is 10. Note that
+# when you change the font size after a successful doxygen run you need
+# to manually remove any form_*.png images from the HTML output directory
+# to force them to be regenerated.
+
+FORMULA_FONTSIZE       = 10
+
+# When the SEARCHENGINE tag is enable doxygen will generate a search box for the HTML output. The underlying search engine uses javascript
+# and DHTML and should work on any modern browser. Note that when using HTML help (GENERATE_HTMLHELP) or Qt help (GENERATE_QHP)
+# there is already a search function so this one should typically
+# be disabled.
+
+SEARCHENGINE           = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, a4wide, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = YES
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+# 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.
+
+LATEX_SOURCE_CODE      = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA             =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD                =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader.
+# This is useful
+# if you want to understand what is going on.
+# On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED             = DOXYGEN_SHOULD_SKIP_THIS
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all function-like macros that are alone
+# on a line, have an all uppercase name, and do not end with a semicolon. Such
+# function macros are typically used for boiler-plate code, and will confuse
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+#
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+#
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option is superseded by the HAVE_DOT option below. This is only a
+# fallback. It is recommended to install and use dot, since it yields more
+# powerful graphs.
+
+CLASS_DIAGRAMS         = NO
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see
+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            =
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = NO
+
+# By default doxygen will write a font called FreeSans.ttf to the output
+# directory and reference it in all dot files that doxygen generates. This
+# font does not include all possible unicode characters however, so when you need
+# these (or just want a differently looking font) you can specify the font name
+# using DOT_FONTNAME. You need need to make sure dot is able to find the font,
+# which can be done by putting it in a standard location or by setting the
+# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
+# containing the font.
+
+DOT_FONTNAME           = FreeSans
+
+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
+# The default size is 10pt.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the output directory to look for the
+# FreeSans.ttf font (which doxygen will put there itself). If you specify a
+# different font using DOT_FONTNAME you can set the path where dot
+# can find it using this tag.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH          = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
+# doxygen will generate a call dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable call graphs
+# for selected functions only using the \callgraph command.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
+# doxygen will generate a caller dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable caller
+# graphs for selected functions only using the \callergraph command.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS           =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the
+# number of direct children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not
+# seem to support this out of the box. Warning: Depending on the platform used,
+# enabling this option may lead to badly anti-aliased labels on the edges of
+# a graph (i.e. they become hard to read).
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS      = YES
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP            = YES

=== added file 'INSTALL'
--- INSTALL	1970-01-01 00:00:00 +0000
+++ INSTALL	2011-06-15 05:26:31 +0000
@@ -0,0 +1,18 @@
+compiz uses libstartup-notification which is available at
+ftp://ftp.gnome.org/pub/GNOME/sources/startup-notification/
+
+compiz uses out-of-tree builds with cmake, in order to generate the Makefiles for compiz use:
+
+	$ mkdir build
+	$ cd build
+	$ cmake ..
+
+After that, standard build procedures apply:
+
+	$ make
+	# make install
+
+In order to build other plugins, you will need to install the compiz cmake set
+
+	# make findcompiz_install
+

=== added file 'NEWS'
--- NEWS	1970-01-01 00:00:00 +0000
+++ NEWS	2011-06-15 05:26:31 +0000
@@ -0,0 +1,498 @@
+Release 0.9.4 (2010-02-24 Sam Spilsbury <sam.spilsbury@xxxxxxxxxxxxx>)
+========================================================================
+Development Release.
+
+Main loop implementation now replaced by the GLib main loop, use custom
+event sources and event dispatch synchronisation. Allows better integration
+with plugins that require tight timing with GLib timers
+
+Moved image and data generation into buildsystem extensions, and installation
+of such data into namespaced areas on the filesystem so plugins can't
+overwrite other plugin's data
+
+Intelligently clip window shadows in decor
+
+Fixed a number of 2D decoration issues
+
+Fixed a number of reparenting, stacking and focus issues
+
+Support different frame types in gtk-window-decorator
+
+
+Release 0.9.2.1 (2010-11-06 Sam Spilsbury <sam.spilsbury@xxxxxxxxxxxxx>)
+========================================================================
+Bugfix release.
+
+
+Release 0.9.2 (2010-10-24 Sam Spilsbury <smspillaz@xxxxxxxxx>)
+==============================================================
+Development release.
+
+Made minimization functions wrappable
+
+Decorators now get shadow settings from window properties on the root
+window and not through gconf, kconfig or dbus
+
+Allow resizing from the center of the window
+
+Clean up gtk-window-decorator
+
+Fixed a number of reparenting bugs
+
+Release 0.9.0 (2010-07-03 Sam Spilsbury <smspillaz@xxxxxxxxx>)
+==============================================================
+Development release.
+
+Rewritten core in C++.
+
+Rewritten plugin APIs.
+
+Rewritten buildsystem in CMake, supports option code autogeneration,
+plugin build dependency handling, amongst other things.
+
+Smart wrappable functions, enables saving on otherwise useless CPU cycles.
+
+Reparenting window decorations.
+
+Support for tiled textures and screen sizes larger than max_texture_size
+through the use of the copytex plugin.
+
+Composite and OpenGL based rendering dropped from core, split into the
+opengl and composite plugins, which represent a step towards pluggable
+rendering backends.
+
+Ability to run in non composited mode added to gtk-window-decorator
+and kde4-window-decorator.
+
+kde-window-decorator dropped.
+
+Added KDE plugin to integrate with the QT main loop and create a KApplication
+for KCrash support on KDE.
+
+dbus plugin now uses screen number to identify compiz instance.
+
+Dropped multi-screen mode, launch compiz on individual screens instead.
+
+Shape drawing mode added to annotate plugin.
+
+Fixed screen updates issue in annotate plugin.
+
+Added serialization interface, which allows plugins to save/restore activity
+states between plugin and compiz reloads. Serialization info is stored in
+X11 window properties and is automatically dropped by the X Server when
+the window is destroyed.
+
+Added compiztoolbox library plugin used by switchers and screenshot, which
+provide a simple interface for accessing XDG and drawing thumbnails.
+
+Release 0.8.6 (2010-03-28 Danny Baumann <dannybaumann@xxxxxx>)
+==============================================================
+Maintenance release.
+
+Various focus and window placement fixes.
+
+Fixed handling of windows that have a (server-drawn) border.
+
+Fixed handling of window icons that have a colour depth of 1 bit.
+
+Added KDE 4.4 support to KDE4 window decorator.
+
+Release 0.8.4 (2009-10-14 Erkin Bahceci <erkinbah@xxxxxxxxx>)
+=============================================================
+Maintenance release.
+
+Fixed many crashes (including doPoll/eventLoop ones).
+
+Various memory leak fixes.
+
+Fixed lost window issues with windows that are visible on all workspaces.
+
+Fixed lost window issue when reducing the number of workspaces.
+
+Fixed placing of dialogs (e.g. PolicyKit) behind currently focused window.
+
+Fixed placing of new windows behind fullscreen window.
+
+Fixed and improved screen resolution change handling (Compiz now remembers
+original window size and position).
+
+Lowering a window now activates the topmost window when click-to-focus is on.
+
+Fixed wobbly title bar hiding and bouncing near panel edges.
+
+Screenshot plugin now saves to the correct desktop directory by default.
+
+Fixed inconsistent icon sizes in switcher plugin.
+
+Improved constraining of window size and position in move, resize, and wobbly.
+
+Ported KDE4 window decorator to KDE 4.3.
+
+Added support for _NET_REQUEST_FRAME_EXTENTS and _NET_SUPPORT_FULL_PLACEMENT
+EWMH hints.
+
+Release 0.8.2 (2009-03-01 Danny Baumann <dannybaumann@xxxxxx>)
+==============================================================
+Maintenance release.
+
+Fixed issue in strut handling that could lead to struts being ignored
+for certain monitor configurations.
+
+Fixed window position constraining logic.
+
+Fixed kconfig xslt files missing from 0.8.0 tarball.
+
+Release 0.8.0 (2009-02-20 Danny Baumann <dannybaumann@xxxxxx>)
+==============================================================
+Fourth stable release of compiz.
+
+New plugin "commands" that handles the bindings for arbitrary commands that
+previously were handled in core. In addition to the previously present key
+bindings button and edge bindings were added as well.
+
+New plugin "gnomecompat" which handles bindings that are exclusively used
+in the Gnome desktop environment and removed the corresponding bindings
+from core. This change fixes main menu and run dialog bindings for KDE users
+as those previously were conflicting between compiz and KDE. Gnome users
+upgrading should make sure to enable this plugin.
+
+Added support for _NET_WM_FULLSCREEN_MONITORS EWMH hint.
+
+Added support for reading the icon hint from the WM_HINTS property if
+_NET_WM_ICON is not available.
+
+Update Gnome support for Gnome 2.24.
+
+Added options to scale plugin that allow "toggle type" behaviour for
+key and button bindings.
+
+Several memory leak fixes.
+
+Adjusted gtk-window-decorator for newer libmetacity-private versions.
+
+Fixed gtk-window-decorator display for RTL languages.
+
+Adjusted kde4-window-decorator for KDE 4.2 API.
+
+Large number of minor bug fixes, especially in resize handling and
+stacking code.
+
+Translation updates
+
+Release 0.7.8 (2008-09-17 Danny Baumann <dannybaumann@xxxxxx>)
+==============================================================
+Development release.
+
+New plugin "obs" that handles opacity, brightness and saturation bindings
+and matches.
+
+Put unresponsive window greyout, including options to configure it, to
+fade plugin.
+
+Add "constant fade time" fade mode to fade plugin.
+
+Removed opacity bindings and matches from core. Users that entered opacity
+matches should enable the obs plugin and enter the matches there.
+
+Enhanced timer infrastructure to allow synchronization of execution of
+multiple timer callbacks.
+
+Added matching for window's alpha channel (match type rgba=[0|1]).
+
+Reflect new Metacity "spacer" button type in gtk-window-decorator.
+
+Various bugfixes.
+
+Translation updates.
+
+Release 0.7.6 (2008-05-29 Dennis Kasprzyk <onestone@xxxxxxxxxxxxxxxxxxx>)
+=========================================================================
+Development release.
+
+Rewrite of place plugin, which significantly improves multi-output
+behaviour.
+
+Configurable multi-output behaviour in place.
+
+Removed plane plugin. Former plane plugin users are encouraged to use
+the wall plugin of Compiz Fusion.
+
+Removed cube wallpaper painting. Users are encouraged to use the Compiz
+Fusion wallpaper plugin instead.
+
+Place plugin viewport placement viewport numbers are now 1-based.
+
+Panel and desktop selection mode in switcher plugin.
+
+Improved painting behaviour when using overlapping outputs.
+
+Gtk-window-decorator now emits accessibility events when switching.
+
+Gtk-window-decorator behaviour when using Metacity themes has been
+improved to match Metacity better.
+
+KDE4-window-decorator has been adapted to current KDE4 API.
+
+Various bugfixes.
+
+Release 0.7.4 (2008-03-04 Dennis Kasprzyk <onestone@xxxxxxxxxxxxxxxxxxx>)
+=========================================================================
+Development release.
+
+Configurable handling of overlapping output devices.
+
+Enhanced focus stealing prevention with configurable amount of focus
+stealing prevention.
+
+Added configurable, optional delay for edge actions to prevent
+accidential invocation.
+
+Generalized vertex system to improve plugin compatibility.
+
+Optimized gaussian blur shaders to support more hardware.
+
+Improved unredirection of fullscreen windows.
+
+Several bugfixes.
+
+Translation updates.
+
+Release 0.7.2 (2008-03-06 Dennis Kasprzyk <onestone@xxxxxxxxxxxxxxxxxxx>)
+=========================================================================
+Development release.
+
+Several bugfixes 
+
+Translation support in gtk-window-decorator.
+
+Updated translations.
+
+Added wrapable session functions to core. This allows to provide a full session save/restore in a plugin.
+
+Release 0.7.0 (2008-02-07 Dennis Kasprzyk <onestone@xxxxxxxxxxxxxxxxxxx>)
+=========================================================================
+Development release.
+
+A core plugin has been added that allows handling certain core APIs, such as
+querying the ABI version, similarly to plugin APIs, allowing sharing more
+code.
+
+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.
+
+Multi-display support.
+
+Various fixes in ICCCM compliance, window stacking and focus handling.
+
+Validity checking of ConfigureRequest events.
+
+Fixes to transient children placement in place plugin.
+
+Hooks have been added to the cube plugin which allow better control of
+viewport drawing.
+
+Middle and right click actions have been made configurable in
+gtk-window-decorator.
+
+Gtk-window-decorator now optionally allows mouse wheel title bar actions, such
+as shading.
+
+A KDE4 port of the kde-window-decorator has been added.
+
+Frequent crashes of kde-window-decorator for some people have been fixed.
+
+
+Release 0.5.4 (2007-08-20 David Reveman <davidr@xxxxxxxxxx>)
+============================================================
+Development release.
+
+XCB is now required.
+
+Major improvements to option system that makes
+configuration backend integration much less complex.
+
+Kconfig plugin that provides proper KDE configuration
+support.
+
+Kcfg files are generated from the meta-data and they can
+be used to generate C++ source code that will provide an
+API for applications to access all compiz configuration
+data used by the kconfig plugin.
+
+
+Release 0.5.2 (2007-08-03 David Reveman <davidr@xxxxxxxxxx>)
+============================================================
+Development release.
+
+Better support for multiple X-screens.
+
+XML-based meta-data system for handling of various kinds
+for meta-data like plugin descriptions, default option
+values, etc.
+
+Major improvements to option initialization based on the
+new meta-data system.
+
+Logging framework.
+
+Support for configurable button layout in metacity themes
+has been added to gtk-window-decorator.
+
+Glib plugin that allows plugins that use the glib main
+loop to integrate properly with the compiz main loop
+without waking up periodically to check for pending
+events.
+
+Plugin plugins that make it possible to adjust and extend
+the behavior of existing plugins through new plugins.
+
+More dynamic handling of output devices, which allows the
+output device configuration used when rendering to be
+changed between frames.
+
+Transparency support in cube plugin.
+
+Introspection support in dbus plugin.
+
+
+Release 0.5.0 (2007-04-02 David Reveman <davidr@xxxxxxxxxx>)
+============================================================
+Development release.
+
+Remove stencil buffer requirement.
+
+Focus stealing prevention support.
+
+Blur plugin that provide support for blurring windows and
+contents behind translucent windows.
+
+Fragment attribute interface that allow plugins
+to perform more advanced fragment shading effects and
+integrate properly with other plugins.
+
+Extensible window matching interface and new option type
+that provide advanced window selection functionality.
+
+Plugin that provide a composited video interface for
+efficient video playback.
+
+FUSE plugin that maps compiz options to a file-system and
+allow efficient manipulation of options by reading and
+writing files.
+
+Better occlusion detection and more efficient rendering.
+
+Flat file configuration backend.
+
+
+Release 0.3.6 (2006-12-31 David Reveman <davidr@xxxxxxxxxx>)
+============================================================
+Development release.
+
+Add support for unredirect of fullscreen windows when using
+the composite overlay window and make usage of the
+composite overlay window for output default.
+
+Add file notification API.
+
+Add inotify plugin that implements file notification API.
+
+A "GetPlugins" method has been added to dbus plugin
+and it can be used to retrieve a list of available plugins.
+
+A 'GetPluginMetadata' method has been added to dbus plugin
+and it returns metadata for available plugins.
+
+Add support for switching between windows without having
+the thumbnail window show up.
+
+Switcher thumbnails now include decorations and shadows.
+
+Basic drag and drop support has been added to scale plugin.
+
+It's now possible to initiate scale plugin for specific window
+groups.
+
+Window menu icon support has been added to gtk window decorator.
+
+Improved support for metacity themes.
+
+Add KDE window decorator with support for shadows and opacity
+has been added.
+
+
+Release 0.3.4 (2006-11-21 David Reveman <davidr@xxxxxxxxxx>)
+============================================================
+Development release.
+
+Edge button, which can be used to require a button press
+for edge actions to be triggered.
+
+Basic compiz event support.
+
+Zoom plugin now works without "largedesktop" feature.
+
+Cube plugin now handles desktop width less than 4 times
+the screen better.
+
+Support for multiple desktops (workspaces).
+
+Handling of _NET_DESKTOP_GEOMETRY client messages has
+been fixed.
+
+Much better multi-head support.
+
+Annotate plugin has been added.
+
+Clone plugin which can be used to clone outputs in a
+convenient way has been added. Currently more of a
+prototype as we need randr++ and input transformation
+in the server to do this properly.
+
+Shadow color option has been added.
+
+initiate_all option has been added to scale plugin.
+
+Zoom factor option has been added to zoom plugin.
+
+Support for new metacity theme version and support for
+metacity versions < 2.15.21.
+
+Event window placement when using some metacity
+themes has been fixed.
+
+Fix a number of issues related to minimizing windows
+with transients.
+
+
+Release 0.3.2 (2006-10-20 David Reveman <davidr@xxxxxxxxxx>)
+============================================================
+Development release.
+
+snap_inverted option has been added to wobbly plugin.
+
+Configuration support has been added to dbus plugin.
+
+Add 'command' option has been added to decoration plugin,
+which can be used to automatically launch a decorator
+when one isn't already running.
+
+Opacity support for metacity themes.
+
+A raise_window option has been added.
+
+Decorations on maximized windows are now rendered
+correctly when using metacity themes.
+
+An ignore_hints_when_maximized option, which makes compiz
+ignore size increment and aspect hints for maximized
+windows has been added and made default.
+
+Better default option values for rotate plugin.
+
+and much more...
+
+
+Release 0.2.0 (2006-10-02 David Reveman <davidr@xxxxxxxxxx>)
+============================================================
+First official release of compiz.
+

=== added file 'README'
--- README	1970-01-01 00:00:00 +0000
+++ README	2011-06-15 05:26:31 +0000
@@ -0,0 +1,8 @@
+compiz - OpenGL window and compositing manager
+
+Compiz is an OpenGL compositing manager that use GLX_EXT_texture_from_pixmap
+for binding redirected top-level windows to texture objects. It has a flexible
+plug-in system and it is designed to run well on most graphics hardware. 
+
+David Reveman
+davidr@xxxxxxxxxx

=== added file 'RELEASING'
--- RELEASING	1970-01-01 00:00:00 +0000
+++ RELEASING	2011-06-15 05:26:31 +0000
@@ -0,0 +1,75 @@
+Here are the steps to follow to create a new compiz release:
+
+1) Ensure that there are no local, uncommitted modifications.
+   It's probably good enough if "git diff HEAD" doesn't output
+   anything and your "master" and "origin" branches are at the
+   current revision.
+
+2) Verify that the code passes "make distcheck"
+
+	Running "make distcheck" should result in no warnings or
+	errors and end with a message of the form:
+
+	==============================================
+	compiz-X.Y.Z archives ready for distribution:
+	compiz-X.Y.Z.tar.gz
+	==============================================
+
+	(But the tar file isn't actually ready yet, as we still have
+	some more steps to follow).
+
+3) Fill out an entry in the NEWS file
+
+	Shift through the logs since the last release. This is most
+	easily done with a comand such as:
+
+		git log --stat compiz-X.Y.Z..
+
+	where X.Y.Z is the previous release version.
+
+	Summarize major changes briefly in a style similar to other
+	entries in NEWS.
+
+4) Increment version number in configure.ac:
+
+	Increment to the micro version number to the next larger
+	(even) number.
+
+5) Commit the changes to NEWS and configure.ac
+
+	It's especially important to mention the new version number in your
+	commit log.
+
+6) Run "make release-publish" which will perform the following steps
+   for you:
+
+	* Check that the version number ends with an even micro component
+	* Check that no release exists with the current version
+	* Verify that make distcheck completes successfully
+	* Generate the final tar file
+	* Generate an sha1sum file
+	* Sign the sha1sum using your GPG setup (asks for your GPG password)
+	* scp the three files to appear on
+	  http://xorg.freedesktop.org/archive/individual/app
+	* Place local copies of the three files in the releases directory
+	* Tag the entire source tree with a tag of the form compiz-X.Y.Z, and
+	  sign the tag with your GPG key (asks for your GPG password, and you
+	  may need to set GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL to match
+	  your public-key's setting or this fails.)
+	* Provide some text for the release announcement (see below).
+	  If for some reason you lost this message,
+	  "make release-publish-message" prints it for you.
+
+7) Increment compiz_version_micro to the next larger (odd) number in
+   configure, commit, and push.
+
+8) Push the newly created tag out to the central tree with a command
+   something like:
+
+	git push compiz-X.Y.Z
+
+9) Send a message to compiz@xxxxxxxxxxxxxxxxxxxx to announce the
+   new release using the text provided from "make release-publish",
+   adding the excerpt from NEWS, your signature, followed by
+   tacking on the detailed changelog-ish thing that gets mailed
+   out when you push the tag (but not the diffstat thing).

=== added file 'TODO'
--- TODO	1970-01-01 00:00:00 +0000
+++ TODO	2011-06-15 05:26:31 +0000
@@ -0,0 +1,22 @@
+
+General:
+
+* Session management
+
+* Various window management improvements
+
+* Window shade mode
+
+* Support for multiple desktops
+
+* Multi-screen support
+
+
+KDE:
+
+* Remove glib dependency from place plugin
+
+* QT/KDE configuration plugin similar to the gconf plugin
+
+* QT/KDE decoration program
+

=== added directory 'cmake'
=== added file 'cmake/CMakeLists.txt'
--- cmake/CMakeLists.txt	1970-01-01 00:00:00 +0000
+++ cmake/CMakeLists.txt	2011-06-15 05:26:31 +0000
@@ -0,0 +1,32 @@
+compiz_configure_file (
+    ${CMAKE_CURRENT_SOURCE_DIR}/CompizDefaults.cmake.in
+    ${CMAKE_CURRENT_BINARY_DIR}/CompizDefaults.cmake
+)
+
+set (_files
+    CompizCommon.cmake
+    CompizPlugin.cmake
+    CompizPackage.cmake
+    CompizBcop.cmake
+    ${CMAKE_CURRENT_BINARY_DIR}/CompizDefaults.cmake
+)
+
+list (APPEND _PluginExtensionFiles
+      plugin_extensions/CompizGenInstallData.cmake)
+list (APPEND _PluginExtensionFiles
+      plugin_extensions/CompizGenInstallImages.cmake)
+
+if (USE_GCONF)
+    list (APPEND _files CompizGconf.cmake)
+    list (APPEND _PluginExtensionFiles plugin_extensions/CompizGenGconf.cmake)
+endif (USE_GCONF)
+
+install (
+    FILES ${_files}
+    DESTINATION ${COMPIZ_DESTDIR}${CMAKE_INSTALL_PREFIX}/share/compiz/cmake
+)
+
+install (
+    FILES ${_PluginExtensionFiles}
+    DESTINATION ${COMPIZ_DESTDIR}${CMAKE_INSTALL_PREFIX}/share/compiz/cmake/plugin_extensions
+)

=== added file 'cmake/CompizBcop.cmake'
--- cmake/CompizBcop.cmake	1970-01-01 00:00:00 +0000
+++ cmake/CompizBcop.cmake	2011-06-15 05:26:31 +0000
@@ -0,0 +1,41 @@
+find_program (XSLTPROC_EXECUTABLE xsltproc)
+mark_as_advanced (FORCE XSLTPROC_EXECUTABLE)
+
+if (NOT XSLTPROC_EXECUTABLE)
+    message (FATAL_ERROR "xsltproc not found.")
+endif ()
+
+# does the plugin require bcop
+function (compiz_plugin_needs_bcop _file _return)
+    file (READ ${_file} _xml_content)
+    if ("${_xml_content}" MATCHES "useBcop=\"true\"")
+	set (${_return} TRUE PARENT_SCOPE)
+    else ()
+	set (${_return} FALSE PARENT_SCOPE)
+    endif ()
+endfunction ()
+
+# prepare bcop build
+function (compiz_add_bcop_targets _plugin _file _sources)
+
+    add_custom_command (
+        OUTPUT ${CMAKE_BINARY_DIR}/generated/${_plugin}_options.h
+        COMMAND ${XSLTPROC_EXECUTABLE}
+                    -o ${CMAKE_BINARY_DIR}/generated/${_plugin}_options.h
+                    --stringparam "file" "header" ${COMPIZ_BCOP_XSLT}
+                    ${_file}
+        DEPENDS ${_file}
+    )
+    add_custom_command (
+        OUTPUT ${CMAKE_BINARY_DIR}/generated/${_plugin}_options.cpp
+        COMMAND ${XSLTPROC_EXECUTABLE}
+                    -o ${CMAKE_BINARY_DIR}/generated/${_plugin}_options.cpp
+                    --stringparam "file" "source" ${COMPIZ_BCOP_XSLT}
+                    ${_file} > ${CMAKE_BINARY_DIR}/generated/${_plugin}_options.cpp
+        DEPENDS ${_file}
+                ${CMAKE_BINARY_DIR}/generated/${_plugin}_options.h
+    )
+    set (${_sources} "${CMAKE_BINARY_DIR}/generated/${_plugin}_options.h;${CMAKE_BINARY_DIR}/generated/${_plugin}_options.cpp" PARENT_SCOPE)
+
+
+endfunction ()
\ No newline at end of file

=== added file 'cmake/CompizCommon.cmake'
--- cmake/CompizCommon.cmake	1970-01-01 00:00:00 +0000
+++ cmake/CompizCommon.cmake	2011-06-15 05:26:31 +0000
@@ -0,0 +1,277 @@
+cmake_minimum_required (VERSION 2.6)
+
+if ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
+    message (SEND_ERROR "Building in the source directory is not supported.")
+    message (FATAL_ERROR "Please remove the created \"CMakeCache.txt\" file, the \"CMakeFiles\" directory and create a build directory and call \"${CMAKE_COMMAND} <path to the sources>\".")
+endif ("${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_SOURCE_DIR}")
+
+#### policies
+
+cmake_policy (SET CMP0000 OLD)
+cmake_policy (SET CMP0002 OLD)
+cmake_policy (SET CMP0003 NEW)
+cmake_policy (SET CMP0005 OLD)
+cmake_policy (SET CMP0011 OLD)
+
+set (CMAKE_SKIP_RPATH FALSE)
+
+option (COMPIZ_BUILD_WITH_RPATH "Leave as ON unless building packages" ON)
+option (COMPIZ_RUN_LDCONFIG "Leave OFF unless you need to run ldconfig after install")
+option (COMPIZ_PACKAGING_ENABLED "Enable to manually set prefix, exec_prefix, libdir, includedir, datadir" OFF)
+set (COMPIZ_DESTDIR "${DESTDIR}" CACHE STRING "Leave blank unless building packages")
+
+if (NOT COMPIZ_DESTDIR)
+    set (COMPIZ_DESTDIR $ENV{DESTDIR})
+endif ()
+
+set (COMPIZ_DATADIR ${CMAKE_INSTALL_PREFIX}/share)
+set (COMPIZ_METADATADIR ${CMAKE_INSTALL_PREFIX}/share/compiz)
+set (COMPIZ_IMAGEDIR ${CMAKE_INSTALL_PREFIX}/share/compiz/images)
+set (COMPIZ_PLUGINDIR ${libdir}/compiz)
+set (COMPIZ_SYSCONFDIR ${sysconfdir})
+
+set (
+    VERSION ${VERSION} CACHE STRING
+    "Package version that is added to a plugin pkg-version file"
+)
+
+set (
+    COMPIZ_I18N_DIR ${COMPIZ_I18N_DIR} CACHE PATH "Translation file directory"
+)
+
+option (COMPIZ_SIGN_WARNINGS "Should compiz use -Wsign-conversion during compilation." OFF)
+
+if (COMPIZ_SIGN_WARNINGS)
+    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wsign-conversion")
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wsign-conversion")
+else ()
+    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
+    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
+endif ()
+
+function (compiz_ensure_linkage)
+    find_program (LDCONFIG_EXECUTABLE ldconfig)
+    mark_as_advanced (FORCE LDCONFIG_EXECUTABLE)
+
+    if (LDCONFIG_EXECUTABLE AND ${COMPIZ_RUN_LDCONFIG})
+
+    install (
+        CODE "message (\"Running \" ${LDCONFIG_EXECUTABLE} \" \" ${CMAKE_INSTALL_PREFIX} \"/lib\")
+	      exec_program (${LDCONFIG_EXECUTABLE} ARGS \"-v\" ${CMAKE_INSTALL_PREFIX}/lib)"
+        )
+
+    endif (LDCONFIG_EXECUTABLE AND ${COMPIZ_RUN_LDCONFIG})
+endfunction ()
+
+macro (compiz_add_git_dist)
+    set(ARCHIVE_NAME ${CMAKE_PROJECT_NAME}-${VERSION})
+    add_custom_target(dist
+	COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD
+		| bzip2 > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar.bz2
+	WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
+endmacro ()
+
+# unsets the given variable
+macro (compiz_unset var)
+    set (${var} "" CACHE INTERNAL "")
+endmacro ()
+
+# sets the given variable
+macro (compiz_set var value)
+    set (${var} ${value} CACHE INTERNAL "")
+endmacro ()
+
+
+macro (compiz_format_string str length return)
+    string (LENGTH "${str}" _str_len)
+    math (EXPR _add_chr "${length} - ${_str_len}")
+    set (${return} "${str}")
+    while (_add_chr GREATER 0)
+	set (${return} "${${return}} ")
+	math (EXPR _add_chr "${_add_chr} - 1")
+    endwhile ()
+endmacro ()
+
+string (ASCII 27 _escape)
+function (compiz_color_message _str)
+    if (CMAKE_COLOR_MAKEFILE)
+	message (${_str})
+    else ()
+	string (REGEX REPLACE "${_escape}.[0123456789;]*m" "" __str ${_str})
+	message (${__str})
+    endif ()
+endfunction ()
+
+function (compiz_configure_file _src _dst)
+    foreach (_val ${ARGN})
+        set (_${_val}_sav ${${_val}})
+        set (${_val} "")
+	foreach (_word ${_${_val}_sav})
+	    set (${_val} "${${_val}}${_word} ")
+	endforeach (_word ${_${_val}_sav})
+    endforeach (_val ${ARGN})
+
+    configure_file (${_src} ${_dst} @ONLY)
+
+    foreach (_val ${ARGN})
+	set (${_val} ${_${_val}_sav})
+        set (_${_val}_sav "")
+    endforeach (_val ${ARGN})
+endfunction ()
+
+function (compiz_add_plugins_in_folder folder)
+    file (
+        GLOB _plugins_in
+        RELATIVE "${folder}"
+        "${folder}/*/CMakeLists.txt"
+    )
+
+    foreach (_plugin ${_plugins_in})
+        get_filename_component (_plugin_dir ${_plugin} PATH)
+        add_subdirectory (${folder}/${_plugin_dir})
+    endforeach ()
+endfunction ()
+
+#### pkg-config handling
+
+include (FindPkgConfig)
+
+function (compiz_pkg_check_modules _var _req)
+    if (NOT ${_var})
+        pkg_check_modules (${_var} ${_req} ${ARGN})
+	if (${_var}_FOUND)
+	    set (${_var} 1 CACHE INTERNAL "" FORCE)
+	endif ()
+	set(__pkg_config_checked_${_var} 0 CACHE INTERNAL "" FORCE)
+    endif ()
+endfunction ()
+
+#### translations
+
+# translate metadata file
+function (compiz_translate_xml _src _dst)
+    find_program (INTLTOOL_MERGE_EXECUTABLE intltool-merge)
+    mark_as_advanced (FORCE INTLTOOL_MERGE_EXECUTABLE)
+
+    if (INTLTOOL_MERGE_EXECUTABLE
+	AND COMPIZ_I18N_DIR
+	AND EXISTS ${COMPIZ_I18N_DIR})
+	add_custom_command (
+	    OUTPUT ${_dst}
+	    COMMAND ${INTLTOOL_MERGE_EXECUTABLE} -x -u -c
+		    ${CMAKE_BINARY_DIR}/.intltool-merge-cache
+		    ${COMPIZ_I18N_DIR}
+		    ${_src}
+		    ${_dst}
+	    DEPENDS ${_src}
+	)
+    else ()
+    	add_custom_command (
+	    OUTPUT ${_dst}
+	    COMMAND cat ${_src} |
+		    sed -e 's;<_;<;g' -e 's;</_;</;g' > 
+		    ${_dst}
+	    DEPENDS ${_src}
+	)
+    endif ()
+endfunction ()
+
+function (compiz_translate_desktop_file _src _dst)
+    find_program (INTLTOOL_MERGE_EXECUTABLE intltool-merge)
+    mark_as_advanced (FORCE INTLTOOL_MERGE_EXECUTABLE)
+
+    if (INTLTOOL_MERGE_EXECUTABLE
+	AND COMPIZ_I18N_DIR
+	AND EXISTS ${COMPIZ_I18N_DIR})
+	add_custom_command (
+	    OUTPUT ${_dst}
+	    COMMAND ${INTLTOOL_MERGE_EXECUTABLE} -d -u -c
+		    ${CMAKE_BINARY_DIR}/.intltool-merge-cache
+		    ${COMPIZ_I18N_DIR}
+		    ${_src}
+		    ${_dst}
+	    DEPENDS ${_src}
+	)
+    else ()
+    	add_custom_command (
+	    OUTPUT ${_dst}
+	    COMMAND cat ${_src} |
+		    sed -e 's;^_;;g' >
+		    ${_dst}
+	    DEPENDS ${_src}
+	)
+    endif ()
+endfunction ()
+
+#### optional file install
+
+function (compiz_opt_install_file _src _dst)
+    install (CODE
+        "message (\"-- Installing: ${_dst}\")
+         execute_process (
+	    COMMAND ${CMAKE_COMMAND} -E copy_if_different \"${_src}\" \"${COMPIZ_DESTDIR}${_dst}\"
+	    RESULT_VARIABLE _result
+	    OUTPUT_QUIET ERROR_QUIET
+	 )
+	 if (_result)
+	     message (\"-- Failed to install: ${_dst}\")
+	 endif ()
+        "
+    )
+endfunction ()
+
+#### uninstall
+
+macro (compiz_add_uninstall)
+   if (NOT _compiz_uninstall_rule_created)
+	compiz_set(_compiz_uninstall_rule_created TRUE)
+
+	set (_file "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake")
+
+	file (WRITE  ${_file} "if (NOT EXISTS \"${CMAKE_BINARY_DIR}/install_manifest.txt\")\n")
+	file (APPEND ${_file} "  message (FATAL_ERROR \"Cannot find install manifest: \\\"${CMAKE_BINARY_DIR}/install_manifest.txt\\\"\")\n")
+	file (APPEND ${_file} "endif (NOT EXISTS \"${CMAKE_BINARY_DIR}/install_manifest.txt\")\n\n")
+	file (APPEND ${_file} "file (READ \"${CMAKE_BINARY_DIR}/install_manifest.txt\" files)\n")
+	file (APPEND ${_file} "string (REGEX REPLACE \"\\n\" \";\" files \"\${files}\")\n")
+	file (APPEND ${_file} "foreach (file \${files})\n")
+	file (APPEND ${_file} "  message (STATUS \"Uninstalling \\\"\${file}\\\"\")\n")
+	file (APPEND ${_file} "  if (EXISTS \"\${file}\")\n")
+	file (APPEND ${_file} "    exec_program(\n")
+	file (APPEND ${_file} "      \"${CMAKE_COMMAND}\" ARGS \"-E remove \\\"\${file}\\\"\"\n")
+	file (APPEND ${_file} "      OUTPUT_VARIABLE rm_out\n")
+	file (APPEND ${_file} "      RETURN_VALUE rm_retval\n")
+	file (APPEND ${_file} "      )\n")
+	file (APPEND ${_file} "    if (\"\${rm_retval}\" STREQUAL 0)\n")
+	file (APPEND ${_file} "    else (\"\${rm_retval}\" STREQUAL 0)\n")
+	file (APPEND ${_file} "      message (FATAL_ERROR \"Problem when removing \\\"\${file}\\\"\")\n")
+	file (APPEND ${_file} "    endif (\"\${rm_retval}\" STREQUAL 0)\n")
+	file (APPEND ${_file} "  else (EXISTS \"\${file}\")\n")
+	file (APPEND ${_file} "    message (STATUS \"File \\\"\${file}\\\" does not exist.\")\n")
+	file (APPEND ${_file} "  endif (EXISTS \"\${file}\")\n")
+	file (APPEND ${_file} "endforeach (file)\n")
+
+	add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_BINARY_DIR}/cmake_uninstall.cmake")
+
+    endif ()
+endmacro ()
+
+#posix 2008 scandir check
+include (CheckCXXSourceCompiles)
+CHECK_CXX_SOURCE_COMPILES (
+  "# include <dirent.h>
+   int func (const char *d, dirent ***list, void *sort)
+   {
+     int n = scandir(d, list, 0, (int(*)(const dirent **, const dirent **))sort);
+     return n;
+   }
+
+   int main (int, char **)
+   {
+     return 0;
+   }
+  "
+  HAVE_SCANDIR_POSIX)
+
+if (HAVE_SCANDIR_POSIX)
+  add_definitions (-DHAVE_SCANDIR_POSIX)
+endif ()

=== added file 'cmake/CompizDefaults.cmake'
--- cmake/CompizDefaults.cmake	1970-01-01 00:00:00 +0000
+++ cmake/CompizDefaults.cmake	2011-06-15 05:26:31 +0000
@@ -0,0 +1,15 @@
+set (COMPIZ_PREFIX ${CMAKE_INSTALL_PREFIX})
+set (COMPIZ_INCLUDEDIR ${includedir})
+set (COMPIZ_LIBDIR ${libdir})
+
+list (APPEND COMPIZ_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/include)
+list (APPEND COMPIZ_INCLUDE_DIRS ${CMAKE_BINARY_DIR})
+
+set (COMPIZ_BCOP_XSLT ${CMAKE_SOURCE_DIR}/xslt/bcop.xslt)
+
+set (COMPIZ_GCONF_SCHEMAS_SUPPORT ${USE_GCONF})
+set (COMPIZ_GCONF_SCHEMAS_XSLT ${CMAKE_SOURCE_DIR}/xslt/compiz_gconf_schemas.xslt)
+
+set (COMPIZ_PLUGIN_INSTALL_TYPE "package")
+
+set (_COMPIZ_INTERNAL 1)

=== added file 'cmake/CompizDefaults.cmake.in'
--- cmake/CompizDefaults.cmake.in	1970-01-01 00:00:00 +0000
+++ cmake/CompizDefaults.cmake.in	2011-06-15 05:26:31 +0000
@@ -0,0 +1,5 @@
+
+set (COMPIZ_BCOP_XSLT @CMAKE_INSTALL_PREFIX@/share/compiz/xslt/bcop.xslt)
+
+set (COMPIZ_GCONF_SCHEMAS_SUPPORT @USE_GCONF@)
+set (COMPIZ_GCONF_SCHEMAS_XSLT @CMAKE_INSTALL_PREFIX@/share/compiz/xslt/compiz_gconf_schemas.xslt)
\ No newline at end of file

=== added file 'cmake/CompizGconf.cmake'
--- cmake/CompizGconf.cmake	1970-01-01 00:00:00 +0000
+++ cmake/CompizGconf.cmake	2011-06-15 05:26:31 +0000
@@ -0,0 +1,52 @@
+option (
+    COMPIZ_DISABLE_SCHEMAS_INSTALL
+    "Disables gconf schema installation with gconftool"
+    OFF
+)
+
+set (
+    COMPIZ_INSTALL_GCONF_SCHEMA_DIR ${COMPIZ_INSTALL_GCONF_SCHEMA_DIR} CACHE PATH
+    "Installation path of the gconf schema file"
+)
+
+function (compiz_install_gconf_schema _src _dst)
+    find_program (GCONFTOOL_EXECUTABLE gconftool-2)
+    mark_as_advanced (FORCE GCONFTOOL_EXECUTABLE)
+
+    if (GCONFTOOL_EXECUTABLE AND NOT COMPIZ_DISABLE_SCHEMAS_INSTALL)
+	install (CODE "
+		if (\"\$ENV{USER}\" STREQUAL \"root\")
+		    exec_program (${GCONFTOOL_EXECUTABLE}
+			ARGS \"--get-default-source\"
+			OUTPUT_VARIABLE ENV{GCONF_CONFIG_SOURCE})
+		    exec_program (${GCONFTOOL_EXECUTABLE}
+			ARGS \"--makefile-install-rule ${_src} > /dev/null\")
+		else (\"\$ENV{USER}\" STREQUAL \"root\")
+		    exec_program (${GCONFTOOL_EXECUTABLE}
+			ARGS \"--install-schema-file=${_src} > /dev/null\")
+		endif (\"\$ENV{USER}\" STREQUAL \"root\")
+		")
+    endif ()
+    install (
+	FILES "${_src}"
+	DESTINATION "${COMPIZ_DESTDIR}${_dst}"
+    )
+endfunction ()
+
+# generate gconf schema
+function (compiz_gconf_schema _src _dst _inst)
+    find_program (XSLTPROC_EXECUTABLE xsltproc)
+    mark_as_advanced (FORCE XSLTPROC_EXECUTABLE)
+
+    if (XSLTPROC_EXECUTABLE)
+	add_custom_command (
+	    OUTPUT ${_dst}
+	    COMMAND ${XSLTPROC_EXECUTABLE}
+		    -o ${_dst}
+		    ${COMPIZ_GCONF_SCHEMAS_XSLT}
+		    ${_src}
+	    DEPENDS ${_src}
+	)
+	compiz_install_gconf_schema (${_dst} ${_inst})
+    endif ()
+endfunction ()

=== added file 'cmake/CompizPackage.cmake'
--- cmake/CompizPackage.cmake	1970-01-01 00:00:00 +0000
+++ cmake/CompizPackage.cmake	2011-06-15 05:26:31 +0000
@@ -0,0 +1,101 @@
+include (CompizCommon)
+
+function (compiz_package_generation _name)
+    include(InstallRequiredSystemLibraries)
+
+    set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "${_name}")
+    set (CPACK_PACKAGE_VENDOR "Compiz")
+    set (CPACK_PACKAGE_VERSION "${VERSION}")
+    set (CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${VERSION}")
+
+    set (CPACK_RPM_PACKAGE_SUMMARY ${CPACK_PACKAGE_DESCRIPTION_SUMMARY})
+    set (CPACK_RPM_PACKAGE_NAME ${CPACK_PACKAGE_NAME})
+    set (CPACK_RPM_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION})
+    set (CPACK_RPM_PACKAGE_RELEASE 1)
+    set (CPACK_RPM_PACKAGE_LICENCE "GPL")
+    set (CPACK_RPM_PACKAGE_GROUP "unknown")
+    set (CPACK_RPM_PACKAGE_VENDOR ${CPACK_PACKAGE_VENDOR})
+    set (CPACK_RPM_PACKAGE_DESCRIPTION "The blingiest window manager in the world")
+    set (CPACK_SOURCE_GENERATOR "TGZ;TBZ2")
+    set (CPACK_SOURCE_IGNORE_FILES  "\\\\.#;/#;.*~")
+    list (APPEND CPACK_SOURCE_IGNORE_FILES "/\\\\.git")
+    list (APPEND CPACK_SOURCE_IGNORE_FILES "${CMAKE_BINARY_DIR}")
+    list (APPEND CPACK_SOURCE_IGNORE_FILES "legacy/")
+    list (APPEND CPACK_SOURCE_IGNORE_FILES "\\\\.intltool-merge-cache")
+    list (APPEND CPACK_SOURCE_IGNORE_FILES "/po/POTFILES$")
+    list (APPEND CPACK_SOURCE_IGNORE_FILES "CMakeCache.txt")
+    list (APPEND CPACK_SOURCE_IGNORE_FILES "CMakeFiles")
+    include(CPack)
+
+    #file (REMOVE "${CMAKE_BINARY_DIR}/CPackConfig.cmake")
+endfunction ()
+
+function (compiz_print_configure_header _name)
+    compiz_format_string ("${_name}" 40 _project)
+    compiz_format_string ("${VERSION}" 40 _version)
+    compiz_color_message ("\n${_escape}[40;37m************************************************************${_escape}[0m")
+    compiz_color_message ("${_escape}[40;37m* ${_escape}[1;31mCompiz ${_escape}[0;40;34mBuildsystem${_escape}[0m${_escape}[40;37m                                       *${_escape}[0m")
+    compiz_color_message ("${_escape}[40;37m*                                                          *${_escape}[0m")
+    compiz_color_message ("${_escape}[40;37m* Package : ${_escape}[32m${_project} ${_escape}[37m      *${_escape}[0m")
+    compiz_color_message ("${_escape}[40;37m* Version : ${_escape}[32m${_version} ${_escape}[37m      *${_escape}[0m")
+    compiz_color_message ("${_escape}[40;37m************************************************************${_escape}[0m")
+endfunction ()
+
+function (compiz_print_configure_footer)
+    compiz_color_message ("${_escape}[40;37m************************************************************${_escape}[0m\n")
+endfunction ()
+
+function (compiz_print_plugin_stats _folder)
+    compiz_color_message ("\n${_escape}[4mPlugin configure check results:${_escape}[0m\n")
+    file (
+	GLOB _plugins_in 
+	RELATIVE "${_folder}"
+	"${_folder}/*/CMakeLists.txt"
+    )
+    foreach (_plugin ${_plugins_in})
+	file (READ "${_folder}/${_plugin}" _file)
+	if (_file MATCHES "^.*compiz_plugin ?\\(([^\\) ]*).*$")
+	    string (
+		REGEX REPLACE
+		"^.*compiz_plugin ?\\(([^\\) ]*).*$" "\\1"
+		_plugin_name ${_file}
+	    )
+	else ()
+	    get_filename_component (_plugin_name ${_plugin} PATH)
+	endif ()
+
+	string (TOUPPER ${_plugin_name} _PLUGIN)
+	compiz_format_string (${_plugin_name} 14 _plugin_name)
+
+	if (COMPIZ_DISABLE_PLUGIN_${_PLUGIN})
+	    compiz_color_message ("  ${_plugin_name}: ${_escape}[1;34mDisabled${_escape}[0m")
+	else ()
+	    if (COMPIZ_${_PLUGIN}_BUILD)
+		compiz_color_message ("  ${_plugin_name}: ${_escape}[1;32mYes${_escape}[0m")
+	    else ()
+		compiz_color_message ("  ${_plugin_name}: ${_escape}[1;31mNo${_escape}[0m (Missing dependencies :${COMPIZ_${_PLUGIN}_MISSING_DEPS})")
+	    endif ()
+	endif ()
+    endforeach ()
+    message ("")
+endfunction ()
+
+function (compiz_print_result_message _name _var)
+    compiz_format_string ("${_name}" 30 __name)
+    if (${_var})
+	set (_result "${_escape}[1;32mYes${_escape}[0m")
+    else (${_var})
+	set (_result "${_escape}[1;31mNo${_escape}[0m")
+    endif (${_var})
+    compiz_color_message ("   ${__name} : ${_result}")
+endfunction (compiz_print_result_message)
+
+function (compiz_get_version_from_file)
+    file (READ "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" _file)
+    string (
+	REGEX REPLACE
+	"^.*VERSION=([^\n]*).*$" "\\1"
+	_version ${_file}
+    )
+    set (VERSION ${_version} PARENT_SCOPE)
+endfunction ()

=== added file 'cmake/CompizPlugin.cmake'
--- cmake/CompizPlugin.cmake	1970-01-01 00:00:00 +0000
+++ cmake/CompizPlugin.cmake	2011-06-15 05:26:31 +0000
@@ -0,0 +1,440 @@
+#######################################################################
+#
+# Generic Compiz Fusion plugin cmake module
+#
+# Copyright : (C) 2008 by Dennis Kasprzyk
+# E-mail    : onestone@xxxxxxxxxxxxxxxxxxx
+#
+#
+# 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.
+#
+#######################################################################
+#
+# This module provides the following macro:
+#
+# compiz_plugin (<plugin name>
+#                       [PKGDEPS dep1 dep2 ...]
+#                       [PLUGINDEPS plugin1 plugin2 ...]
+#                       [LDFLAGSADD flag1 flag2 ...]
+#                       [CFLAGSADD flag1 flag2 ...]
+#                       [LIBRARIES lib1 lib2 ...]
+#                       [LIBDIRS dir1 dir2 ...]
+#                       [INCDIRS dir1 dir2 ...])
+#
+# PKGDEPS    = pkgconfig dependencies
+# PLUGINDEPS = compiz plugin dependencies
+# LDFLAGSADD = flags added to the link command
+# CFLAGSADD  = flags added to the compile command
+# LIBRARIES  = libraries added to link command
+# LIBDIRS    = additional link directories
+# INCDIRS    = additional include directories
+#
+# The following variables will be used by this macro:
+#
+# BUILD_GLOBAL=true Environment variable to install a plugin
+#                   into the compiz directories
+#
+# COMPIZ_PLUGIN_INSTALL_TYPE = (package | compiz | local (default))
+#     package = Install into ${CMAKE_INSTALL_PREFIX}
+#     compiz  = Install into compiz prefix (BUILD_GLOBAL=true)
+#     local   = Install into home directory
+#
+# COMPIZ_I18N_DIR      = Translation file directory
+#
+# COMPIZ_DISABLE_SCHEMAS_INSTALL  = Disables gconf schema installation with gconftool
+# COMPIZ_INSTALL_GCONF_SCHEMA_DIR = Installation path of the gconf schema file
+#
+# VERSION = package version that is added to a plugin pkg-version file
+#
+#######################################################################
+
+include (CompizCommon)
+include (CompizBcop)
+
+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 up core lib dependences so this in correctly imported into plugins
+
+find_package (Boost 1.34.0 REQUIRED 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"
+)
+
+compiz_pkg_check_modules (COMPIZ REQUIRED ${COMPIZ_REQUIRES})
+
+list (APPEND COMPIZ_LIBRARIES ${Boost_LIBRARIES})
+
+# determinate installation directories
+macro (_prepare_directories)
+    set (CMAKE_CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo;MinSizeRe" CACHE INTERNAL "" FORCE)
+    if ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "package")
+	set (PLUGIN_BUILDTYPE global)
+	set (PLUGIN_PREFIX    ${CMAKE_INSTALL_PREFIX})
+	set (PLUGIN_LIBDIR    ${libdir}/compiz)
+	set (PLUGIN_INCDIR    ${includedir})
+	set (PLUGIN_PKGDIR    ${libdir}/pkgconfig)
+	set (PLUGIN_XMLDIR    ${datadir}/compiz)
+
+	if (NOT CMAKE_BUILD_TYPE)
+	     set (CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Build type (Debug/Release/RelWithDebInfo/MinSizeRe)" FORCE)
+	endif (NOT CMAKE_BUILD_TYPE)
+    elseif ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "compiz" OR
+	    "$ENV{BUILD_GLOBAL}" STREQUAL "true")
+	set (PLUGIN_BUILDTYPE global)
+	set (PLUGIN_PREFIX    ${COMPIZ_PREFIX})
+	set (PLUGIN_LIBDIR    ${COMPIZ_LIBDIR}/compiz)
+	set (PLUGIN_INCDIR    ${COMPIZ_INCLUDEDIR})
+	set (PLUGIN_PKGDIR    ${COMPIZ_LIBDIR}/pkgconfig)
+	set (PLUGIN_XMLDIR    ${COMPIZ_PREFIX}/share/compiz)
+
+	if (NOT CMAKE_BUILD_TYPE)
+	     set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build type (Debug/Release/RelWithDebInfo/MinSizeRe)" FORCE)
+	endif (NOT CMAKE_BUILD_TYPE)
+    else ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "compiz" OR
+	  "$ENV{BUILD_GLOBAL}" STREQUAL "true")
+	set (PLUGIN_BUILDTYPE local)
+	set (PLUGIN_PREFIX    $ENV{HOME}/.compiz-1)
+	set (PLUGIN_LIBDIR    $ENV{HOME}/.compiz-1/plugins)
+	set (PLUGIN_XMLDIR    $ENV{HOME}/.compiz-1/metadata)
+
+	if (NOT CMAKE_BUILD_TYPE)
+	     set (CMAKE_BUILD_TYPE "Debug" CACHE STRING "Build type (Debug/Release/RelWithDebInfo/MinSizeRe)" FORCE)
+	endif (NOT CMAKE_BUILD_TYPE)
+    endif ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "package")
+endmacro (_prepare_directories)
+
+# parse plugin macro parameter
+macro (_get_plugin_parameters _prefix)
+    set (_current_var _foo)
+    set (_supported_var PKGDEPS PLUGINDEPS LDFLAGSADD CFLAGSADD LIBRARIES LIBDIRS INCDIRS)
+    foreach (_val ${_supported_var})
+	set (${_prefix}_${_val})
+    endforeach (_val)
+    foreach (_val ${ARGN})
+	set (_found FALSE)
+	foreach (_find ${_supported_var})
+	    if ("${_find}" STREQUAL "${_val}")
+		set (_found TRUE)
+	    endif ("${_find}" STREQUAL "${_val}")
+	endforeach (_find)
+
+	if (_found)
+	    set (_current_var ${_prefix}_${_val})
+	else (_found)
+	    list (APPEND ${_current_var} ${_val})
+	endif (_found)
+    endforeach (_val)
+endmacro (_get_plugin_parameters)
+
+# check pkgconfig dependencies
+macro (_check_plugin_pkg_deps _prefix)
+    set (${_prefix}_HAS_PKG_DEPS TRUE)
+    foreach (_val ${ARGN})
+        string (REGEX REPLACE "[<>=\\.]" "_" _name ${_val})
+	string (TOUPPER ${_name} _name)
+
+	compiz_pkg_check_modules (_${_name} ${_val})
+
+	if (_${_name}_FOUND)
+	    list (APPEND ${_prefix}_PKG_LIBDIRS "${_${_name}_LIBRARY_DIRS}")
+	    list (APPEND ${_prefix}_PKG_LIBRARIES "${_${_name}_LIBRARIES}")
+	    list (APPEND ${_prefix}_PKG_INCDIRS "${_${_name}_INCLUDE_DIRS}")
+	else ()
+	    set (${_prefix}_HAS_PKG_DEPS FALSE)
+	    compiz_set (COMPIZ_${_prefix}_MISSING_DEPS "${COMPIZ_${_prefix}_MISSING_DEPS} ${_val}")
+	    set(__pkg_config_checked__${_name} 0 CACHE INTERNAL "" FORCE)
+	endif ()
+    endforeach ()
+endmacro ()
+
+# check plugin dependencies
+macro (_check_plugin_plugin_deps _prefix)
+    set (${_prefix}_HAS_PLUGIN_DEPS TRUE)
+    foreach (_val ${ARGN})
+	string (TOUPPER ${_val} _name)
+
+	find_file (
+	    _plugin_dep_${_val}
+	    compiz-${_val}.pc.in
+	    PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../${_val}
+	    NO_DEFAULT_PATH
+	)
+
+	if (_plugin_dep_${_val})
+	    file (RELATIVE_PATH _relative ${CMAKE_CURRENT_SOURCE_DIR} ${_plugin_dep_${_val}})
+	    get_filename_component (_plugin_inc_dir ${_relative} PATH)
+	    list (APPEND ${_prefix}_LOCAL_INCDIRS "${_plugin_inc_dir}/include")
+	    list (APPEND ${_prefix}_LOCAL_LIBRARIES ${_val})
+	else ()
+	    # fallback to pkgconfig
+	    compiz_pkg_check_modules (_${_name} compiz-${_val})
+	    if (_${_name}_FOUND)
+		list (APPEND ${_prefix}_PKG_LIBDIRS "${_${_name}_LIBRARY_DIRS}")
+		list (APPEND ${_prefix}_PKG_LIBRARIES "${_${_name}_LIBRARIES}")
+	        list (APPEND ${_prefix}_PKG_INCDIRS "${_${_name}_INCLUDE_DIRS}")
+	    else ()
+		set (${_prefix}_HAS_PLUGIN_DEPS FALSE)
+		compiz_set (COMPIZ_${_prefix}_MISSING_DEPS "${COMPIZ_${_prefix}_MISSING_DEPS} compiz-${_val}")
+	    endif ()
+	endif ()
+
+	compiz_set (_plugin_dep_${_val} "${_plugin_dep_${_val}}")
+
+    endforeach ()
+endmacro ()
+
+
+
+
+# main function
+function (_build_compiz_plugin plugin)
+    string (TOUPPER ${plugin} _PLUGIN)
+
+    if (COMPIZ_PLUGIN_INSTALL_TYPE)
+	set (
+	    COMPIZ_PLUGIN_INSTALL_TYPE ${COMPIZ_PLUGIN_INSTALL_TYPE} CACHE STRING
+	    "Where a plugin should be installed \(package | compiz | local\)"
+	)
+    else (COMPIZ_PLUGIN_INSTALL_TYPE)
+	set (
+	    COMPIZ_PLUGIN_INSTALL_TYPE "local" CACHE STRING
+	    "Where a plugin should be installed \(package | compiz | local\)"
+	)
+    endif (COMPIZ_PLUGIN_INSTALL_TYPE)
+
+    _get_plugin_parameters (${_PLUGIN} ${ARGN})
+    _prepare_directories ()
+
+    find_file (
+	_${plugin}_xml_in ${plugin}.xml.in
+	PATHS ${CMAKE_CURRENT_SOURCE_DIR}
+	NO_DEFAULT_PATH
+    )
+    if (_${plugin}_xml_in)
+	set (_${plugin}_xml ${_${plugin}_xml_in})
+    else ()
+	find_file (
+	    _${plugin}_xml ${plugin}.xml
+	    PATHS ${CMAKE_CURRENT_SOURCE_DIR} }
+	    NO_DEFAULT_PATH
+        )
+    endif ()
+
+    set (${_PLUGIN}_HAS_PKG_DEPS)
+    set (${_PLUGIN}_HAS_PLUGIN_DEPS)
+
+    # check dependencies
+    compiz_unset (COMPIZ_${_PLUGIN}_MISSING_DEPS)
+    _check_plugin_plugin_deps (${_PLUGIN} ${${_PLUGIN}_PLUGINDEPS})
+    _check_plugin_pkg_deps (${_PLUGIN} ${${_PLUGIN}_PKGDEPS})
+
+    if (${_PLUGIN}_HAS_PKG_DEPS AND ${_PLUGIN}_HAS_PLUGIN_DEPS)
+
+	compiz_set (COMPIZ_${_PLUGIN}_BUILD TRUE PARENT_SCOPE)
+
+	if (NOT EXISTS ${CMAKE_BINARY_DIR}/generated)
+	    file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/generated)
+	endif (NOT EXISTS ${CMAKE_BINARY_DIR}/generated)
+
+	if (_${plugin}_xml_in)
+	    # translate xml
+	    compiz_translate_xml ( ${_${plugin}_xml_in} "${CMAKE_BINARY_DIR}/generated/${plugin}.xml")
+	    set (_translation_sources "${CMAKE_BINARY_DIR}/generated/${plugin}.xml")
+	    set (_translated_xml ${CMAKE_BINARY_DIR}/generated/${plugin}.xml)
+	else ()
+	    if (_${plugin}_xml)
+		set (_translated_xml ${_${plugin}_xml})
+	    endif ()
+	endif ()
+
+	if (_${plugin}_xml)
+	    # do we need bcop for our plugin
+	    compiz_plugin_needs_bcop (${_${plugin}_xml} _needs_bcop)
+	    if (_needs_bcop)
+		# initialize everything we need for bcop
+		compiz_add_bcop_targets (${plugin} ${_${plugin}_xml} _bcop_sources)
+	    endif ()
+	endif ()
+
+	if (_translated_xml)
+
+	    # install xml
+	    install (
+		FILES ${_translated_xml}
+		DESTINATION ${COMPIZ_DESTDIR}${PLUGIN_XMLDIR}
+	    )
+	endif (_translated_xml)
+
+	find_file (
+	    _${plugin}_pkg compiz-${plugin}.pc.in
+	    PATHS ${CMAKE_CURRENT_SOURCE_DIR}
+	    NO_DEFAULT_PATH
+	)
+
+	# generate pkgconfig file and install it and the plugin header file
+	if (_${plugin}_pkg AND EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/include/${plugin})
+	    if ("${PLUGIN_BUILDTYPE}" STREQUAL "local")
+		message (STATUS "[WARNING] The plugin ${plugin} might be needed by other plugins. Install it systemwide.")
+	    else ()
+		set (prefix ${PLUGIN_PREFIX})
+		set (libdir ${PLUGIN_LIBDIR})
+		set (includedir ${PLUGIN_INCDIR})
+		if (NOT VERSION)
+		    set (VERSION 0.0.1-git)
+		endif (NOT VERSION)
+
+		compiz_configure_file (
+		    ${_${plugin}_pkg}
+		    ${CMAKE_BINARY_DIR}/generated/compiz-${plugin}.pc
+		    COMPIZ_REQUIRES
+		    COMPIZ_CFLAGS
+		)
+
+		install (
+		    FILES ${CMAKE_BINARY_DIR}/generated/compiz-${plugin}.pc
+		    DESTINATION ${COMPIZ_DESTDIR}${PLUGIN_PKGDIR}
+		)
+		install (
+		    DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/${plugin}
+		    DESTINATION ${COMPIZ_DESTDIR}${PLUGIN_INCDIR}/compiz
+		)
+	    endif ()
+	endif ()
+
+	set (COMPIZ_CURRENT_PLUGIN ${plugin})
+	set (COMPIZ_CURRENT_XML_FILE ${_translated_xml})
+
+	# find extension files
+	file (GLOB _extension_files "${COMPIZ_CMAKE_MODULE_PATH}/plugin_extensions/*.cmake")
+
+	foreach (_file ${_extension_files})
+	    include (${_file})
+	endforeach ()
+
+	# find files for build
+	file (GLOB _h_files "${CMAKE_CURRENT_SOURCE_DIR}/src/*.h")
+	file (GLOB _h_ins_files "${CMAKE_CURRENT_SOURCE_DIR}/include/${plugin}/*.h")
+	file (GLOB _cpp_files "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp")
+
+#	set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs")
+
+#	set (_cflags "-Wall -Wpointer-arith  -fno-strict-aliasing")
+
+
+	add_definitions (-DPREFIX='\"${PLUGIN_PREFIX}\"'
+			 ${COMPIZ_DEFINITIONS_ADD})
+
+	include_directories (
+            ${CMAKE_CURRENT_SOURCE_DIR}/src
+            ${CMAKE_CURRENT_SOURCE_DIR}/include
+            ${CMAKE_BINARY_DIR}/generated
+            ${${_PLUGIN}_LOCAL_INCDIRS}
+            ${${_PLUGIN}_PKG_INCDIRS}
+            ${${_PLUGIN}_INCDIRS}
+            ${COMPIZ_INCLUDE_DIRS}
+	)
+
+	link_directories (
+            ${COMPIZ_LINK_DIRS}
+            ${${_PLUGIN}_PKG_LIBDIRS}
+            ${${_PLUGIN}_LIBDIRS}
+            ${PLUGIN_LIBDIR}
+            ${COMPIZ_LIBDIR}/compiz
+	)
+
+	add_library (
+            ${plugin} SHARED ${_cpp_files}
+			     ${_h_files}
+			     ${_h_ins_files}
+			     ${_bcop_sources}
+			     ${_translation_sources}
+			     ${COMPIZ_CURRENT_SOURCES_ADDS}
+	)
+
+	if (COMPIZ_BUILD_WITH_RPATH)
+	    set_target_properties (
+		${plugin} PROPERTIES
+		INSTALL_RPATH_USE_LINK_PATH 1
+        	BUILD_WITH_INSTALL_RPATH 1
+        	SKIP_BUILD_RPATH 0
+		COMPILE_FLAGS "${${_PLUGIN}_CFLAGSADD}"
+		LINK_FLAGS "${${_PLUGIN}_LDFLAGSADD}"
+	    )
+	else (COMPIZ_BUILD_WITH_RPATH)
+	    set_target_properties (
+		${plugin} PROPERTIES
+		INSTALL_RPATH_USE_LINK_PATH 0
+		SKIP_BUILD_RPATH 1
+		INSTALL_RPATH "${COMPIZ_LIBDIR}/compiz"
+		COMPILE_FLAGS "${${_PLUGIN}_CFLAGSADD}"
+		LINK_FLAGS "${${_PLUGIN}_LDFLAGSADD}"
+	    )
+	endif (COMPIZ_BUILD_WITH_RPATH)
+
+	target_link_libraries (
+	    ${plugin} ${COMPIZ_LIBRARIES}
+		      ${${_PLUGIN}_LOCAL_LIBRARIES}
+		      ${${_PLUGIN}_PKG_LIBRARIES}
+		      ${${_PLUGIN}_LIBRARIES}
+	)
+
+	install (
+	    TARGETS ${plugin}
+	    LIBRARY DESTINATION ${COMPIZ_DESTDIR}${PLUGIN_LIBDIR}
+	)
+
+	compiz_add_uninstall ()
+
+    else ()
+	message (STATUS "[WARNING] One or more dependencies for compiz plugin ${plugin} not found. Skipping plugin.")
+	message (STATUS "Missing dependencies :${COMPIZ_${_PLUGIN}_MISSING_DEPS}")
+	compiz_set (COMPIZ_${_PLUGIN}_BUILD FALSE)
+    endif ()
+endfunction ()
+
+macro (compiz_plugin plugin)
+    string (TOUPPER ${plugin} _PLUGIN)
+
+    option (
+	COMPIZ_DISABLE_PLUGIN_${_PLUGIN}
+	"Disable building of plugin \"${plugin}\""
+	OFF
+    )
+
+    if (NOT COMPIZ_DISABLE_PLUGIN_${_PLUGIN})
+	_build_compiz_plugin (${plugin} ${ARGN})
+    endif (NOT COMPIZ_DISABLE_PLUGIN_${_PLUGIN})
+endmacro ()

=== added file 'cmake/FindCompiz.cmake'
--- cmake/FindCompiz.cmake	1970-01-01 00:00:00 +0000
+++ cmake/FindCompiz.cmake	2011-06-15 05:26:31 +0000
@@ -0,0 +1,94 @@
+
+
+
+################################################################################
+#
+# FindCompiz
+#
+# This module finds Compiz (www.compiz.org). It uses the FindPkgConfig to
+# locate Compiz and adds the Compiz CMake module path to the CMake module path.
+# It also loads the CompizDefaults that sets all variables to compile Compiz
+# modules.
+#
+# This module sets the following variables:
+#   COMPIZ_FOUND          ... set to true if compiz and its CompizDefaults macro
+#                             is found
+#
+# Variables set by the FindPkgConfig macro for compiz
+#   COMPIZ_LIBRARY_DIRS   ... the paths of the libraries (w/o the '-L')
+#   COMPIZ_LDFLAGS        ... all required linker flags
+#   COMPIZ_LDFLAGS_OTHER  ... all other linker flags
+#   COMPIZ_INCLUDE_DIRS   ... the '-I' preprocessor flags (w/o the '-I')
+#   COMPIZ_CFLAGS         ... all required cflags
+#   COMPIZ_CFLAGS_OTHER   ... the other compiler flags
+#   COMPIZ_VERSION        ... version of the module
+#   COMPIZ_PREFIX         ... prefix-directory of the module
+#   COMPIZ_INCLUDEDIR     ... include-dir of the module
+#   COMPIZ_LIBDIR         ... lib-dir of the module
+#
+# If the _COMPIZ_INTERNAL variable is set to true, then this module will do
+# nothing. This is required for the Compiz core package build system.
+#
+#  Author: Dennis Kasprzyk <onestone@xxxxxxxxxx>
+#
+################################################################################
+
+if (NOT _COMPIZ_INTERNAL)
+
+    if (Compiz_FIND_REQUIRED)
+	set (_req REQUIRED)
+    endif ()
+
+    # look for pkg-config
+    find_package (PkgConfig ${_req})
+
+    if (PKG_CONFIG_FOUND)
+
+	# do we need to look for a specified version?
+	set (_comp_ver)
+	if (Compiz_FIND_VERSION)
+	    if (Compiz_FIND_VERSION_EXACT)
+		set (_comp_ver "=${Compiz_FIND_VERSION}")
+	    else ()
+		set (_comp_ver ">=${Compiz_FIND_VERSION}")
+	    endif ()
+	endif ()
+
+	# add install prefix to pkgconfig search path if needed
+        string (REGEX REPLACE "([\\+\\(\\)\\^\\\$\\.\\-\\*\\?\\|])" "\\\\\\1" PKGCONFIG_REGEX ${CMAKE_INSTALL_PREFIX})
+	set (PKGCONFIG_REGEX ".*${PKGCONFIG_REGEX}/lib/pkgconfig:${PKGCONFIG_REGEX}/share/pkgconfig.*")
+
+	if (NOT CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+
+	    if (NOT "$ENV{PKG_CONFIG_PATH}" MATCHES "${PKGCONFIG_REGEX}")
+		if ("" STREQUAL "$ENV{PKG_CONFIG_PATH}")
+		    set (ENV{PKG_CONFIG_PATH} "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig:${CMAKE_INSTALL_PREFIX}/share/pkgconfig")
+	    	else ()
+		    set (ENV{PKG_CONFIG_PATH}
+		         "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig:${CMAKE_INSTALL_PREFIX}/share/pkgconfig:$ENV{PKG_CONFIG_PATH}")
+		endif ()
+	    endif ()
+
+	endif (NOT CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+
+	# look for compiz
+	pkg_check_modules (COMPIZ ${_req} "compiz${_comp_ver}")
+
+	# is the CompizDefaults module installed?
+	find_path(_compiz_def_macro CompizDefaults.cmake ${COMPIZ_PREFIX}/share/compiz/cmake)
+
+	if (COMPIZ_FOUND AND _compiz_def_macro)
+            # everything found. Set module path and include defaults module
+	    set (COMPIZ_CMAKE_MODULE_PATH ${COMPIZ_PREFIX}/share/compiz/cmake)
+	    set (CMAKE_MODULE_PATH  ${COMPIZ_CMAKE_MODULE_PATH})
+	    include (CompizDefaults)
+	else ()
+	    set (COMPIZ_FOUND 0)
+	endif ()
+
+        if (Compiz_FIND_REQUIRED AND NOT COMPIZ_FOUND)
+	    message (FATAL_ERROR "Unable to find Compiz ${_comp_ver}")
+	endif ()
+    endif ()
+endif ()
+

=== added file 'cmake/all_plugins_in_folder_example-CMakeLists.txt'
--- cmake/all_plugins_in_folder_example-CMakeLists.txt	1970-01-01 00:00:00 +0000
+++ cmake/all_plugins_in_folder_example-CMakeLists.txt	2011-06-15 05:26:31 +0000
@@ -0,0 +1,10 @@
+find_package (Compiz REQUIRED)
+
+include (CompizCommon)
+include (CompizPackage)
+
+compiz_add_plugins_in_folder ("${CMAKE_SOURCE_DIR}")
+
+compiz_print_configure_header ("Compiz")
+compiz_print_plugin_stats ("${CMAKE_SOURCE_DIR}")
+compiz_print_configure_footer ()
\ No newline at end of file

=== added file 'cmake/base.cmake'
--- cmake/base.cmake	1970-01-01 00:00:00 +0000
+++ cmake/base.cmake	2011-06-15 05:26:31 +0000
@@ -0,0 +1,63 @@
+set (USE_GCONF 1 CACHE BOOL "Install core GConf schemas")
+
+if (USE_GCONF)
+    pkg_check_modules (GCONF gconf-2.0)
+
+    find_program (GCONFTOOL_EXECUTABLE gconftool-2)
+    mark_as_advanced (FORCE GCONFTOOL_EXECUTABLE)
+
+    if (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
+        set (SCHEMADIR "${CMAKE_INSTALL_PREFIX}/share/gconf/schemas")
+    else (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
+        set (SCHEMADIR "${COMPIZ_INSTALL_GCONF_SCHEMA_DIR}")
+    endif (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
+
+    if (NOT GCONF_FOUND OR NOT GCONFTOOL_EXECUTABLE)
+	set (USE_GCONF 0)
+    else ()
+        include (CompizGconf)
+    endif ()
+endif ()
+
+function (_print_configure_results)
+    compiz_print_configure_header ("Compiz")
+    compiz_color_message ("\n${_escape}[4mOptional features:${_escape}[0m\n")
+
+    compiz_print_result_message ("gtk window decorator" USE_GTK)
+    compiz_print_result_message ("metacity theme support" USE_METACITY)
+    compiz_print_result_message ("gconf schemas" USE_GCONF)
+    compiz_print_result_message ("gnome" USE_GNOME)
+    compiz_print_result_message ("kde4 window decorator" USE_KDE4)
+
+    compiz_print_configure_footer ()
+    compiz_print_plugin_stats ("${CMAKE_SOURCE_DIR}/plugins")
+    compiz_print_configure_footer ()
+endfunction ()
+
+function (_check_compiz_cmake_macro)
+    find_file (_find_compiz FindCompiz.cmake PATHS ${CMAKE_ROOT}/Modules ${ARGN})
+    if (NOT _find_compiz)
+        compiz_color_message ("${_escape}[1;31mWARNING:${_escape}[0m")
+        message ("\"FindCompiz.cmake\" file not found in cmake module directories.")
+        message ("It should be installed to allow building of external compiz packages.")
+        message ("Call \"sudo make findcompiz_install\" to install it.\n")
+        compiz_print_configure_footer ()
+    endif ()
+    add_custom_target (findcompiz_install
+	${CMAKE_COMMAND} -E make_directory ${COMPIZ_DESTDIR}${CMAKE_ROOT}/Modules &&
+	${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/cmake/FindCompiz.cmake ${COMPIZ_DESTDIR}${CMAKE_ROOT}/Modules
+    )
+endfunction ()
+
+# add install prefix to pkgconfig search path if needed
+string (REGEX REPLACE "([\\+\\(\\)\\^\\\$\\.\\-\\*\\?\\|])" "\\\\\\1" PKGCONFIG_REGEX ${CMAKE_INSTALL_PREFIX})
+set (PKGCONFIG_REGEX ".*${PKGCONFIG_REGEX}/lib/pkgconfig:${PKGCONFIG_REGEX}/share/pkgconfig.*")
+
+if (NOT "$ENV{PKG_CONFIG_PATH}" MATCHES "${PKGCONFIG_REGEX}")
+    if ("" STREQUAL "$ENV{PKG_CONFIG_PATH}")
+	set (ENV{PKG_CONFIG_PATH} "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig:${CMAKE_INSTALL_PREFIX}/share/pkgconfig")
+    else ()
+	set (ENV{PKG_CONFIG_PATH}
+	    "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig:${CMAKE_INSTALL_PREFIX}/share/pkgconfig:$ENV{PKG_CONFIG_PATH}")
+    endif ()
+endif ()

=== added directory 'cmake/plugin_extensions'
=== added file 'cmake/plugin_extensions/CompizGenGconf.cmake'
--- cmake/plugin_extensions/CompizGenGconf.cmake	1970-01-01 00:00:00 +0000
+++ cmake/plugin_extensions/CompizGenGconf.cmake	2011-06-15 05:26:31 +0000
@@ -0,0 +1,79 @@
+option (
+    COMPIZ_DISABLE_SCHEMAS_INSTALL
+    "Disables gconf schema installation with gconftool"
+    OFF
+)
+
+set (
+    COMPIZ_INSTALL_GCONF_SCHEMA_DIR ${COMPIZ_INSTALL_GCONF_SCHEMA_DIR} CACHE PATH
+    "Installation path of the gconf schema file"
+)
+
+macro (compiz_gconf_prepare_install_dirs)
+    if ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "package")
+	if (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
+            set (PLUGIN_SCHEMADIR "${datadir}/gconf/schemas")
+        else (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
+	    set (PLUGIN_SCHEMADIR "${COMPIZ_INSTALL_GCONF_SCHEMA_DIR}")
+	endif (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
+    elseif ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "compiz" OR
+	    "$ENV{BUILD_GLOBAL}" STREQUAL "true")
+	if (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
+            set (PLUGIN_SCHEMADIR "${COMPIZ_PREFIX}/share/gconf/schemas")
+        else (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
+	    set (PLUGIN_SCHEMADIR "${COMPIZ_INSTALL_GCONF_SCHEMA_DIR}")
+	endif (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
+    else ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "compiz" OR
+	  "$ENV{BUILD_GLOBAL}" STREQUAL "true")
+
+	if (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
+            set (PLUGIN_SCHEMADIR "$ENV{HOME}/.gconf/schemas")
+        else (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
+	    set (PLUGIN_SCHEMADIR "${COMPIZ_INSTALL_GCONF_SCHEMA_DIR}")
+	endif (NOT COMPIZ_INSTALL_GCONF_SCHEMA_DIR)
+
+    endif ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "package")
+endmacro (compiz_gconf_prepare_install_dirs)
+
+function (compiz_install_gconf_schema _src _dst)
+    find_program (GCONFTOOL_EXECUTABLE gconftool-2)
+    mark_as_advanced (FORCE GCONFTOOL_EXECUTABLE)
+
+    if (GCONFTOOL_EXECUTABLE AND NOT COMPIZ_DISABLE_SCHEMAS_INSTALL)
+	install (CODE "
+		if (\"\$ENV{USER}\" STREQUAL \"root\")
+		    exec_program (${GCONFTOOL_EXECUTABLE}
+			ARGS \"--get-default-source\"
+			OUTPUT_VARIABLE ENV{GCONF_CONFIG_SOURCE})
+		    exec_program (${GCONFTOOL_EXECUTABLE}
+			ARGS \"--makefile-install-rule ${_src} > /dev/null\")
+		else (\"\$ENV{USER}\" STREQUAL \"root\")
+		    exec_program (${GCONFTOOL_EXECUTABLE}
+			ARGS \"--install-schema-file=${_src} > /dev/null\")
+		endif (\"\$ENV{USER}\" STREQUAL \"root\")
+		")
+    endif ()
+    install (
+	FILES "${_src}"
+	DESTINATION "${COMPIZ_DESTDIR}${_dst}"
+    )
+endfunction ()
+
+# generate gconf schema
+find_program (XSLTPROC_EXECUTABLE xsltproc)
+mark_as_advanced (FORCE XSLTPROC_EXECUTABLE)
+
+if (XSLTPROC_EXECUTABLE)
+    compiz_gconf_prepare_install_dirs ()
+    add_custom_command (
+	OUTPUT "${CMAKE_BINARY_DIR}/generated/compiz-${COMPIZ_CURRENT_PLUGIN}.schemas"
+	COMMAND ${XSLTPROC_EXECUTABLE}
+		-o "${CMAKE_BINARY_DIR}/generated/compiz-${COMPIZ_CURRENT_PLUGIN}.schemas"
+		${COMPIZ_GCONF_SCHEMAS_XSLT}
+		${COMPIZ_CURRENT_XML_FILE}
+	DEPENDS ${COMPIZ_CURRENT_XML_FILE}
+    )
+
+    compiz_install_gconf_schema ("${CMAKE_BINARY_DIR}/generated/compiz-${COMPIZ_CURRENT_PLUGIN}.schemas" ${PLUGIN_SCHEMADIR})
+    list (APPEND COMPIZ_CURRENT_SOURCES_ADDS ${CMAKE_BINARY_DIR}/generated/compiz-${COMPIZ_CURRENT_PLUGIN}.schemas)
+endif ()

=== added file 'cmake/plugin_extensions/CompizGenInstallData.cmake'
--- cmake/plugin_extensions/CompizGenInstallData.cmake	1970-01-01 00:00:00 +0000
+++ cmake/plugin_extensions/CompizGenInstallData.cmake	2011-06-15 05:26:31 +0000
@@ -0,0 +1,25 @@
+# determinate installation directories
+macro (compiz_data_prepare_dirs)
+    if ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "package")
+	set (PLUGIN_DATADIR   ${datadir}/compiz/${COMPIZ_CURRENT_PLUGIN})
+
+    elseif ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "compiz" OR
+	    "$ENV{BUILD_GLOBAL}" STREQUAL "true")
+	set (PLUGIN_DATADIR   ${COMPIZ_PREFIX}/share/compiz/${COMPIZ_CURRENT_PLUGIN})
+
+    else ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "compiz" OR
+	  "$ENV{BUILD_GLOBAL}" STREQUAL "true")
+	set (PLUGIN_DATADIR   $ENV{HOME}/.compiz-1/${COMPIZ_CURRENT_PLUGIN})
+
+    endif ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "package")
+endmacro (compiz_data_prepare_dirs)
+
+# install plugin data files
+if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/data)
+    compiz_data_prepare_dirs ()
+    install (
+	DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/data
+	DESTINATION ${COMPIZ_DESTDIR}${PLUGIN_DATADIR}
+    )
+    list (APPEND COMPIZ_DEFINITIONS_ADD "-DDATADIR='\"${PLUGIN_DATADIR}\"'")
+endif ()

=== added file 'cmake/plugin_extensions/CompizGenInstallImages.cmake'
--- cmake/plugin_extensions/CompizGenInstallImages.cmake	1970-01-01 00:00:00 +0000
+++ cmake/plugin_extensions/CompizGenInstallImages.cmake	2011-06-15 05:26:31 +0000
@@ -0,0 +1,25 @@
+# determinate installation directories
+macro (compiz_images_prepare_dirs)
+    if ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "package")
+	set (PLUGIN_IMAGEDIR   ${datadir}/compiz/${COMPIZ_CURRENT_PLUGIN})
+
+    elseif ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "compiz" OR
+	    "$ENV{BUILD_GLOBAL}" STREQUAL "true")
+	set (PLUGIN_IMAGEDIR   ${COMPIZ_PREFIX}/share/compiz/${COMPIZ_CURRENT_PLUGIN})
+
+    else ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "compiz" OR
+	  "$ENV{BUILD_GLOBAL}" STREQUAL "true")
+	set (PLUGIN_IMAGEDIR   $ENV{HOME}/.compiz-1/${COMPIZ_CURRENT_PLUGIN})
+
+    endif ("${COMPIZ_PLUGIN_INSTALL_TYPE}" STREQUAL "package")
+endmacro (compiz_images_prepare_dirs)
+
+# install plugin data files
+if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/images)
+    compiz_images_prepare_dirs ()
+    install (
+	DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/images
+	DESTINATION ${COMPIZ_DESTDIR}${PLUGIN_IMAGEDIR}
+    )
+    list (APPEND COMPIZ_DEFINITIONS_ADD "-DIMAGEDIR='\"${PLUGIN_IMAGEDIR}\"'")
+endif ()

=== added file 'compiz.pc.in'
--- compiz.pc.in	1970-01-01 00:00:00 +0000
+++ compiz.pc.in	2011-06-15 05:26:31 +0000
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: compiz
+Description: OpenGL compositing manager
+Version: @VERSION@
+
+Requires: @COMPIZ_REQUIRES@
+Libs:
+Cflags: @COMPIZ_CFLAGS@ -I${includedir}/compiz

=== added file 'config.h.core.in'
--- config.h.core.in	1970-01-01 00:00:00 +0000
+++ config.h.core.in	2011-06-15 05:26:31 +0000
@@ -0,0 +1,5 @@
+#define PACKAGE_STRING "@_compiz_package_string@"
+
+#define PACKAGE "@_compiz_package@"
+
+#define GETTEXT_PACKAGE "@GETTEXT_PACKAGE@"

=== added directory 'debian'
=== renamed directory 'debian' => 'debian.moved'
=== added file 'debian/65compiz_profile-on-session'
--- debian/65compiz_profile-on-session	1970-01-01 00:00:00 +0000
+++ debian/65compiz_profile-on-session	2011-06-15 05:26:31 +0000
@@ -0,0 +1,9 @@
+# This file is sourced by Xsession(5), not executed.
+# Select unity profile if we are in the default session.
+# The default profile is used otherwise.
+
+if [ "x$GDMSESSION" = "xgnome" ]; then
+    COMPIZ_CONFIG_PROFILE="ubuntu"
+    export COMPIZ_CONFIG_PROFILE
+fi
+

=== added file 'debian/changelog'
--- debian/changelog	1970-01-01 00:00:00 +0000
+++ debian/changelog	2011-06-15 05:26:31 +0000
@@ -0,0 +1,1469 @@
+compiz (1:0.9.4+bzr20110606-0ubuntu3) oneiric; urgency=low
+
+  * Separate plugins we install by default from others:
+    - create compiz-plugins-default which is a subpart of what compiz-plugins
+      depended on
+    - compiz-plugins install compiz-plugins-default
+    - compiz, compiz-core, compiz-gnome, compiz-kde now depends on
+      compiz-plugins-default and recommends compiz-plugins-main-default
+    - compiz-dev still depends on compiz-plugins as shipping the compiztoolbox
+      and cube headers
+    - reshuffle the replaces to handle transitions
+  * move /usr/share/compiz/kde.xml wrongly set in compiz-plugins to compiz-kde
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Tue, 07 Jun 2011 14:01:18 +0200
+
+compiz (1:0.9.4+bzr20110606-0ubuntu2) oneiric; urgency=low
+
+  * debian/rules, debian/compiz-gnome.install:
+    - generate g-c-c keybindings from new metacity package
+    - don't generate schema for gconf bindings, not sure we will ship them or
+      should switch to gsettings
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Mon, 06 Jun 2011 17:58:54 +0200
+
+compiz (1:0.9.4+bzr20110606-0ubuntu1) oneiric; urgency=low
+
+  * New bug fix release:
+    - Switcher window borders are not properly unmapped with
+      (unity|gtk)-window-decorator (LP: #789580)
+    - maximized window is displaced (LP: #772612)
+    - Unity launcher gets visible while screensaver is active (LP: #771391)
+    - 1 pixel icons in notification-area-applet when compiz is the windows
+      manager (LP: #767095)
+  * debian/patches/00_bzr_fix_apps_without_startupid.patch:
+    - removed: upstream
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Mon, 06 Jun 2011 16:18:08 +0200
+
+compiz (1:0.9.4+bzr20110415-0ubuntu2) natty; urgency=low
+
+  * debian/patches/00_bzr_fix_apps_without_startupid.patch:
+    - from upstream trunk, fix crash on applications removing _NET_STARTUP_ID
+      (LP: #759363)
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Tue, 19 Apr 2011 11:40:43 +0200
+
+compiz (1:0.9.4+bzr20110415-0ubuntu1) natty; urgency=low
+
+  * New upstream snapshot
+    - Focus problem with Thunderbird (LP: #753951)
+    - Chromium fullscreen + Alt-TAB confuses the launcher (LP: #757434)
+    - compiz hangs randomly several times per day (LP: #740126)
+  * debian/patches/00_*:
+    - removed as part of upstream tarball
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Fri, 15 Apr 2011 17:08:40 +0200
+
+compiz (1:0.9.4+bzr20110411-0ubuntu2) natty; urgency=low
+
+  * 00_bzr_fix_crash_with_some_apps.patch
+    - Fix inkscape/unison and other applications crashes (LP: #758307)
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Thu, 14 Apr 2011 14:37:39 +0200
+
+compiz (1:0.9.4+bzr20110411-0ubuntu1) natty; urgency=low
+
+  * New upstream snapshot, including all 01_bzr* patch:
+    - compiz crashed with SIGSEGV in PluginClassHandler<DecorWindow, CompWindow,
+      0>::get() (LP: #743807)
+    - Animation for Grid Previews is broken (LP: #754088)
+    - Grid plugin: Maximizing a window from left or right edge loses original
+      size (LP: #753051)
+  * add 00_remove_printf.patch: remove debug printf
+  * 02_add_debug_spewer_for_apport.patch:
+    - refreshed
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Mon, 11 Apr 2011 13:25:14 +0200
+
+compiz (1:0.9.4+bzr20110407-0ubuntu2) natty; urgency=low
+
+  * New upstream snapshot:
+    - fix unity-window-decorator crashed with SIGSEGV in event_filter_funct
+      (LP: #711561)
+  * debian/patches/086_new_grid_defaults.patch:
+    - change threshold to 15 on sides and 20 on top to work well with the new
+      animtion
+  * debian/patches/01_bzr_fix_grid_on_multimonitor.patch,
+    01_bzr_fix_resize.patch, 01_bzr_fix_grid_premultiply.patch:
+    - from upstream bzr, fix grid on multimonitor and colors handling
+  * debian/patches/086_new_grid_defaults.patch,
+    debian/patches/029_default_options.patch:
+    - set the resize grid shadow to orange (LP: #752711)
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Thu, 07 Apr 2011 18:06:44 +0200
+
+compiz (1:0.9.4+bzr20110406-0ubuntu1) natty; urgency=low
+
+  * new upstream bzr tarball:
+    - display/size problems with xterm (LP: #748137)
+    - fix crashes on tcl/tk applications (LP: #741074, #747439)
+    - fix grab on compose keys (LP: #747323)
+    - resync stack at regular interval to avoid invisible windows
+      (LP: #723014, #743011, #736876, #740465, #684590)
+    - fix weird order in alt + tab (LP: #175874)
+    - fix crash in gitk (LP: #743011, #741074)
+    - avoid compiz detection by fglrx driver (LP: #740298)
+    - Wrong window moves (LP: #741656, #743634)
+    - Unity Grid is broken for multi-monitor setups (LP: #709221)
+    - Feature Freeze Exception: Animation for Grid Plugin Previews (LP: #744104)
+    - unity-window-decorator crashed with SIGSEGV in gdk_window_get_events()
+      (LP: #725284)
+    - fix xterm (LP: #692463)
+    - start the decorator on a secondary screen (LP: #730495)
+  * debian/patches/090_git_fix_new_invisible_windows.patch,
+    debian/patches/100_bump_core.h.patch:
+    - upstreamed
+  * debian/patches/01_unity_window_decorator.patch
+    debian/patches/085_add_grid_plugin.patch:
+    - in bzr upstream tarball
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Wed, 06 Apr 2011 19:37:45 +0200
+
+compiz (1:0.9.4git20110322-0ubuntu5) natty; urgency=low
+
+  * debian/patches/080_fix_session_handling.patch:
+    reverted, seems to break more people that it fixes it. Not commited to
+    compiz trunk as well
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Thu, 24 Mar 2011 12:03:47 +0100
+
+compiz (1:0.9.4git20110322-0ubuntu4) natty; urgency=low
+
+  * 080_fix_session_handling.patch:
+    - fix respawn on crash (LP: #716462)
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Wed, 23 Mar 2011 23:38:35 +0100
+
+compiz (1:0.9.4git20110322-0ubuntu3) natty; urgency=low
+
+  * 90_git_fix_new_invisible_windows.patch:
+    from git, fix a case with new invisible windows (LP: #741072)
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Wed, 23 Mar 2011 17:36:06 +0100
+
+compiz (1:0.9.4git20110322-0ubuntu2) natty; urgency=low
+
+  * debian/patches/01_unity_window_decorator.patch:
+    - fix frequent crash (LP: #740480)
+  * debian/compiz-decorator:
+    - reset the unity window decorator by default 
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Wed, 23 Mar 2011 08:55:46 +0100
+
+compiz (1:0.9.4git20110322-0ubuntu1) natty; urgency=low
+
+  * New upstream bug fix snapshot:
+    - Application windows can sometimes fail to display and will
+      mask regions of the screen (LP: #709461)
+    - Compiz switcher Alt-Tab order is not predictable - should
+      maintain LIFO ordering in application switcher (LP: #175874)
+    - after compiz crashed, gnome-panel isn't mapped again (LP: #711378)
+    - invisible windows border problem (LP: #710271)
+    - Compiz thinks you are clicking in an edge window when you
+      are not (LP: #734250)
+    - Add test case for invisible window regressions (LP: #736876)
+    - often can't alt-click-dnd to move the focussed dialog (LP: #711911)
+    - When windows open for the first time they should not hide (LP: #723878)
+    - Unity Grid is broken for multi-monitor setups (LP: #709221)
+    - Pixmaps trashed during animations when window is unmapped (LP: #733331)
+    - Windows have blank decorations when rapidly closing and
+      reopening (LP: #733328)
+    - Unity is not restored on unity/compiz crash: compiz doesn't register
+      properly with gnome-session (LP: #716462)
+  * remove the patch taken from upstream
+  * refresh u-w-d patch with latest upstream work
+  * debian/compiz-core.install:
+    - image move to the final destination
+  * debian/patches/100_bump_core.h.patch:
+    - bump for ABI breakage
+  * debian/compiz-decorator:
+    - use gtk-window-decorator and not unity-window-decorator as it's really
+      crashy for now (will probably redo an upload tomorrow with a fixed
+      decorator)
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Tue, 22 Mar 2011 21:45:34 +0100
+
+compiz (1:0.9.4-0ubuntu7) natty; urgency=low
+
+  * debian/control:
+    - breaks on old simple-ccsm until a new one for 0.9 is available
+  * debian/patches/029_default_options.patch: 
+    - don't enable showing desktop while scale is triggered (LP: #736947)
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Thu, 17 Mar 2011 17:13:32 +0100
+
+compiz (1:0.9.4-0ubuntu5) natty; urgency=low
+
+  * debian/patches/029_default_options.patch: (LP: #723273)
+    - remove Super W change for the "Initiate Window Picker for current
+       workspace". The default is now compiz default: Shift + Alt + Up
+    - transforming the Super A change to Super W for "Initiate Window Picker
+      For All Windows"
+  * debian/compiz-gnome.gconf-defaults:
+    - disable Alt + F1/F2 in the gnome-compat plugin for the unity profile only
+      (those keys are handled by unity itself now)
+  * debian/source_compiz.py:
+    - add xorg info in case of crash
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Wed, 16 Mar 2011 19:28:01 +0100
+
+compiz (1:0.9.4-0ubuntu4) natty; urgency=low
+
+  * Fix crashes in unity-window-decorator
+    (LP: #724874, #728563, #728383)
+  * Fix grid plugin not working with snap (LP: #716313)
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Mon, 07 Mar 2011 16:31:04 +0100
+
+compiz (1:0.9.4-0ubuntu3) natty; urgency=low
+
+  * debian/rules:
+    - don't run unitymtgrabhandles and unityshell by default
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Tue, 01 Mar 2011 13:31:32 +0100
+
+compiz (1:0.9.4-0ubuntu2) natty; urgency=low
+
+  * Force libdecoration0 to have the same version than compiz-plugins
+  * debian/patches/01_unity_window_decorator.patch
+    - fix a crash in unity-window-decorator (LP: #726063, #725284, #726101)
+  * Backport some patches from upstream to fix other crashes and bring
+    support to the unity plugin (LP: #726702)
+  * debian/compiz-core.install:
+    png are now installed in /usr/share/compiz
+  * add the future unity mt plugin by default
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Mon, 28 Feb 2011 20:51:00 +0100
+
+compiz (1:0.9.4-0ubuntu1) natty; urgency=low
+
+  * New upstream release:
+    - Fix no windows receiving the focus if someone got the focus then was
+      destroyed
+    - Fix crash when resizing using keybindings
+    - Fix unresponsive inactive decorations (LP: #703755) 
+    - Fix the long awaited gconf crash (LP: #691561)
+    - gtk-window-decorator doesn't respect special decoration styles
+      (LP: #290835)
+  * debian/compiz-core.links,
+    debian/source_compiz.py,
+    debian/compiz-core.install:
+    - install again a richer apport hook to redirect nux/libunity/unityshell
+      crash. It also asks the user to redirect unity issues against unity (still
+      incuding xorg info when needed)
+  * Removed a bunch of patches either cherry-picked or pushed upstream. With the
+    other fixes, the gconf workaround is hopefully not needed anymore.
+  * refresh existing patches to still apply
+  * debian/control:
+    - rename dep on compiz-fusion* to compiz*
+  * debian/patches/085_add_grid_plugin.patch:
+    - refresh the grid plugin from new release
+  * debian/patches/086_new_grid_defaults.patch
+    - separate tweaking the default settings to only have the effect that were
+      specified:
+      top -> maximize, left (top or bottom left) -> window half left of the
+      screen, right (top or bottom right) -> window half right of the screen,
+      bottom -> do nothing
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Thu, 24 Feb 2011 17:31:29 +0100
+
+compiz (1:0.9.2.1+glibmainloop4-0ubuntu11) natty; urgency=low
+
+  * debian/patches/18_really_fix_stacking_issues.patch:
+    - hopefully, this time, the invisible window is dead (LP: #709461)
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Fri, 11 Feb 2011 13:00:01 +0100
+
+compiz (1:0.9.2.1+glibmainloop4-0ubuntu10) natty; urgency=low
+
+  * debian/patches/080_migrate_gconf_from_alpha1.patch
+    debian/reset-compiz-gconf, debian/compiz-gnome.install:
+    - remove the additional python wrapper now that people who installed
+      alpha1 are considerated to be transitionned to the new schema.
+  * debian/patches/17_fix_stacking_issue.patch:
+    - backport from upstream. This seems to fix the random invisible window
+      (LP: #709461)
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Tue, 08 Feb 2011 10:31:06 +0100
+
+compiz (1:0.9.2.1+glibmainloop4-0ubuntu9) natty; urgency=low
+
+  * debian/patches/086_fix_unreachable_options_crash.patch:
+    getOptions is broken at start as some initialized options aren't map when
+    calling from the core. Use direct call instead (LP: #708812).
+    Fixes crashes at start.
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Wed, 02 Feb 2011 15:17:02 +0100
+
+compiz (1:0.9.2.1+glibmainloop4-0ubuntu8) natty; urgency=low
+
+  * debian/patches/14_fix_empathy_list_vanish.patch:
+    - fix the buddy list disappearing (LP: #682781)
+  * debian/patchs/15_hidden_maximized_decoration.patch:
+    - fix sometimes invisible decoration on maximized window still decorated
+  * 16_display_unfocused_state.patch:
+    - fix unfocused state not being displayed properly in the decoration
+      (LP: #704413)
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Mon, 31 Jan 2011 15:50:17 +0100
+
+compiz (1:0.9.2.1+glibmainloop4-0ubuntu7) natty; urgency=low
+
+  * debian/patches/000_workaround_gconfbackend_init_hang.patch:
+    - readd the workaround. Seems that slow machines really have a problem with
+      the new init order
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Fri, 28 Jan 2011 19:07:35 +0100
+
+compiz (1:0.9.2.1+glibmainloop4-0ubuntu6) natty; urgency=low
+
+  * debian/control:
+    - compiz-gnome replaces compiz-fusion-plugins-extra (grid gconf schema file
+      is hosted there) (LP: #708835)
+  * debian/patches/029_default_options.patch:
+    - set the spacing to 68 temporary as a workaround to avoid the spread mode
+      to overlap the launcher (LP: #702822)
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Fri, 28 Jan 2011 15:46:20 +0100
+
+compiz (1:0.9.2.1+glibmainloop4-0ubuntu5) natty; urgency=low
+
+  * debian/patches/000_workaround_gconfbackend_init_hang.patch:
+    - remove the workaround (commented in debian/patches/series). It seems to
+      work for others without it, I still have it hanging there, but maybe
+      that's a system issue, let's see if people reports hangs at start.
+  * debian/patches/060_move_checks_to_compiz.patch:
+    - adapt to new version
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Thu, 27 Jan 2011 17:42:04 +0100
+
+compiz (1:0.9.2.1+glibmainloop4-0ubuntu4) natty; urgency=low
+
+  * debian/patches/000_fix_stacking.patch:
+    - so awaited patch to fix menu stacking issue
+      (LP: #693073, #695638, #690461) (congrats smspillaz)
+  * debian/patches/065_add_bailer_and_detection_plugins.patch:
+    - remove zenity message, now handled in the session level
+  * debian/patches/029_default_options.patch:
+    - set back to opacity to 100 when dragging windows, seems to have a lot of
+      perf issues on some graphic card. (LP: #703458)
+  * debian/patches/03_git_fix_maprequest.patch
+    debian/patches/04_git_fix_override_redirect_window.patch
+    debian/patches/06_git_fix_unmapped_then_remapped_window.patch
+    debian/patches/07_git_fix_click_to_focus_issue.patch
+    debian/patches/08_make_qt_wine_appearing.patch
+    debian/patches/09_git_valgrind_cleanage.patch
+    debian/patches/10_git_set_vp_before_window_initialization.patch:
+    - misc fixes backported from upstream git head. Fixing flash and gnome-panel
+      crash (LP: #683100, #690461)
+  * debian/patches/000_workaround_gconfbackend_init_hang.patch:
+    - adapt to new version
+  * debian/patches/029_default_options.patch:
+    - disable ligthning by default on the opengl plugin as it's not really used
+      and conflict with unity (LP: #703140)
+  * debian/patches/11_git_fix_windows_jumping.patch
+    debian/patches/12_fix_warning.patch
+    debian/patches/13_fix_window_geometries_and_properties.patch:
+    - last minute fix due to regression introduced by the patch above, fix wrong
+      geometry and wrong startup position (LP: #707853, #707852)
+  * debian/patches/085_add_grid_plugin.patch,
+    debian/rules, debian/control, debian/unity.ini,
+    debian/compiz-gnome.gconf-defaults
+    - add to main (as upstream is doing in the git repository) the grid plugin
+      and activate it by default. Replaces the -extra package with a previous
+      version
+    - tweak the default settings to only have the effect that were specified:
+      top -> maximize, left (top or bottom left) -> window half left of the
+      screen, right (top or bottom right) -> window half right of the screen
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Thu, 27 Jan 2011 13:05:18 +0100
+
+compiz (1:0.9.2.1+glibmainloop4-0ubuntu3) natty; urgency=low
+
+  * debian/patches/01_unity_window_decorator.patch:
+    - dont dep on system libdecoration but on built one
+  * debian/control:
+    - remove circular build-dep on libdecoration0-dev
+    - build against new libmetacity ABI
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Wed, 19 Jan 2011 17:52:09 +0100
+
+compiz (1:0.9.2.1+glibmainloop4-0ubuntu2) natty; urgency=low
+
+  * debian/control:
+    - temporary depends on libdecoration0-dev as the unity-window-decorator
+      needs it. The correct fix will need to shuffle the order of build around
+      and take the current library.
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Fri, 14 Jan 2011 03:17:38 +0100
+
+compiz (1:0.9.2.1+glibmainloop4-0ubuntu1) natty; urgency=low
+
+  [ Didier Roche ]
+  * New upstream release:
+    - Fixed a high number of wakeups (LP: #681696)
+    - Fixed links not working in some gtk windows
+    - Raise the window when it is moved if raise on click is enabled
+    - Fix crash when loading plugins on the command line
+    - Fix focus issues on window close and reopen rapidly
+    - Fix focus issues with multiple X screens
+    - Glib plugin removed
+    - Fix bug where not moving the mouse and clicking button 2 or 3 in
+      scale addon would close the current active window, not the window the
+      mouse hovers over
+    - Add unity-window-decorator
+    - Move window doesn't raise window (LP: #695570)
+    - gtk.Label <a href> link-activate signal broken with compiz in natty
+      (LP: #687732)
+  * debian/patches/060_move_checks_to_compiz.patch:
+    - remove GNOME failsafe detection as now handled as a session type in
+      gnome-session
+  * Remove deprecated or now merge upstream patches:
+    - 01_backport_trunk_fix.patch
+    - 002_ship_splited_gconf_cmakeext_files.patch
+    - 004_packagemode_is_release_debug_for_plugins.patch
+    - 005_no_glib_plugin.patch
+    - 017_always_unredirect_screensaver_on_nvidia.patch
+    - 080_migrate_gconf_from_alpha1.patch
+  * debian/compiz-gnome.gconf-defaults,
+    debian/patches/029_default_options.patch:
+    - new settings for natty. Also set the 2x2 layout by default
+  * unity-decorator:
+    - debian/compiz-decorator:
+      launch unity-compiz-decorator in gnome sessions
+    - debian/compiz-gnome.install:
+      install it
+    - debian/control:
+      depends on latest metacity having the right extension
+    - debian/patches/01_unity_window_decorator.patch:
+      add unity-window-decorator
+  * debian/patches/02_add_debug_spewer_for_apport.patch:
+    - new plugin (not activated for now) to get additional info for apport
+
+  [ Bryce Harrington ]
+  * compiz-core.install, compiz-core.links, source_compiz.py:
+    Replace the compiz apport hook with a link to xorg's apport script.
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Thu, 13 Jan 2011 21:50:27 +0100
+
+compiz (1:0.9.2.1+glibmainloop3-0ubuntu5) natty; urgency=low
+
+  * Restore the workaround to avoid crashes (lp: #691561)
+
+ -- Sebastien Bacher <seb128@xxxxxxxxxx>  Fri, 17 Dec 2010 21:08:43 +0100
+
+compiz (1:0.9.2.1+glibmainloop3-0ubuntu4) natty; urgency=low
+
+  * debian/patches/000_workaround_gconfbackend_init_hang.patch:
+    - drop the workaround, the issue has not been confirmed but the update
+      broke the menus in unity (lp: #690461)
+  * debian/patches/060_move_checks_to_compiz.patch:
+    - adapted regarding previous patch
+
+ -- Sebastien Bacher <seb128@xxxxxxxxxx>  Thu, 16 Dec 2010 22:19:50 +0100
+
+compiz (1:0.9.2.1+glibmainloop3-0ubuntu3) natty; urgency=low
+
+  * debian/patches/080_migrate_gconf_from_alpha1.patch,
+  debian/reset-compiz-gconf,
+  debian/compiz-gnome.install:
+  - temporary wrapper from new gconf path not transitionned from alpha1
+    (allscreens became screen0). This will reset the current compiz profiles
+    (LP: #690011)
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Tue, 14 Dec 2010 19:25:03 +0100
+
+compiz (1:0.9.2.1+glibmainloop3-0ubuntu2) natty; urgency=low
+
+  * debian/patches/000_workaround_gconfbackend_init_hang.patch:
+    - workaround in delaying the plugin init as the gconf backend hangs when
+      trying to contact/launch the gconf daemon. This only happens when you
+      don't change your current profile, at session start.
+  * debian/patches/060_move_checks_to_compiz.patch:
+    - adapted regarding previous patch
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Tue, 14 Dec 2010 02:57:50 +0100
+
+compiz (1:0.9.2.1+glibmainloop3-0ubuntu1) natty; urgency=low
+
+  * new glibmainloop branch snapshot:
+    - fix launching an application set it to the wrong place (LP: #683273)
+    - Can't resize windows to be displayed on several monitors (LP: #455378)
+    - Scale All Windows gets its suffixes wrong for a 3x3 layout (LP: #683063)
+    - Compiz sometimes loses focus when closing some windows (LP: #671459)
+    - Fix hanging when session exit (LP: #683121)
+  * debian/patches/000_fix_OOo_crash1.patch
+    debian/patches/000_fix_OOo_crash2.patch
+    debian/patches/001_fix_gconf_path.patch
+    debian/patches/003_more_gconf_parser_fix.patch:
+   - remove, upstreamed.
+  * debian/patches/060_move_checks_to_compiz.patch:
+    - adapt to new version
+  * debian/patches/01_backport_trunk_fix.patch:
+    - backport some additional fixes from trunk, otherwise compiz crash at start
+  * debian/source_compiz.py:
+    - fix gconf path
+  * debian/compiz-gnome.gconf-defaults, debian/rules, debian/unity.ini,
+    debian/patches/030_no_fade_in_staticswicher.patch:
+    - change order to load fade before staticswichter to avoid the fade effect
+      when alt + tabbing (LP: #683635)
+    - add snap and workarounds by default as well
+  * debian/compiz-gnome.gconf-defaults,
+    debian/compiz-keybindings.sed,
+    debian/patches/021_hide_tooltip_on_decorator.patch,
+    debian/patches/057_update_gnome_bindings.patch:
+    - update the gconf path from allscreens to screen0 as new gconf path in the
+      gconf backend
+  * debian/control:
+    - handle the ABI breakage with other compiz components
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Mon, 13 Dec 2010 16:38:10 +0100
+
+compiz (1:0.9.2.1+glibmainloop2-0ubuntu4) natty; urgency=low
+
+  * debian/patches/065_add_bailer_and_detection_plugins.patch:
+    - fix the fallback not launching gnome-panel when no 3D support
+      (LP: #683356, #683531)
+  * debian/patches/000_fix_OOo_crash{1,2].patch:
+    - cherry-pick fix crashes with random applications (LP: #675506)
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Wed, 01 Dec 2010 13:10:41 +0100
+
+compiz (1:0.9.2.1+glibmainloop2-0ubuntu3) natty; urgency=low
+
+  * debian/rules:
+    - use our own keybindings with new Compiz wm_name
+      (note, upstream one faily try to install them ignoring DESTDIR, keep in
+       mind when fixed to keep ours)
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Mon, 29 Nov 2010 19:37:41 +0100
+
+compiz (1:0.9.2.1+glibmainloop2-0ubuntu2) natty; urgency=low
+
+  * debian/rules:
+    - build with RelWithDebInfo cmake flag to get debug info and release
+      optimisation
+  * debian/patches/004_packagemode_is_release_debug_for_plugins.patch:
+    - when compiz plugin built in "Package" mode, add optimization + debug
+      symbols for stripping in dbgsym. Thanks RAOF for pointing at it
+      (LP: #682574)
+  * debian/patches/005_no_glib_plugin.patch:
+    - remove glib plugin as conflicting with the glibmainloop branch
+  * debian/source_compiz.py:
+    - grab new gconf path in apport bug report
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Mon, 29 Nov 2010 12:23:15 +0100
+
+compiz (1:0.9.2.1+glibmainloop2-0ubuntu1) natty; urgency=low
+
+  * new upstream snapshot with glibmm experimental branch:
+    - Compiz crashes when scrolling in Openoffice (LP: #675506)
+    - Compiz sometimes loses focus when closing some windows (LP: #671459)
+    - Fix --replace hang (LP: #680165)
+  * debian/65compiz_profile-on-session:
+    - add unity profile to default session
+  * debian/rules:
+    - add bailer, detection, regex and animation and fade plugin to both
+      profiles
+    - get an optimized plugin default order
+  * debian/patches/060_move_checks_to_compiz.patch:
+    - start stripping it down as now we have a detection and bailer plugins
+      for that. The failsafe session should be moved in the detection plugin.
+  * debian/patches/055_fix_COMPIZ_DEFAULT_PLUGINS.patch,
+    debian/patches/056_Preserve-DESTDIR-if-no-override-in-COMPIZ_DESTDIR.patch
+    debian/patches/057_update_gnome_bindings.patch:
+    - removed, upstreamed
+  * debian/patches/065_add_bailer_and_detection_plugins.patch:
+    - add bailer and detection plugins to fallback to 2D session or run in
+      degraded mode.
+  * debian/compiz-gnome.install, debian/unity.ini,
+    debian/compiz-gnome.gconf-defaults:
+    - add the unity profile to ini and gconf backend
+  * debian/patches/001_fix_gconf_path.patch:
+    - fix the path when generating the gconf keys (compiz-1)
+  * debian/patches/002_ship_splited_gconf_cmakeext_files.patch:
+    - ship and link the splited gconf extension schema builder
+  * debian/control:
+    - add libglibmm-2.4-dev build-dep and to -dev dep
+  * debian/patches/003_more_gconf_parser_fix.patch:
+    - fix parser breakage with some plugins
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Fri, 26 Nov 2010 20:30:56 +0100
+
+compiz (1:0.9.2.1+glibmainloop-0ubuntu3) natty; urgency=low
+
+  * debian/rules:
+    - add gnomecompat as a default plugin (LP: #675774)
+    - add vpswitch too
+  * debian/libdecoration0.symbols:
+    - add a symbol file
+  * debian/patches/057_update_gnome_bindings.patch:
+    - update wmname to get the keybindings shown in GNOME capplet
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Thu, 18 Nov 2010 14:35:04 +0100
+
+compiz (1:0.9.2.1+glibmainloop-0ubuntu2) natty; urgency=low
+
+  * debian/patches/065_glib_mainloop.patch:
+    - removed as part of make dist
+  * debian/control:
+    - make compiz-dev dep on libglib2.0-dev
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Thu, 11 Nov 2010 21:52:26 +0100
+
+compiz (1:0.9.2.1+glibmainloop-0ubuntu1) natty; urgency=low
+
+  * New upstream snapshot with glib mainloop support needed for unity compiz
+  * debian/rules:
+    - use the ezoom plugin rather than the zoom one
+  * debian/patches/055_fix_COMPIZ_DEFAULT_PLUGINS.patch,
+    debian/patches/056_Preserve-DESTDIR-if-no-override-in-COMPIZ_DESTDIR.patch:
+    - refresh to new upstream snapshot
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Thu, 11 Nov 2010 18:20:59 +0100
+
+compiz (1:0.9.2.1-0ubuntu2) natty; urgency=low
+
+  * debian/control:
+    - add missing replaces with latest natty version
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Wed, 10 Nov 2010 10:40:29 +0100
+
+compiz (1:0.9.2.1-0ubuntu1) natty; urgency=low
+
+  [ Travis Watkins ]
+  * debian/patches/010-disable-child-window-clipping.patch,
+    debian/patches/013-add-cursor-theme-support.patch,
+    debian/patches/016_call_glxwaitx_before_drawing.patch,
+    debian/patches/035_ignore_workspaces,
+    debian/patches/037_fullscreen_stacking_fixes.patch,
+    debian/patches/061_KWD_stubs.patch,
+    debian/patches/090_profiling,
+    - removed as they are applied upstream or obsolete
+  * debian/patches/017_always_unredirect_screensaver_on_nvidia.patch
+    debian/patches/018_use_metacity_settings.patch
+    debian/patches/021_hide_tooltip_on_decorator.patch
+    debian/patches/029_default_options
+    debian/patches/060_move_checks_to_compiz.patch
+    - updated for 0.9 and added DEP-3 comments
+  * comment debian/patches/014_fix-no-border-window-shadow.patch
+  * debian/kde4-window-decorator.1:
+    - renamed kde-window-decorator.1 with name fixups
+  * debian/compiz-decorator.1,
+    debian/compiz-core.manpages:
+    - add compiz-decorator manpage
+  * debian/compiz.1,
+    debian/kde4-window-decorator.1:
+    - refreshed
+  * debian/compiz-decorator:
+    - remove support for kde-window-decorator as it no longer exists
+  * debian/compiz-gnome.gconf-defaults:
+    - strip down to just gtk-window-decorator defaults, we set the rest in
+      other places already
+  * debian/rules:
+    - switch to debhelper 7 style rules, much easier to understand
+  * debian/control:
+    - add cmake and boost build-depends, remove automake
+
+  [ Didier Roche ]
+  * new upstream release
+  * remerge and adapt travis' work to latest release in natty
+  * debian/patches/029_default_options.patch:
+    - retake latest patch and refresh to new version
+  * debian/patches/060_move_checks_to_compiz.patch:
+    - remove all plugins and not use the DEFAULT plugin list (just load cpp)
+  * debian/compiz-gnome.gconf-defaults:
+    - keep some needed value. With gsetting port, we should only push default,
+      don't be evil and avoid patching the schema
+  * debian/control:
+     - bump all dep to 0.9 for compiz components
+     - add libboost-serialization1.42-dev build-dep
+     - add some sanity check as well (lintian warnings)
+     - additional dependency on compiz-plugins from compiz-dev
+  * debian/patches/015_optional-fbo.patch:
+    - removed as the new version doesn't seem to handle that natively
+  * debian/patches/014-fix-gtk-window-decorator-no-argb-crash.patch:
+    - removed as seems to be upstreamed
+  * debian/patches/015_draw_dock_shadows_on_desktop.patch:
+    - removed from now, let's revert to upstream behavior
+  * debian/patches/020_disable_gdk_gtk_disable_deprecated:
+    - removed, upstream
+  * disable debian/patches/021_hide_tooltip_on_decorator.patch for now
+  * debian/compiz-core.install,debian/compiz-dev.install,
+    debian/compiz-gnome.install:
+    - changed the path according to new upstream layout and remove some
+      libraries and re-ad /usr/share/gnome/wm-properties/compiz.desktop to
+      make the gnome-window-properties work again (LP: #269805)
+    - compiz-gnome install gconf schemas, not compiz-plugins
+    - also some cleanage to make things easier to read
+  * debian/compiz-kde.manpages:
+    - adapt to kde4 new manpage
+  * convert to quilt format
+  * remove debian/patches/562027-fix-gconf-ftbfs.patch,
+     debian/patches/635258-fix-pixmap-size-calculations.patch,
+     debian/patches/111_link-kde-window-decorator-with-x11:
+    - not relevant in the context
+  * debian/compiz-kde.install, debian/compiz-plugins.install:
+    - put likde in compiz-kde package
+  * debian/rules:
+    - a lot of cleanage, try to make the rule easy to read
+    - force to build in release mode
+    - compile the default plugins list
+    - force copying to cmake install dir. Don't use findcompiz_install which is
+      broken upstream when using DESTDIR and COMPIZ_DESTDIR
+    - add some switch to ensure we build in package mode not in debug one
+  * add debian/patches/055_fix_COMPIZ_DEFAULT_PLUGINS.patch:
+    - use COMPIZ_DEFAULT_PLUGINS from debian/rules
+  * debian/patches/056_Preserve-DESTDIR-if-no-override-in-COMPIZ_DESTDIR.patch:
+    - make compiz respect env variable
+  * debian/patches/065_glib_mainloop.patch:
+    - added but not activated yet: need some work with tip of compiz 0.9.2.1
+
+ -- Didier Roche <didrocks@xxxxxxxxxx>  Tue, 19 Oct 2010 12:23:51 +0200
+
+compiz (1:0.8.6-0ubuntu12) natty; urgency=low
+
+  * Merge patch 110_link-gtk-windows-decorator-with-xcursor into
+    013-add-cursor-theme-support as that's where the bug was introduced.
+  * Remove bogus dh_install -pcompiz-wrapper call in rules leaving a
+    debhelper.log over; presumably left over from the removal of this package.
+
+ -- Loïc Minier <loic.minier@xxxxxxxxxx>  Mon, 18 Oct 2010 00:13:28 +0200
+
+compiz (1:0.8.6-0ubuntu11) natty; urgency=low
+
+  * New patch, 110_link-gtk-windows-decorator-with-xcursor, fix configure.ac
+    to require the xcursor pkg-config file/libs etc. for gtk/window-decorator
+    which calls XcursorSetTheme(); fixes FTBFS.
+  * New patch, 111_link-kde-window-decorator-with-x11, fix configure.ac to
+    require the x11 pkg-config file/libs etc. for kde/window-decorator which
+    calls XGetWMProtocols(); fixes FTBFS.
+
+ -- Loïc Minier <loic.minier@xxxxxxxxxx>  Sun, 17 Oct 2010 23:19:57 +0200
+
+compiz (1:0.8.6-0ubuntu10) natty; urgency=low
+
+  * New patch, 635258-fix-pixmap-size-calculations, from commit
+    0f95c41a0aa175ddf7947ba18b01f746c95594a9 in the 0.8 branch; thanks
+    Paul Donohue; LP: #635258.
+
+ -- Loïc Minier <loic.minier@xxxxxxxxxx>  Sun, 17 Oct 2010 22:02:58 +0200
+
+compiz (1:0.8.6-0ubuntu9) maverick; urgency=low
+
+  * debian/compiz-gnome.gconf-defaults: /apps/gwd/metacity_theme_opacity
+    is a float (1.0), not int (1).
+
+ -- Anders Kaseorg <andersk@xxxxxxx>  Fri, 24 Sep 2010 21:09:32 -0400
+
+compiz (1:0.8.6-0ubuntu8) maverick; urgency=low
+
+  * debian/compiz-gnome.gconf-defaults
+    - move the shadow 4 pixels down, in order to reduce the shadow between 
+      menubaritems and the menu frame (LP: #634417)
+
+  * debian/patches/029_default_options.patch
+    - get rid of the transparency on the unfocused window frame. (LP: #634417)
+
+ -- Ken VanDine <ken.vandine@xxxxxxxxxxxxx>  Tue, 21 Sep 2010 16:59:27 -0400
+
+compiz (1:0.8.6-0ubuntu7) maverick; urgency=low
+
+  * 060_move_checks_to_compiz.patch: Remove Sandybridge bridge devices from
+    the blacklist, they were preventing compiz from loading on machines
+    with discreet GPU's as well. (LP: #644372)
+
+ -- Robert Hooker <robert.hooker@xxxxxxxxxxxxx>  Tue, 21 Sep 2010 09:46:36 -0400
+
+compiz (1:0.8.6-0ubuntu6) maverick; urgency=low
+
+  * Update 060_move_checks_to_compiz.patch to add Intel Sandybridge pci id's
+    to the blacklist, the mesa dri driver claims it instead of swrast so 
+    compiz tries to use it but does not work currently. (LP: #633376)
+
+ -- Robert Hooker <robert.hooker@xxxxxxxxxxxxx>  Wed, 08 Sep 2010 13:10:11 -0400
+
+compiz (1:0.8.6-0ubuntu5) maverick; urgency=low
+
+  * Fix LP: #622195 - dh_install can't rename files. In trying to do so,
+    compiz-wm.desktop is installed one folder too deep, breaking
+    gnome-{appearance,window}-properties
+    - update debian/compiz-gnome.install
+
+ -- Chris Coulson <chris.coulson@xxxxxxxxxxxxx>  Thu, 26 Aug 2010 21:33:53 +0100
+
+compiz (1:0.8.6-0ubuntu4) maverick; urgency=low
+
+  * debian/control: Argh, also reduce the libcompizconfig0 dependency to the
+    version that actually rebuilt against 0.8.6.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 03 Aug 2010 10:40:30 +0200
+
+compiz (1:0.8.6-0ubuntu3) maverick; urgency=low
+
+  * debian/control: Reduce libcompizconfig0 breaks to << the version that
+    actually rebuilt against 0.8.6.
+
+ -- Martin Pitt <martin.pitt@xxxxxxxxxx>  Tue, 03 Aug 2010 00:13:46 +0200
+
+compiz (1:0.8.6-0ubuntu2) maverick; urgency=low
+
+  * control: Don't build-depends on libdbus-qt-1-dev, it's deprecated
+
+ -- Sebastien Bacher <seb128@xxxxxxxxxx>  Mon, 02 Aug 2010 17:49:08 +0200
+
+compiz (1:0.8.6-0ubuntu1) maverick; urgency=low
+
+  * New upstream release:
+    - Maintenance release.
+    - Various focus and window placement fixes.
+    - Fixed handling of windows that have a (server-drawn) border.
+    - Fixed handling of window icons that have a colour depth of 1 bit.
+    - Added KDE 4.4 support to KDE4 window decorator.
+  * debian/control:
+    - Build-depend on libx11-dev, libxext-dev
+  * debian/patches/020_fix_focus.patch:
+  * debian/patches/030_from_git_crash_fix_multiscreen.patch:
+  * debian/patches/031_from_git_fix_gnome_keybindings.patch:
+  * debian/patches/070_remove_deprecated_gtk_symbol.patch:
+    - Applied upstream
+
+ -- Robert Ancell <robert.ancell@xxxxxxxxxxxxx>  Tue, 27 Jul 2010 17:23:05 +0200
+
+compiz (1:0.8.4-4ubuntu1) maverick; urgency=low
+
+  * Merge with Debian unstable, remaining Ubuntu changes:
+  * debian/control:
+    - Build-depend on cdbs for strip-schemas
+    - Add version on libmetacity-dev build-depend
+    - Add KDE build-depends
+    - Add metacity-common build-depends (for getting keybindings)
+    - Add gnome-control-center-dev build-depends (may not be required)
+    - Add libx11-xcb-dev build-depend
+    - Add Vcs-Bzr link
+    - compiz provides x-window-manager
+    - compiz-core does not provide mesa-utils
+    - compiz-core breaks old version of compiz-fusion-plugins-main and
+      compiz-fusion-plugins-extra
+    - compiz-core replaces old compiz-wrapper
+    - compiz-dev depends on libx11-xcb-dev
+    - compiz-gnome and compiz-kde depend on compiz-plugins and their backends
+  * debian/rules:
+    - Compile a subset of the plugins
+    - Do not build the kconfig plugin (in favior of libcompizconfig)
+    - Build with --enable-gconf
+    - Build translations/language packs
+    - Install compiz-decorator wrapper
+    - Install apport hook
+    - Copy keybindings from metacity
+    - Exclude some files from compiz-plugins
+  * debian/compiz-core.install:
+    - Don't install plugin files
+    - Install apport hooks
+  * debian/compiz-decorator:
+    - Script to run the appropriate decorator for the current session
+  * debian/compiz-dev.install:
+    - Install XSLT file
+  * debian/compiz-gtk.*:
+    - Not required, merged into compiz-gnome
+  * debian/compiz-gnome.gconf-defaults:
+    - Set Ubuntu defaults
+  * debian/compiz-gnome.install:
+    - Rename wm-properties desktop file, don't know why
+    - Install gnome-control-center keybindings files
+    - Add files from compiz-gtk
+  * debian/compiz-gnome.manpages:
+    - Add files from compiz-gtk
+  * debian/compiz-keybindings.sed:
+    - Script to add keybindings
+  * debian/compiz-plugins.install:
+    - Install XML files for the plugins
+  * debian/source_compiz.py:
+    - Apport hook
+  * debian/patches/012_snap-by-default.patch:
+    - Not enabled, not sure if we want this in Ubuntu
+  * debian/patches/021_hide_tooltip_on_decorator.patch:
+    - Make decorator tooltips optional
+  * debian/patches/029_default_options.patch:
+    - Updated with additional changes over Debian
+  * debian/patches/090_profiling.patch:
+    - Timing profiling patch (disabled)
+  * debian/watch:
+    - Update download location
+
+ -- Robert Ancell <robert.ancell@xxxxxxxxxxxxx>  Thu, 17 Jun 2010 10:12:18 +1000
+
+compiz (0.8.4-4) unstable; urgency=low
+
+  * Drop libdbus-qt-1-dev from Build-Depends, as kindly requested by
+    Michael Biebl (Closes: #581788). Qt3 is going away, we already use
+    --disable-kde and --enable-kde4 to that effect, so libdbus-qt-1-dev
+    can be kicked away.
+  * Add libglu1-mesa-dev, needed for <GL/glu.h>.
+
+ -- Cyril Brulebois <kibi@xxxxxxxxxx>  Sun, 16 May 2010 20:44:51 +0200
+
+compiz (0.8.4-3) unstable; urgency=high
+
+  [ Brice Goglin ]
+  * Remove Thierry Reding from Uploaders, closes: #572540.
+
+  [ Cyril Brulebois ]
+  * Add patch to prevent FTBFS due to deprecated GDK/GTK stuff:
+    * 020_disable_gdk_gtk_disable_deprecated (Closes: #577352).
+  * Add myself to Uploaders.
+  * Set urgency to high due to RC bugfix.
+
+ -- Cyril Brulebois <kibi@xxxxxxxxxx>  Thu, 15 Apr 2010 03:29:29 +0200
+
+compiz (0.8.4-2) unstable; urgency=low
+
+  * Bump the dh_makeshlibs call to (>= 0.8.4)
+
+ -- Sean Finney <seanius@xxxxxxxxxx>  Thu, 11 Feb 2010 23:08:16 +0100
+
+compiz (0.8.4-1) unstable; urgency=low
+
+  * New upstream release.
+
+  [ Sean Finney ]
+  * Fix FTBFS: "gconf/gconf-client.h: No such file or directory"
+    - thanks to Sebastian Harl <tokkee@xxxxxxxxxx> (Closes: #562027, #562438) 
+  * Add compiz-decorator symlink for compatibility with ubuntu systems.
+  * Make all patches DEP-3 formatted.
+  * No longer keep the ubuntu patches logically separated from ours
+  * Enable 010-disable-child-window-clipping.patch, as there's an ABI bump.
+    Also, massage the patch a little so that it applies cleanly.
+  * Synchronize ubuntu patches from 0.8.4-0ubuntu10
+    * 015_draw_dock_shadows_on_desktop.patch:
+      - change decoration plugin to draw dock shadows only on the
+        desktop window instead of on top of all other windows
+    * 016_call_glxwaitx_before_drawing.patch:
+      - Call glXWaitX before we start drawing to make sure X is done
+        handling rendering calls. Suggested by Michel Dänzer to ensure
+        we don't have any rendering glitches.
+    * 017_always_unredirect_screensaver_on_nvidia.patch:
+      - always unredirect gnome-screensaver when using nvidia, workaround
+        for LP #160264 while still disabling unredirect fullscreen
+        windows for nvidia users
+    * 020_fix_focus.patch:
+      - give back the focus to the previous focused window (LP: #455900)
+    * 030_from_git_crash_fix_multiscreen.patch:
+      - merge commit 24dea72a395071b533dcf66b2eef37b20522cbba to fix
+        crash with wobbly windows in a multi screen setup
+    * 031_from_git_fix_gnome_keybindings.patch:
+      - fix gnome keybindings (terminal key)
+    * 060_move_checks_to_compiz.patch:
+      - add all relevant checks from compiz-manager to compiz itself
+        Compiz already checks for almost everything it needs so there is no
+        need to check twice.
+    * 061_KWD_stubs.patch (updated locally to remove fuzz):
+      - Horrible hack to define empty stubs for some new pure virtual
+        functions in KWD::Window, to fix FTBFS.
+  * The following patches have been updated to cleanly apply:
+    * 014-fix-gtk-window-decorator-no-argb-crash.patch
+    * 015_optional-fbo.patch
+    * ubuntu/010-disable-child-window-clipping.patch
+    * ubuntu/013-add-cursor-theme-support.patch
+    * ubuntu/018_use_metacity_settings.patch
+    * ubuntu/029_default_options
+    * ubuntu/035_ignore_workspaces
+    * ubuntu/037_fullscreen_stacking_fixes.patch
+    * ubuntu/049-damage-report-non-empty.patch
+    * ubuntu/050_stacking.patch
+  * Transition from compiz-manager to compiz binary for /usr/bin/compiz
+  * Remove all patches to the embedded compiz-manager script
+    * 028_compiz_manager_blacklist
+    * 029_compiz_manager_decoration.patch
+    * 029_compiz_manager_nvidia_settings.patch
+    * 030_compiz_manager_multi_display
+    * 031_compiz_manager_extra_blacklist_support
+    * 032_compiz_manager_add_gnomecompat
+    * 033_compiz_manager_xdg_dirs
+    * 042-compiz-manager-default-plugin
+    * 046_compiz_manager_second_screen.patch
+
+ -- Sean Finney <seanius@xxxxxxxxxx>  Thu, 11 Feb 2010 20:17:39 +0100
+
+compiz (0.8.2-6) unstable; urgency=low
+
+  * Add libxcursor-dev build-dep as required by patch
+    ubuntu/013-add-cursor-theme-support; also let compiz-dev pull it as it's
+    referenced in the .pc file; closes: #525240, #524943.
+  * Add a virtual compiz-core-abiversion-2009xxyy provides to compiz-core to
+    allow for strict dependencies of plugins on the compiz-core
+    CORE_ABIVERSION they were built with, as read from include/compiz-core.h.
+  * Use the new Breaks feature for the compiz-core -> libcompizconfig0 dep.
+    This makes upgrades smoother than Conflicts.
+  * Bump the compiz-core Breaks on libcompizconfig0 to 0.8.0 as the last
+    CORE_ABIVERSION bump happened between 0.7.8 and 0.8.0; closes: #523514.
+  * Add a missing libxml2-dev build-dep and update the compiz-dev deps to
+    match what compiz.pc requires and use the same versions as the build-deps.
+  * Build-dep on libcairo2-dev instead of libcairo-dev.
+  * Add missing libstartup-notification0-dev (>= 0.7) bdep and version the
+    compiz-dev dep to match.
+  * Use the same version in the libdecoration0-dev dep on libxrender-dev as
+    in the libxrender-dev bdep.
+
+ -- Loic Minier <lool@xxxxxxxx>  Fri, 24 Apr 2009 15:15:24 +0200
+
+compiz (0.8.2-5) unstable; urgency=low
+
+  * remove obsolete --enable-gconf-dump configure option
+  * add build-dependency on libgnomeui-dev to fix new FTBFS (Closes: #524446)
+  * add Vcs-Git and Vcs-Browser headers to debian/control
+
+ -- Sean Finney <seanius@xxxxxxxxxx>  Sun, 19 Apr 2009 18:45:39 +0200
+
+compiz (0.8.2-4) unstable; urgency=low
+
+  * disable child window clipping patch: it breaks the abi
+
+ -- Sean Finney <seanius@xxxxxxxxxx>  Sat, 11 Apr 2009 18:55:35 +0200
+
+compiz (0.8.2-3) unstable; urgency=low
+
+  * import of some ubuntu patches for 0.8.2 with some modifications
+    - see debian/patches/ubuntu for patches
+    - see debian/patches/series for which patches are used and which
+      are not.
+    - includes patch to copy gnome/metacity keyboard shortcuts
+      (Closes: #503442, #454922).
+
+ -- Sean Finney <seanius@xxxxxxxxxx>  Sat, 11 Apr 2009 14:26:06 +0200
+
+compiz (0.8.2-2) unstable; urgency=low
+
+  * upgrading compiz-manager backed out some locally modified but not
+    quilt-using changes in paths.  so, new patch compiz-debian-paths.patch
+    should fix this (closes: #522985).
+
+ -- Sean Finney <seanius@xxxxxxxxxx>  Wed, 08 Apr 2009 23:13:19 +0200
+
+compiz (0.8.2-1) unstable; urgency=low
+
+  * new upstream release.
+  * update location of compiz-gnome desktop file
+  * add new app desktop file for compiz to compiz-core
+  * update build-deps to use kdebase-workspace-dev
+  * add build-dep on libxslt1-dev
+  * disable kde3 decorator and enable kde4 decorator
+  * include a gbp.conf for use with git-buildpackage
+  * bump the libdecoration0 shlibs version to 0.8.2
+  * update compiz-manager to upstream's 223180bf
+  * Obsolete patches now removed:
+    - disable-libx11-xcb-support.patch
+    - xscreensaver-damage-fix.patch
+    - compiz-manager-posixly-correct.patch
+  * Lintian fixes: 
+    - update Standards-Version to 3.8.1
+    - add misc:Depends to compiz
+
+ -- Sean Finney <seanius@xxxxxxxxxx>  Wed, 01 Apr 2009 00:00:10 +0200
+
+compiz (0.7.6-8) unstable; urgency=low
+
+  * Don't run glib-gettextize, to fix FTBFS caused by intltoolize changes
+    (closes: #518909).
+  * Rebuild against new metacity (closes: #518910).
+
+ -- Julien Cristau <jcristau@xxxxxxxxxx>  Mon, 09 Mar 2009 18:44:13 +0100
+
+compiz (0.7.6-7) unstable; urgency=medium
+
+  * refresh quilt patches to apply with no fuzz/offsets. 
+  * add fglrx driver to compiz-manager whitelist (closes: #495539).
+
+ -- Sean Finney <seanius@xxxxxxxxxx>  Mon, 01 Sep 2008 08:00:56 +0200
+
+compiz (0.7.6-6) unstable; urgency=high
+
+  * backport commit aed97c441881d9c382c7865d0305fc8f884c10ac to fix the 
+    problems that seem to come up with certain xscreensavers the Right Way.
+    (closes: #483170).
+
+ -- Sean Finney <seanius@xxxxxxxxxx>  Sat, 30 Aug 2008 11:39:17 +0200
+
+compiz (0.7.6-5) unstable; urgency=high
+
+  * Brown paper bag: remove shlibs.local and libdecoration0.shlibs, call
+    dh_makeshlibs with the proper flags to actually fix dependencies on
+    libdecoration0.
+
+ -- Julien Cristau <jcristau@xxxxxxxxxx>  Fri, 01 Aug 2008 18:57:30 +0200
+
+compiz (0.7.6-4) unstable; urgency=low
+
+  [ Julien Cristau ]
+  * Bump libdecoration0 shlibs to >= 0.7.6 (closes: #485775).
+
+  [ Sean Finney ]
+  * Include fix for posixly-incorrect usage of ENV (closes: #484225).
+
+ -- Julien Cristau <jcristau@xxxxxxxxxx>  Sat, 26 Jul 2008 21:44:51 +0200
+
+compiz (0.7.6-3) unstable; urgency=high
+
+  * Add a versioned Replaces on older compiz-plugins to compiz-gtk, to prevent
+    file conflicts.  Thanks to Daniel Burrows for the report (closes: #485436).
+
+ -- Sean Finney <seanius@xxxxxxxxxx>  Mon, 09 Jun 2008 18:39:57 +0200
+
+compiz (0.7.6-2) unstable; urgency=low
+
+  * Add Conflicts against xscreensaver-data-extra as an unfortunately
+    heavy handed workaround to prevent graphical lockups with an as-of-yet
+    unknown bug somewhere in the screensaver-compiz-driver-xserver chain.
+    (See: #483170, and other bugs/urls referenced in that report)
+
+ -- Sean Finney <seanius@xxxxxxxxxx>  Sat, 07 Jun 2008 14:22:15 +0200
+
+compiz (0.7.6-1) unstable; urgency=low
+
+  * New upstream release
+
+  [ Sean Finney ]
+  * Special-case the gconf and kconfig plugins to go into the -gtk and -kde
+    packages respectively, as they are semi-obsoleted by the ccp plugin anyway
+    and cause potentially problematic dependencies.  Thanks to Fabiano 
+    Manoel de Andrade for the report (closes: #482150).
+  * Add versioned Conflicts on libcompizconfig0 to compiz-core, to reflect
+    ABI breakage without introducing a circular dependency.  Thanks
+    to Mike Hommey for the report (closes: #482646).
+  * Make debian/rules stricter about catching uninstalled files.
+  * Make debian/rules able to build/clean/build again.
+  * Misc cleanups in debian/rules.
+  * Lintian fixes:
+    - Spelling correction in debian/control
+    - Fix for build-depends-on-1-revision for x11proto-gl-dev
+
+  [ Julien Cristau ]
+  * Add Depends: libxslt1-dev, libxml2-dev to compiz-dev, as they are required
+    by compiz.pc (closes: #482192).
+
+ -- Sean Finney <seanius@xxxxxxxxxx>  Mon, 26 May 2008 23:04:24 +0200
+
+compiz (0.7.4-1) unstable; urgency=low
+
+  * New upstream release
+  * Incorporate xcb-disabling patch from
+    http://gitweb.opencompositing.org/?p=users/3v1n0/compiz-patches
+
+ -- Sean Finney <seanius@xxxxxxxxxx>  Sun, 18 May 2008 19:15:13 +0200
+
+compiz (0.6.3~git20080115.0ea58487-1) unstable; urgency=low
+
+  * New upstream (git snapshot) release.  Refreshed quilt patches.
+  * Contains upstream fix for kde-window-decorator problems with not properly
+    mapping/rendering titlebars.  closes: #458464, #460186.
+  * Remove timestamps from quilt patches (package maintainers, you 
+    should put QUILT_NO_DIFF_TIMESTAMPS=1 in your ~/.quiltrc).
+  * add compizconfig-settings-manager to Suggests field for compiz.
+  * don't blindly assume that the nvidia-settings program is present.
+    patch: compiz-manager-nvidia-settings-optional.patch.  closes: #463645.
+
+ -- sean finney <seanius@xxxxxxxxxx>  Tue, 26 Feb 2008 20:08:31 +0100
+
+compiz (0.6.3~git20071222.061ff159-1) unstable; urgency=low
+
+  * New upstream (git snapshot) release.  Refreshed quilt patches.
+  * Remove build-dependency on libfuse-dev, since we explicitly disable the
+    fuse plugin and it causes FTBFS on non-linux arches.  It should also make
+    backporting easier (closes: #451149, #455516).
+  * compiz-manager-posixly-correct.patch: fix from Brian Carlson to get
+    compiz-manager to run when POSIXLY_CORRECT is set (always pass
+    options before arguments closes: #456628).
+  * Remove libmetacity entry from shlibs override (closes: #455515) Thanks to
+    Rober Millan for noticing this.
+  * Remove outdated info in README.Debian for compiz-core (closes: #454340).
+  * lintian:
+    - Standards-Version to 3.7.3
+    - libdecoration0-dev to section libdevel
+
+ -- Sean Finney <seanius@xxxxxxxxxx>  Sat, 22 Dec 2007 12:01:54 +0100
+
+compiz (0.6.3~git20071208.25941d14-1) unstable; urgency=low
+
+  [Sean Finney]
+  * New upstream (git snapshot) release.
+  * Remove autofoo generated content and create/remove it as part of the
+    standard build process instead.
+  * Similarly, add Build-Deps on autoconf and similar stuff.
+  * Remove the old/buggy compiz.wrapper script and now use Kristian Lyngstol's
+    compiz-manager script as a drop-in replacement for it.  This should fix
+    numerous problems with plugin settings and window decorators not behaving
+    properly.  specifically, it closes: #449389, #390929, #400583, #440095.
+    it also closes: #446901, #447345 closes: #393501, #445026.  
+  * Update copyright file accordingly.
+
+ -- Sean Finney <seanius@xxxxxxxxxx>  Sun, 16 Dec 2007 17:29:03 +0100
+
+compiz (0.6.3~git20071104.c9009efd-1) unstable; urgency=low
+
+  [Sean Finney]
+  * New upstream (git snapshot) release.
+  * Disable the (unused?) fuse plugin, explicitly enable the gconf plugin
+  * lintian: update FSF address
+
+  [Brice Goglin]
+  * Make compiz dependencies on compiz-* packages versioned,
+    closes: #440494.
+  * Make the build-dependency on libfuse-dev require >= 2.7.0.
+
+ -- Sean Finney <seanius@xxxxxxxxxx>  Sun, 04 Nov 2007 21:20:17 +0100
+
+compiz (0.5.2-2) unstable; urgency=low
+
+  * oops, shipping copies of a few .h and .pc files in both compiz-dev
+    and libdecoration0-dev.  fixed.
+
+ -- sean finney <seanius@xxxxxxxxxx>  Wed, 29 Aug 2007 21:06:29 +0200
+
+compiz (0.5.2-1) unstable; urgency=low
+
+  * New upstream release.
+  * updated/massaged various quilt patches
+  * make sure configure is executable at build time.  seems that this
+    causes problems in a pbuilder environment
+  * new build-dependencies on libxml-parser-perl and xsltproc
+  * modify compiz-dev.install to install all the extra .h/.pc files
+    being generated in this new version.
+
+ -- sean finney <seanius@xxxxxxxxxx>  Wed, 22 Aug 2007 22:58:09 -0700
+
+compiz (0.5.0.dfsg-3) UNRELEASED; urgency=low
+
+  * Restore all ${misc:Depends} in debian/control so that for instance
+    compiz-gtk and compiz-plugins gets the required dependency on gconf2
+    (for gconf-schemas in postinst), closes: #436432.
+
+ -- Brice Goglin <bgoglin@xxxxxxxxxx>  Tue, 07 Aug 2007 15:10:49 +0200
+
+compiz (0.5.0.dfsg-2) unstable; urgency=low
+
+  * Drop the now obsolete Source-Version in favour of binary:Version in
+    debian/control.
+  * Replace --strict-binding and --use-cow documentation by --loose-binding
+    and --use-root-window respectively in the compiz.real manpage. Thanks
+    Michael Gilbert. (Closes: 432920)
+  * Rearrange and add missing command-line options in the compiz.real manpage.
+  * compiz-gtk needs to conflict with libmetacity0 (<< 1:2.15.21) because of
+    an incompatible ABI change. This should really be fixed in libmetacity. A
+    shlibs bump should do the trick. (Closes: 425631)
+  * Add upstream patch that fixes non-tfp textures (icons, cube top image
+    etc.) on big endian platforms. Thanks Michel Dänzer.
+  * Run dh_makeshlibs with -V. (Closes: 425463)
+  * Use package-local shlibs override file to depend on libmetacity0 (>=
+    1:2.15.21) and libdecoration0 (>= 0.5.0). Thanks Sune Vuorela.
+
+ -- Thierry Reding <thierry@xxxxxxxx>  Fri, 13 Jul 2007 11:25:13 +0200
+
+compiz (0.5.0.dfsg-1) unstable; urgency=low
+
+  [ Thierry Reding ]
+  * New upstream development release:
+    - Remove stencil buffer requirement.
+    - Focus stealing prevention support.
+    - Better occlusion detection and more efficient rendering.
+    - Added plugins:
+      + blur: blur windows and contents behind translucent windows
+      + fuse: map compiz options to a file-system
+      + ini: flat file configuration backend
+      + inotify: file change notification
+      + video: composited video interface for efficient playback
+  * Forward-port patches:
+    - Dropped 012_debian-kde-includes-dir.patch, no longer needed.
+    - Dropped 013_set-qtdir-fallback.patch, no longer needed.
+    - Refresh other patches.
+  * Use compiz' default set of plugins.
+  * Add build-dependency on libfuse-dev needed by the fuse plugin.
+  * No longer conflict with metacity >= 2.15.21, now that metacity 2.18 is in
+    unstable. (Closes: #411012)
+  * Add symlink to the compiz-core README to the compiz package.
+    (Closes: #408605)
+  * Drop po/*.gmo and kde/window-decorator/*.moc.cpp from the original
+    tarball. Add a note to debian/copyright.
+  * Pass QTDIR=/usr to the configure script so that the moc can be found.
+  * shlibs bump for libdecoration because it contains added symbols.
+    Thanks Julien Cristau.
+
+  [ Julien Cristau ]
+  * Don't remove .cvsignore files and autogen.sh in clean.
+
+ -- Thierry Reding <thierry@xxxxxxxx>  Sat, 19 May 2007 17:34:51 +0200
+
+compiz (0.3.6-1) experimental; urgency=low
+
+  [ Thierry Reding ]
+  * New upstream release:
+    + Drop 002_tfp-server-extension.patch, obsolete.
+    + Drop 005_glfinish.patch, fixed upstream.
+    + Refresh 011_snap-by-default.patch.
+  * Replace build-dependency on libdbus-1-dev by libdbus-glib-1-dev.
+  * Add build-dependency on kdebase-dev and libdbus-qt-1-dev for the KDE
+    window decorator.
+  * Add patch 012_debian-kde-includes-dir to correctly detect the KDE include
+    directory on Debian systems.
+  * Add patch 013_set-qtdir-fallback to set the QTDIR variable to /usr if it
+    has not explicitly been set before. This allows the configure script to
+    correctly detect the moc compiler.
+  * Add the compiz-kde package which provides a window decorator for KDE.
+    Closes: #390338.
+  * Add the libdecoration0 and libdecoration0-dev packages. libdecoration0 is
+    needed by both Gtk and KDE window decorators while libdecoration0-dev can
+    be used to write additional decorators.
+  * Add patch 015_optional-fbo which adds a command-line option for disabling
+    the use of FBOs (work around buggy drivers). Add the --no-fbo option to
+    command-line in the compiz wrapper.
+  * Remove the --strict-binding and --use-cow options from the command-line in
+    the compiz wrapper. These are now the defaults.
+  * Add png and svg to the list of default plugins. They are needed to load
+    PNG and SVG images (e.g. for the cube's top face).
+  * Check whether the GLX_EXT_texture_from_pixmap extension is available in
+    direct or indirect rendering contexts. If it is available only in indirect
+    rendering contexts, force compiz to use indirect rendering.
+
+ -- David Nusinow <dnusinow@xxxxxxxxxx>  Wed, 17 Jan 2007 23:46:34 -0500
+
+compiz (0.3.4-1) experimental; urgency=low
+
+  * New upstream release:
+    + Drop 012_metacity-theme-support.patch, fixed upstream.
+    + Drop 013_fix-default-plugins.patch, fixed upstream.
+    + Refresh all other patches.
+  * Don't use xsfbs anymore until there's an easy way to keep it up-to-date
+    in git repositories. For now using quilt works just fine.
+  * Drop build-dependencies on automake1.9 and libtool because we don't run
+    the complete autotools stack anymore.
+  * Add missing dependencies to the compiz-dev package. It needs to pull in
+    all packages required by its pkgconfig file.
+  * Add a dependency on libgl1-mesa-dev | libgl-dev to compiz-dev because
+    compiz.h includes files provided in that package.
+
+ -- Thierry Reding <thierry@xxxxxxxx>  Sun, 26 Nov 2006 00:36:39 +0100
+
+
+compiz (0.3.2-1) experimental; urgency=low
+
+  * New upstream release. Closes: #396770.
+    + Remove 010_snap-inverted.patch, applied upstream.
+    + Refreshed other patches to apply cleanly again.
+    + Remove gtk-window-decorator.schemas and use the one provided by
+      upstream (gtk/window-decorator/gwd.schemas).
+  * Targetted at experimental until the release of etch.
+
+ -- Thierry Reding <thierry@xxxxxxxx>  Tue, 14 Nov 2006 02:36:40 +0100
+
+compiz (0.2.2-1) unstable; urgency=low
+
+  [ Thierry Reding ]
+  * New upstream release:
+    + Drop 013_dont-fail-if-theme-not-found.patch, applied upstream.
+  * Make 012_metacity-theme-support also patch the configure script, not only
+    configure.ac.
+  * Add 013_fix-default-plugins.patch which fixes upstream's handling of the
+    default plugins configuration variable.
+  * Make all plugins that were enabled in previous versions default plugins so
+    compiz' behaviour doesn't change. Drop the 'water' plugin because our X
+    server does not support it yet.
+  * Drop --disable-kde from the configure flags because it is now disabled by
+    default.
+  * Add a dependency on mesa-utils to compiz-core to provide glxinfo that is
+    needed by the compiz wrapper. Thanks Per Bojsen.
+    Closes: #393113.
+  * Conflict with libmetacity0 (>= 1:2.15.21) because it would currently make
+    gtk-window-decorator segfault.
+
+  [ David Nusinow ]
+  * Add myself to uploaders. Thierry is still the primary maintainer.
+
+ -- David Nusinow <dnusinow@xxxxxxxxxx>  Mon,  6 Nov 2006 23:13:41 -0500
+
+compiz (0.2.0-1) unstable; urgency=low
+
+  [ Thierry Reding ]
+  * New upstream release.
+    + Drop 011_plane-plugin-schema.patch, applied upstream.
+    + Drop 012_freedesktop-schema.patch, applied upstream.
+  * Replace 010_snap-by-default by the upstream patch 010_snap-inverted and
+    add 011_snap-by-default to enable snapping by default.
+  * Add 012_metacity-theme-support.patch which uses an older version of the
+    metacity library for theme support so that compiz can be built for Debian
+    unstable.
+  * Install a schemas file for the Gtk window decorator which is used to
+    enable the use of metacity themes.
+  * Suggest nvidia-glx (>= 1.0.9625-1). (Closes: #390326).
+  * Add code to the compiz wrapper to handle the NVIDIA GLX implementation
+    Closes: #390814.
+  * No longer build static versions of the plugins.
+  * Remove .la files manually because they are not needed.
+  * Clean up build-dependencies:
+    + Remove unnecessarily versioned build-dependencies.
+    + Tighten the build-dependency on libxcomposite-dev to (>= 1:0.3-2).
+      Closes: 390304, 390416.
+  * Add a manpage documenting the compiz wrapper.
+  * Check if the gconf plugin is installed before trying to load it in the
+    wrapper.
+  * Enable building the gconf-dump plugin.
+  * Add a README file to the compiz-core package.
+  * List copyright holders and contributors in the copyright file.
+    Closes: #392422.
+  * Add 013_dont-fail-if-theme-not-found.patch which will make compiz use its
+    default theme if the metacity theme cannot be found.
+  * Make compiz-gtk suggest gnome-themes so people can take advantage of the
+    metacity theme support.
+
+  [ David Nusinow ]
+  * Tighten up all the X library build-depends by explicitly using current
+    versions. Thanks aj.
+
+ -- David Nusinow <dnusinow@xxxxxxxxxx>  Fri, 13 Oct 2006 16:22:17 -0400
+
+compiz (0.0.13+git20060928-2) unstable; urgency=low
+
+  * Change the maintainer field to the Debian X Strike Force.
+  * Add myself to the uploaders field.
+  * Move compiz.{docs,install,manpages} to compiz-core.{docs,install,manpages}
+    so the installed files end up in the correct package.
+  * Rename compiz.1 to compiz.real.1, because it's actually documenting the
+    real compiz binary.
+
+ -- Thierry Reding <thierry@xxxxxxxx>  Fri, 29 Sep 2006 09:24:30 +0200
+
+compiz (0.0.13+git20060928-1) unstable; urgency=low
+
+  * Initial release. (Closes: #352151)
+  * Install the compiz schema during postinst and removes it during prerm
+    (using dh_gconf).
+  * Add patches by Kristian Høgsberg to make compiz work on AIGLX:
+    + 002_tfp-server-extension.patch
+    + 005_glfinish.patch
+  * No longer build the compiz-kde package, because it is unusable.
+  * Add gtk-window-decorator.1 manpage.
+  * Install the window settings configuration plugin into the right location
+    (/usr/lib/libgnome-window-settings1/libcompiz.so).
+  * Bump build-dependency on libxcomposite-dev (>= 0.3) because it provides
+    the XComposite{Get,Release}OverlayWindow functions.
+  * Install a compiz wrapper as /usr/bin/compiz to call compiz.real with
+    required arguments (load gconf plugin).
+  * Add 010_snap-by-default.patch to turn snapping on by default.
+  * Add a versioned build-dependency on x11proto-gl-dev (>= 1.4.8-1) to make
+    sure compiz gets built with the correct opcodes for the GLX_EXT_tfp
+    extension.
+  * Add build-dependency on libmetacity-dev, which is needed for metacity
+    theme support.
+  * Add the compiz-gtk package containing the former gnome-window-decorator.
+    The compiz-gnome package provides the files necessary to integrate compiz
+    and compiz-gtk with the GNOME desktop environment.
+  * Add a build-dependency on libxinerama-dev, needed to build compiz with
+    support for the xinerama extension.
+  * Revise the compiz.1 manpage.
+  * Rename the compiz package to compiz-core and make compiz a meta-package
+    pulling in everything necessary to run compiz from within GNOME.
+  * Add 011_plane-plugin-schema.patch by Eugene Konev      gconf settings
+    for the plane plugin.
+  * Add 012_freedesktop-schema.patch that fixes a typo in compiz.schema.in.
+
+ -- Thierry Reding <thierry@xxxxxxxx>  Fri, 29 Sep 2006 07:56:05 +0200
+

=== added file 'debian/compat'
--- debian/compat	1970-01-01 00:00:00 +0000
+++ debian/compat	2011-06-15 05:26:31 +0000
@@ -0,0 +1,1 @@
+5

=== added file 'debian/compiz-core.README.Debian'
--- debian/compiz-core.README.Debian	1970-01-01 00:00:00 +0000
+++ debian/compiz-core.README.Debian	2011-06-15 05:26:31 +0000
@@ -0,0 +1,36 @@
+Xorg Server Configuration
+=========================
+
+In order for compiz to work you need to add the following to you server
+configuration file (/etc/X11/xorg.conf):
+
+  + Enable the composite extension: locate the section named "Extensions" and
+    add the following line:
+
+        Option "Composite" "enable"
+
+    If there is no section "Extensions" yet, you should add one that looks
+    like this:
+
+        Section "Extensions"
+            Option "Composite" "enable"
+        EndSection
+
+  + Make XAA not hold any pixmaps in offscreen memory. This slows down compiz
+    in many configurations. You can disable this by adding the following line
+    to your "Device" section:
+
+        Option "XAANoOffscreenPixmaps" "true"
+
+Now restart your X server and login to your favorite session. After the
+session has loaded completely, open a terminal window and type the following
+command:
+
+    $ compiz --replace &
+
+Which will start compiz, make it replace the current window manager and
+background the process so you can safely close the terminal again. If all went
+well, compiz should start up and enable a whole bunch of desktop effects.
+
+ -- Thierry Reding <thierry@xxxxxxxx>  Tue,  3 Oct 2006 14:12:26 +0200
+

=== added file 'debian/compiz-core.docs'
--- debian/compiz-core.docs	1970-01-01 00:00:00 +0000
+++ debian/compiz-core.docs	2011-06-15 05:26:31 +0000
@@ -0,0 +1,4 @@
+AUTHORS
+NEWS
+README
+TODO

=== added file 'debian/compiz-core.install'
--- debian/compiz-core.install	1970-01-01 00:00:00 +0000
+++ debian/compiz-core.install	2011-06-15 05:26:31 +0000
@@ -0,0 +1,8 @@
+debian/tmp/usr/bin/compiz*
+debian/compiz-decorator usr/bin/
+debian/tmp/usr/share/compiz/cube/images/*.png
+debian/tmp/usr/share/compiz/*.png
+debian/tmp/usr/share/compiz/core.xml
+debian/tmp/usr/share/locale
+debian/tmp/usr/share/applications/compiz.desktop
+debian/source_compiz.py usr/share/apport/package-hooks

=== added file 'debian/compiz-core.manpages'
--- debian/compiz-core.manpages	1970-01-01 00:00:00 +0000
+++ debian/compiz-core.manpages	2011-06-15 05:26:31 +0000
@@ -0,0 +1,2 @@
+debian/compiz.1
+debian/compiz-decorator.1

=== added file 'debian/compiz-decorator'
--- debian/compiz-decorator	1970-01-01 00:00:00 +0000
+++ debian/compiz-decorator	2011-06-15 05:26:31 +0000
@@ -0,0 +1,97 @@
+#!/bin/sh
+# Starts Compiz Decorator depending on the DE
+# 
+# Copyright (c) 2007 CyberOrg <cyberorg@xxxxxxxxxxxxx>
+# Based on compiz-manager script by Kristian Lyngstøl <kristian@xxxxxxxxxxxxx>
+# 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., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#
+# Contributions by: crdlb
+#
+COMPIZ_BIN_PATH=/usr/bin/
+KWIN=`which kwin`
+METACITY="/usr/bin/metacity"
+
+#
+# Default to gtk/kde4-window-decorator
+#
+USE_EMERALD="no"
+DECORATOR=""
+
+#Do not leave users without decoration if decorator fails
+if [ "$DESKTOP_SESSION" = "kde" ]; then
+    FALLBACKWM="${KWIN}"
+else
+    FALLBACKWM="${METACITY}"
+fi
+FALLBACKWM_OPTIONS=" --replace"
+
+#
+# Set to yes to enable verbose
+#
+VERBOSE="yes"
+ 
+#
+# Echos the arguments if verbose
+#
+verbose()
+{
+    if [ "x$VERBOSE" = "xyes" ]; then
+        printf "$*"
+    fi
+}
+
+# Read configuration from XDG paths
+if [ -z "$XDG_CONFIG_DIRS" ]; then
+    test -f /etc/xdg/compiz/compiz-manager && . /etc/xdg/compiz/compiz-manager
+else
+    test -f $XDG_CONFIG_DIRS/compiz/compiz-manager && . $XDG_CONFIG_DIRS/compiz/compiz-manager
+fi
+
+if [ -z "$XDG_CONFIG_HOME" ]; then
+    test -f $HOME/.config/compiz/compiz-manager && . $HOME/.config/compiz/compiz-manager
+else
+    test -f $XDG_CONFIG_HOME/compiz/compiz-manager && .  $XDG_CONFIG_HOME/compiz/compiz-manager
+fi
+
+# start a decorator
+if [ -x ${COMPIZ_BIN_PATH}emerald ] && [ "$USE_EMERALD" = "yes" ]; then
+    DECORATOR=emerald
+elif [ -x ${COMPIZ_BIN_PATH}unity-window-decorator ] && [ -n "$GNOME_DESKTOP_SESSION_ID" ]; then
+    DECORATOR=unity-window-decorator
+elif [ -x ${COMPIZ_BIN_PATH}kde4-window-decorator ] && [ x$KDE_SESSION_VERSION = x"4" ]; then
+    DECORATOR=kde4-window-decorator
+fi
+
+# fall back to any decorator that is installed
+if [ -z "$DECORATOR" ]; then
+    verbose "Couldn't find a perfect decorator match; trying all decorators\n"
+    if [ -x ${COMPIZ_BIN_PATH}emerald ]; then
+        DECORATOR=emerald
+    elif [ -x ${COMPIZ_BIN_PATH}unity-window-decorator ]; then
+	DECORATOR=unity-window-decorator
+    elif [ -x ${COMPIZ_BIN_PATH}kde4-window-decorator ]; then
+	DECORATOR=kde4-window-decorator
+    fi
+fi
+
+if [ -n "$DECORATOR" ]; then
+    verbose "Starting ${DECORATOR}\n"
+    exec ${COMPIZ_BIN_PATH}$DECORATOR "$@"
+else
+    verbose "Found no decorator to start\n"
+    exec $FALLBACKWM $FALLBACKWM_OPTIONS
+fi
+

=== added file 'debian/compiz-decorator.1'
--- debian/compiz-decorator.1	1970-01-01 00:00:00 +0000
+++ debian/compiz-decorator.1	2011-06-15 05:26:31 +0000
@@ -0,0 +1,15 @@
+.TH COMPIZ-DECORATOR 1 "May 18, 2010"
+.SH NAME
+compiz-decorator \- Automatic decorator loader
+.SH SYNOPSIS
+.B compiz-decorator
+.SH DESCRIPTION
+.B compiz-decorator
+is a program that automatically launches the best decorator based on your
+environment and what decorators are available.
+.SH AUTHOR
+compiz-decorator was written by CyberOrg <cyberorg@xxxxxxxxxxxxx> and
+others.
+.PP
+This manual page was written by Travis Watkins <amaranth@xxxxxxxxxx>,
+for the Ubuntu project (but may be used by others).

=== added file 'debian/compiz-dev.docs'
--- debian/compiz-dev.docs	1970-01-01 00:00:00 +0000
+++ debian/compiz-dev.docs	2011-06-15 05:26:31 +0000
@@ -0,0 +1,4 @@
+AUTHORS
+NEWS
+README
+TODO

=== added file 'debian/compiz-dev.install'
--- debian/compiz-dev.install	1970-01-01 00:00:00 +0000
+++ debian/compiz-dev.install	2011-06-15 05:26:31 +0000
@@ -0,0 +1,5 @@
+debian/tmp/usr/include/compiz/[!d]*
+debian/tmp/usr/lib/pkgconfig/[!l]*
+debian/tmp/usr/share/compiz/xslt
+debian/tmp/usr/share/cmake*
+debian/tmp/usr/share/compiz/cmake

=== added file 'debian/compiz-gnome.docs'
--- debian/compiz-gnome.docs	1970-01-01 00:00:00 +0000
+++ debian/compiz-gnome.docs	2011-06-15 05:26:31 +0000
@@ -0,0 +1,4 @@
+AUTHORS
+NEWS
+README
+TODO

=== added file 'debian/compiz-gnome.gconf-defaults'
--- debian/compiz-gnome.gconf-defaults	1970-01-01 00:00:00 +0000
+++ debian/compiz-gnome.gconf-defaults	2011-06-15 05:26:31 +0000
@@ -0,0 +1,9 @@
+/apps/compiz-1/plugins/move/screen0/options/constrain_y                true
+/apps/compiz-1/general/screen0/options/hsize				2
+/apps/compiz-1/general/screen0/options/vsize				2
+/apps/gwd/blur_type							all
+/apps/gwd/metacity_theme_opacity					1.0
+/apps/gwd/metacity_theme_shade_opacity					true
+/apps/compizconfig-1/profiles/unity/general/screen0/options/active_plugins [core,bailer,detection,composite,opengl,decor,mousepoll,vpswitch,regex,animation,snap,expo,move,compiztoolbox,place,grid,imgpng,gnomecompat,wall,ezoom,workarounds,staticswitcher,resize,fade,unitymtgrabhandles,scale,session,unityshell]
+/apps/compizconfig-1/profiles/unity/plugins/gnomecompat/screen0/options/main_menu_key ""
+/apps/compizconfig-1/profiles/unity/plugins/gnomecompat/screen0/options/run_key ""

=== added file 'debian/compiz-gnome.install'
--- debian/compiz-gnome.install	1970-01-01 00:00:00 +0000
+++ debian/compiz-gnome.install	2011-06-15 05:26:31 +0000
@@ -0,0 +1,7 @@
+debian/tmp/usr/share/applications/compiz.desktop usr/share/gnome/wm-properties/
+debian/tmp/usr/share/gnome-control-center
+debian/tmp/usr/share/gconf/schemas/*.schemas
+debian/tmp/usr/bin/gtk-window-decorator
+debian/tmp/usr/bin/unity-window-decorator
+debian/65compiz_profile-on-session /etc/X11/Xsession.d
+debian/unity.ini /etc/compizconfig/

=== added file 'debian/compiz-gnome.manpages'
--- debian/compiz-gnome.manpages	1970-01-01 00:00:00 +0000
+++ debian/compiz-gnome.manpages	2011-06-15 05:26:31 +0000
@@ -0,0 +1,1 @@
+debian/gtk-window-decorator.1

=== added file 'debian/compiz-kde.docs'
--- debian/compiz-kde.docs	1970-01-01 00:00:00 +0000
+++ debian/compiz-kde.docs	2011-06-15 05:26:31 +0000
@@ -0,0 +1,4 @@
+AUTHORS
+NEWS
+README
+TODO

=== added file 'debian/compiz-kde.install'
--- debian/compiz-kde.install	1970-01-01 00:00:00 +0000
+++ debian/compiz-kde.install	2011-06-15 05:26:31 +0000
@@ -0,0 +1,3 @@
+debian/tmp/usr/bin/kde4-window-decorator
+debian/tmp/usr/lib/compiz/libkde.so
+debian/tmp/usr/share/compiz/kde.xml

=== added file 'debian/compiz-kde.manpages'
--- debian/compiz-kde.manpages	1970-01-01 00:00:00 +0000
+++ debian/compiz-kde.manpages	2011-06-15 05:26:31 +0000
@@ -0,0 +1,1 @@
+debian/kde4-window-decorator.1

=== added file 'debian/compiz-keybindings.sed'
--- debian/compiz-keybindings.sed	1970-01-01 00:00:00 +0000
+++ debian/compiz-keybindings.sed	2011-06-15 05:26:31 +0000
@@ -0,0 +1,4 @@
+s/<\/KeyListEntries>/        <KeyListEntry name="\/apps\/compiz\/plugins\/scale\/screen0\/options\/initiate_key"\/>\n\n<\/KeyListEntries>/
+s/<\/KeyListEntries>/        <KeyListEntry name="\/apps\/compiz\/plugins\/ezoom\/screen0\/options\/zoom_in_key"\/>\n\n<\/KeyListEntries>/
+s/<\/KeyListEntries>/        <KeyListEntry name="\/apps\/compiz\/plugins\/ezoom\/screen0\/options\/zoom_out_key"\/>\n\n<\/KeyListEntries>/
+s/<\/KeyListEntries>/        <KeyListEntry name="\/apps\/compiz\/plugins\/expo\/screen0\/options\/expo_key"\/>\n\n<\/KeyListEntries>/

=== added file 'debian/compiz-plugins-default.install'
--- debian/compiz-plugins-default.install	1970-01-01 00:00:00 +0000
+++ debian/compiz-plugins-default.install	2011-06-15 05:26:31 +0000
@@ -0,0 +1,16 @@
+debian/tmp/usr/*/compiz/*bailer.*
+debian/tmp/usr/*/compiz/*compiztoolbox.*
+debian/tmp/usr/*/compiz/*composite.*
+debian/tmp/usr/*/compiz/*decor.*
+debian/tmp/usr/*/compiz/*detection.*
+debian/tmp/usr/*/compiz/*fade.*
+debian/tmp/usr/*/compiz/*gnomecompat.*
+debian/tmp/usr/*/compiz/*grid.*
+debian/tmp/usr/*/compiz/*imgpng.*
+debian/tmp/usr/*/compiz/*ini.*
+debian/tmp/usr/*/compiz/*move.*
+debian/tmp/usr/*/compiz/*opengl.*
+debian/tmp/usr/*/compiz/*place.*
+debian/tmp/usr/*/compiz/*regex.*
+debian/tmp/usr/*/compiz/*resize.*
+debian/tmp/usr/*/compiz/*scale.*

=== added file 'debian/compiz-plugins.docs'
--- debian/compiz-plugins.docs	1970-01-01 00:00:00 +0000
+++ debian/compiz-plugins.docs	2011-06-15 05:26:31 +0000
@@ -0,0 +1,4 @@
+AUTHORS
+NEWS
+README
+TODO

=== added file 'debian/compiz-plugins.install'
--- debian/compiz-plugins.install	1970-01-01 00:00:00 +0000
+++ debian/compiz-plugins.install	2011-06-15 05:26:31 +0000
@@ -0,0 +1,17 @@
+debian/tmp/usr/*/compiz/*annotate.*
+debian/tmp/usr/*/compiz/*blur.*
+debian/tmp/usr/*/compiz/*clone.*
+debian/tmp/usr/*/compiz/*commands.*
+debian/tmp/usr/*/compiz/*copytex.*
+debian/tmp/usr/*/compiz/*cube.*
+debian/tmp/usr/*/compiz/*dbus.*
+debian/tmp/usr/*/compiz/*debugspew.*
+debian/tmp/usr/*/compiz/*imgsvg.*
+debian/tmp/usr/*/compiz/*inotify.*
+debian/tmp/usr/*/compiz/*obs.*
+debian/tmp/usr/*/compiz/*rotate.*
+debian/tmp/usr/*/compiz/*screenshot.*
+debian/tmp/usr/*/compiz/*switcher.*
+debian/tmp/usr/*/compiz/*water.*
+debian/tmp/usr/*/compiz/*wobbly.*
+debian/tmp/usr/*/compiz/*zoom.*

=== added file 'debian/compiz.1'
--- debian/compiz.1	1970-01-01 00:00:00 +0000
+++ debian/compiz.1	2011-06-15 05:26:31 +0000
@@ -0,0 +1,64 @@
+.TH COMPIZ 1 "September 29, 2006"
+
+.SH NAME
+compiz \- OpenGL window and compositing manager
+
+.SH SYNOPSIS
+.B compiz
+.RI [ options ]
+.RI [ plugins ]
+.SH DESCRIPTION
+.B compiz
+is a compositing window-manager using OpenGL for rendering.
+
+.SH OPTIONS
+.TP
+.B \-\-help
+Show summary of options.
+.TP
+.B \-v, \-\-version
+Show version of program.
+.TP
+.BI "\-\-display " DISPLAY
+Manage the display called
+.I DISPLAY
+instead of the name obtained from the
+.I $DISPLAY
+environment variable.
+.TP
+.BI "\-\-refresh\-rate " RATE
+Set the default refresh rate.
+.TP
+.BI \-\-fast\-filter
+Use a fast texture filter.
+.TP
+.BI \-\-indirect\-rendering
+Force an indirect rendering context. Use this when running compiz on AIGLX.
+.TP
+.BI \-\-strict\-binding
+Enable strict binding of textures. Use this when running compiz on AIGLX.
+.TP
+.BI \-\-use\-cow
+Make use of the composite overlay window.
+.TP
+.BI \-\-replace
+Replace any existing window managers on the given X display.
+.TP
+.BI \-\-sm\-disable
+Disable the session management.
+.TP
+.BI "\-\-sm\-client\-id " ID
+Use the given
+.I ID
+as the client ID for session management.
+.TP
+.BI "\-\-bg\-image " IMAGE
+Use
+.I IMAGE
+as background image.
+
+.SH AUTHOR
+compiz was written by David Reveman <davidr@xxxxxxxxxx> and others.
+.PP
+This manual page was written by Thierry Reding <thierry@xxxxxxxx>,
+for the Debian project (but may be used by others).

=== added file 'debian/control'
--- debian/control	1970-01-01 00:00:00 +0000
+++ debian/control	2011-06-15 05:26:31 +0000
@@ -0,0 +1,170 @@
+Source: compiz
+Section: x11
+Priority: optional
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@xxxxxxxxxxxxxxxx>
+XSBC-Original-Maintainer: Debian X Strike Force <debian-x@xxxxxxxxxxxxxxxx>
+Uploaders: David Nusinow <dnusinow@xxxxxxxxxx>, Sean Finney <seanius@xxxxxxxxxx>, Cyril Brulebois <kibi@xxxxxxxxxx>
+Build-Depends: cmake (>= 2.6),
+ cdbs,
+ debhelper (>= 7.0.50~), intltool, 
+ kdebase-workspace-dev,
+ libcairo2-dev,
+ libdbus-glib-1-dev, libgconf2-dev, 
+ libgl1-mesa-dev (>= 6.5.1) | libgl-dev, libglib2.0-dev, libgnome-desktop-dev, 
+ libgnomeui-dev, libboost1.42-dev, libboost-serialization1.42-dev,
+ libgnome-window-settings-dev, libgtk2.0-dev, libice-dev (>= 1:1.0.1), 
+ libmetacity-dev (>= 1:2.30.3-0ubuntu3), libpango1.0-dev, libpng12-dev | libpng-dev, librsvg2-dev, 
+ libsm-dev (>= 1:1.0.1), libtool, libwnck-dev, libx11-dev, libxcomposite-dev (>= 1:0.3-2), libxext-dev,
+ libxdamage-dev (>=1:1.0.3), libxfixes-dev (>= 1:4.0.1), libxinerama-dev, 
+ libxml-parser-perl, libxrandr-dev (>= 2:1.1.0.2), libxrender-dev (>= 1:0.9.1), 
+ libxcursor-dev,
+ libxml2-dev, libxslt1-dev,
+ libstartup-notification0-dev (>= 0.7),
+ quilt (>= 0.40), x11proto-gl-dev (>= 1.4.8), xsltproc,
+ libglu1-mesa-dev,
+ libglib2.0-dev,
+ libglibmm-2.4-dev,
+ kdebase-workspace-dev, kdelibs5-dev (>= 4:4.2.2),
+ metacity-common, libx11-xcb-dev,
+ gnome-control-center-dev,
+Standards-Version: 3.8.1
+Vcs-Bzr: https://code.launchpad.net/~compiz/compiz/ubuntu
+
+Package: compiz
+Architecture: all
+Provides: x-window-manager
+Depends: compiz-core (>= ${source:Version}),
+         compiz-plugins-default (>= ${source:Version}),
+         compiz-gnome | compiz-kde,
+         compiz-plugins-main-default (>= 0.9),
+         libcompizconfig0 (>= 0.9), ${misc:Depends}
+Suggests: compizconfig-settings-manager
+Description: OpenGL window and compositing manager
+ Compiz brings to life a variety of visual effects that make the Linux desktop
+ easier to use, more powerful and intuitive, and more accessible for users
+ with special needs.
+ .
+ This metapackage provides the components necessary for running compiz. It
+ provides the compiz core, a set of standard plugins, a window decorator using
+ the Gtk toolkit and the files necessary to integrate compiz with the GNOME
+ desktop environment.
+
+Package: compiz-core
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Breaks: libcompizconfig0 (<< 0.9.2.1git101125-0ubuntu3),
+ compiz-fusion-plugins-main (<< 0.9.2.1-0ubuntu6), 
+ unity (<< 3.2.6-0ubuntu2), 
+ compiz-fusion-plugins-extra (<< 0.9),
+ simple-ccsm (<< 0.9)
+Recommends: compiz-plugins-default (= ${binary:Version})
+Suggests: nvidia-glx (>= 1.0.9625-1)
+Provides: compiz-core-abiversion-${coreabiversion}
+Conflicts: compiz-wrapper (<< 1:0.8.4-0ubuntu4)
+Replaces: compiz-wrapper (<< 1:0.8.4-0ubuntu4),
+          compiz-gnome (<< 1:0.8.4-4ubuntu1)
+Description: OpenGL window and compositing manager
+ Compiz brings to life a variety of visual effects that make the Linux desktop
+ easier to use, more powerful and intuitive, and more accessible for users
+ with special needs.
+ .
+ Compiz combines together a window manager and a composite manager using
+ OpenGL for rendering. A "window manager" allows the manipulation of the
+ multiple applications and dialog windows that are presented on the screen. A
+ "composite manager" allows windows and other graphics to be combined together
+ to create composite images. Compiz achieves its stunning effects by doing
+ both of these functions.
+
+Package: compiz-dev
+Architecture: any
+Depends: compiz-core (= ${binary:Version}), ${misc:Depends}, libgl1-mesa-dev | libgl-dev, libpng-dev, libxcomposite-dev (>= 1:0.3-2), libxfixes-dev (>=1:4.0.1), libxdamage-dev (>= 1:1.0.3), libxinerama-dev, libxrandr-dev (>=2:1.1.0.2), libxcursor-dev, libice-dev (>= 1:1.0.1), libsm-dev (>= 1:1.0.1), libstartup-notification0-dev (>= 0.7), libxslt1-dev, libxml2-dev, libx11-xcb-dev, libglib2.0-dev, libglibmm-2.4-dev, compiz-plugins (= ${binary:Version})
+Description: OpenGL window and compositing manager - development files
+ Compiz brings to life a variety of visual effects that make the Linux desktop
+ easier to use, more powerful and intuitive, and more accessible for users
+ with special needs.
+ .
+ This package contains the headers and libraries needed to compile compiz
+ plugins.
+
+Package: compiz-kde
+Architecture: any
+Depends: compiz-core (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends},
+         compiz-plugins-default (= ${binary:Version}),
+         compizconfig-backend-kconfig
+Replaces: compiz-plugins (<< 1:0.9.4+bzr20110606-0ubuntu3)
+Description: OpenGL window and compositing manager - KDE window decorator
+ Compiz brings to life a variety of visual effects that make the Linux desktop
+ easier to use, more powerful and intuitive, and more accessible for users
+ with special needs.
+ .
+ This package contains a window decorator that uses KDE to provide a look and
+ feel similar to that of the default KDE window manager.
+
+Package: compiz-gnome
+Architecture: any
+Suggests: gnome-themes
+Depends: ${shlibs:Depends}, ${misc:Depends},
+         compiz-plugins-default (= ${binary:Version}),
+         compizconfig-backend-gconf (>= 0.9.2.1git101213)
+Replaces: compiz-plugins (<= 1:0.8.6-0ubuntu12),
+          compiz-fusion-plugins-extra (<< 0.9.2.1-0ubuntu3),
+Description: OpenGL window and compositing manager - GNOME window decorator
+ Compiz brings to life a variety of visual effects that make the Linux desktop
+ easier to use, more powerful and intuitive, and more accessible for users
+ with special needs.
+ .
+ This package contains files needed to integrate compiz with the GNOME desktop
+ environment.
+
+Package: compiz-plugins-default
+Architecture: any
+Depends: compiz-core (= ${binary:Version}),
+         libdecoration0 (= ${binary:Version}),
+         ${shlibs:Depends},
+         ${misc:Depends}
+Replaces: compiz-plugins (<< 1:0.9.4+bzr20110606-0ubuntu3),
+          compiz-gnome (<< 1:0.8.4-4ubuntu1),
+          compiz-fusion-plugins-extra (<< 0.9.2.1-0ubuntu3)
+Description: OpenGL window and compositing manager - default plugins
+ Compiz brings to life a variety of visual effects that make the Linux desktop
+ easier to use, more powerful and intuitive, and more accessible for users
+ with special needs.
+ .
+ This package contains the default compiz plugins we activate in ubuntu coming
+ with core compiz.
+
+Package: compiz-plugins
+Architecture: any
+Depends: compiz-core (= ${binary:Version}),
+         compiz-plugins-default (= ${binary:Version}),
+         ${shlibs:Depends},
+         ${misc:Depends}
+Replaces: compiz-gnome (<< 1:0.8.4-4ubuntu1)
+Description: OpenGL window and compositing manager - plugins
+ Compiz brings to life a variety of visual effects that make the Linux desktop
+ easier to use, more powerful and intuitive, and more accessible for users
+ with special needs.
+ .
+ This package contains the standard plugins that come with compiz.
+
+Package: libdecoration0
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Compiz window decoration library
+ The window decoration library is responsible for drawing the window borders
+ and title bar of windows managed by Compiz. It is used by window decorators
+ like gtk-window-decorator and kde-window-decorator.
+
+Package: libdecoration0-dev
+Section: libdevel
+Architecture: any
+Depends: libdecoration0 (= ${binary:Version}), ${misc:Depends}, libx11-dev, libxrender-dev (>= 1:0.9.1)
+Description: Compiz window decoration library - development files
+ The window decoration library is responsible for drawing the window borders
+ and title bar of windows managed by Compiz. It is used by window decorators
+ like gtk-window-decorator and kde-window-decorator.
+ .
+ This package contains files required for developing window decorators
+ compatible with Compiz.
+
+# vim: tw=0

=== added file 'debian/copyright'
--- debian/copyright	1970-01-01 00:00:00 +0000
+++ debian/copyright	2011-06-15 05:26:31 +0000
@@ -0,0 +1,131 @@
+This package was debianized by Thierry Reding <thierry@xxxxxxxx> on
+Fri, 18 Aug 2006 09:46:24 +0200.
+
+It was downloaded from http://xorg.freedesktop.org/releases/individual/app.
+
+Upstream author: David Reveman <davidr@xxxxxxxxxx>
+Contributors:
+    Radek Doulik <rodo@xxxxxxxxxx>
+    Jeremy C. Reed <reed@xxxxxxxxxxxxx>
+    Dan Winship <danw@xxxxxxxxxx>
+    Kristian Høgsberg <krh@xxxxxxxxxx>
+
+------------------------------------------------------------------------------
+
+The original source tarball was repackaged to remove the following generated
+and/or unused files:
+
+	kde/window-decorator/*.moc.cpp
+	kde/window-decorator/KWinInterface_skel.cpp
+	po/*.gmo
+
+------------------------------------------------------------------------------
+
+Copyright:
+
+This software is copyright © 2005, 2006 Novell, Inc.
+
+You can redistribute this software and/or modify it under the terms of the GNU
+General Public License as published by the Free Software Foundation; version 2
+dated June, 1991.
+
+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.
+
+------------------------------------------------------------------------------
+
+The convertProperty / convert_property and handleSelectionRequest /
+handle_selection_request functions in 'src/display.c' and
+'gtk/window-decorator/gtk-window-decorator.c' are taken from the source code
+of fvwm2 and copyright © Matthias Clasen and Dominik Vogt.
+
+Parts of the code in 'src/window.c':
+
+    /* Ater gdk_window_constrain_size(), which is partially borrowed from fvwm.
+     *
+     * Copyright 1993, Robert Nation
+     *     You may use this code for any purpose, as long as the original
+     *     copyright remains in the source code and all documentation
+     *
+     * which in turn borrows parts of the algorithm from uwm
+     */
+
+------------------------------------------------------------------------------
+-- Plugins: --
+--------------
+
+Skydome support for the 'cube' plugin was written by Mirco Müller
+<macslow@xxxxxxxxxx>.
+
+For the 'place' plugin:
+
+    /*
+     * Copyright (C) 2001 Havoc Pennington
+     * Copyright (C) 2002, 2003 Red Hat, Inc.
+     * Copyright (C) 2003 Rob Adams
+     * Copyright (C) 2005 Novell, Inc.
+     *
+     * 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., 51 Franklin St, Fifth Floor, Boston, MA
+     * 02110-1301, USA.
+     */
+
+The 'plane' plugin was written by Søren Sandmann <sandmann@xxxxxxxxxx>:
+
+    /*
+     * Copyright © 2006 Red Hat, 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
+     * Red Hat, Inc. not be used in advertising or publicity pertaining to
+     * distribution of the software without specific, written prior permission.
+     * Red Hat, Inc. makes no representations about the suitability of this
+     * software for any purpose. It is provided "as is" without express or
+     * implied warranty.
+     *
+     * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+     * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+     * NO EVENT SHALL RED HAT, 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.
+     *
+     * Author: Søren Sandmann <sandmann@xxxxxxxxxx>
+     */
+
+------------------------------------------------------------------------------
+-- Translations: --
+-------------------
+
+The Finnish translation in 'po/fi.po' is copyright © 2003 SuSE Linux AG and ©
+2005 SUSE Linux Products GmbH.
+
+The Polish translation in 'po/pl.po' are copyright © 2005 SUSE Linux Products
+GmbH.
+
+The makefile 'po/Makefile.in.in' is copyright © 1995, 1996, 1997 by Ulrich
+Drepper <drepper@xxxxxxxxxxxxxx>.
+
+------------------------------------------------------------------------------
+
+The Debian packaging is copyright © 2006, 2007 by Thierry Reding
+<thierry@xxxxxxxx> and is licensed under the GPL, see
+`/usr/share/common-licenses/GPL'.
+

=== added file 'debian/gbp.conf'
--- debian/gbp.conf	1970-01-01 00:00:00 +0000
+++ debian/gbp.conf	2011-06-15 05:26:31 +0000
@@ -0,0 +1,8 @@
+[DEFAULT]
+debian-branch = debian-unstable
+debian-tag = compiz-%(version)s
+upstream-branch = upstream-unstable
+upstream-tag = compiz-%(version)s
+
+[git-dch]
+meta = 1

=== added file 'debian/gtk-window-decorator.1'
--- debian/gtk-window-decorator.1	1970-01-01 00:00:00 +0000
+++ debian/gtk-window-decorator.1	2011-06-15 05:26:31 +0000
@@ -0,0 +1,30 @@
+.TH GTK-WINDOW-DECORATOR 1 "September 25, 2006"
+.SH NAME
+gtk-window-decorator \- Compiz window decorator using the Gtk toolkit
+.SH SYNOPSIS
+.B gtk-window-decorator
+.RI [ options ]
+.SH DESCRIPTION
+.B gtk-window-decorator
+is a window decorator for
+.B compiz
+that uses the Gtk toolkit to provide a look and feel similar to that of the
+metacity window manager.
+.SH OPTIONS
+.B gtk-window-decorator
+accepts the following options:
+.TP
+.BI \-\-minimal
+Runs only with minimal window decorations.
+.TP
+.BI \-\-replace
+Replaces any running window decorator.
+.TP
+.BI \-\-help
+Prints the list of accepted options.
+.SH AUTHOR
+gtk-window-decorator was written by David Reveman <davidr@xxxxxxxxxx> and
+others.
+.PP
+This manual page was written by Thierry Reding <thierry@xxxxxxxx>,
+for the Debian project (but may be used by others).

=== added file 'debian/kde4-window-decorator.1'
--- debian/kde4-window-decorator.1	1970-01-01 00:00:00 +0000
+++ debian/kde4-window-decorator.1	2011-06-15 05:26:31 +0000
@@ -0,0 +1,40 @@
+.TH KDE4-WINDOW-DECORATOR 1 "January 3, 2007"
+.SH NAME
+kde4-window-decorator \- Compiz window decorator for the KDE desktop
+environment
+.SH SYNOPSIS
+.B kde4-window-decorator
+.RI [ options ]
+.SH DESCRIPTION
+.B kde4-window-decorator
+is a window decorator for
+.B compiz
+that provides a look and feel similar to that of the default KDE window
+manager.
+.SH OPTIONS
+.B kde4-window-decorator
+accepts the following options:
+.TP
+.BI \-\-replace
+Replaces any running window decorator.
+.TP
+.BI \-\-opacity " float"
+Sets the decoration opacity (range: 0.0\-1.0, default: 0.75).
+.TP
+.BI \-\-no-opacity-shade
+Disables opacity shading for decorations.
+.TP
+.BI \-\-active-opacity " float"
+Sets the opacity for active decorations (range: 0.0\-1.0, default: 1.0).
+.TP
+.BI \-\-no-active-opacity-shade
+Disables opacity shading for active decorations.
+.TP
+.BI \-\-help
+Prints the list of accepted options.
+.SH AUTHOR
+kde4-window-decorator was written by David Reveman <davidr@xxxxxxxxxx> and
+others.
+.PP
+This manual page was written by Thierry Reding <thierry@xxxxxxxx>,
+for the Debian project (but may be used by others).

=== added file 'debian/libdecoration0-dev.docs'
--- debian/libdecoration0-dev.docs	1970-01-01 00:00:00 +0000
+++ debian/libdecoration0-dev.docs	2011-06-15 05:26:31 +0000
@@ -0,0 +1,4 @@
+AUTHORS
+NEWS
+README
+TODO

=== added file 'debian/libdecoration0-dev.install'
--- debian/libdecoration0-dev.install	1970-01-01 00:00:00 +0000
+++ debian/libdecoration0-dev.install	2011-06-15 05:26:31 +0000
@@ -0,0 +1,3 @@
+debian/tmp/usr/include/compiz/decoration.h
+debian/tmp/usr/lib/libdecoration.so
+debian/tmp/usr/lib/pkgconfig/libdecoration.pc

=== added file 'debian/libdecoration0.docs'
--- debian/libdecoration0.docs	1970-01-01 00:00:00 +0000
+++ debian/libdecoration0.docs	2011-06-15 05:26:31 +0000
@@ -0,0 +1,4 @@
+AUTHORS
+NEWS
+README
+TODO

=== added file 'debian/libdecoration0.install'
--- debian/libdecoration0.install	1970-01-01 00:00:00 +0000
+++ debian/libdecoration0.install	2011-06-15 05:26:31 +0000
@@ -0,0 +1,1 @@
+debian/tmp/usr/lib/libdecoration*.so.*

=== added file 'debian/libdecoration0.symbols'
--- debian/libdecoration0.symbols	1970-01-01 00:00:00 +0000
+++ debian/libdecoration0.symbols	2011-06-15 05:26:31 +0000
@@ -0,0 +1,29 @@
+libdecoration.so.0 libdecoration0 #MINVER#
+ decor_acquire_dm_session@Base 1:0.9.2.1
+ decor_apply_gravity@Base 1:0.9.2.1
+ decor_blend_border_picture@Base 1:0.9.2.1
+ decor_draw_simple@Base 1:0.9.2.1
+ decor_fill_picture_extents_with_shadow@Base 1:0.9.2.1
+ decor_gen_window_property@Base 1:0.9.2.1
+ decor_get_best_layout@Base 1:0.9.2.1
+ decor_get_default_layout@Base 1:0.9.2.1
+ decor_handle_selection_clear@Base 1:0.9.2.1
+ decor_handle_selection_request@Base 1:0.9.2.1
+ decor_pixmap_property_to_quads@Base 1:0.9.2.1
+ decor_property_get_type@Base 1:0.9.2.1
+ decor_property_get_version@Base 1:0.9.2.1
+ decor_quads_to_property@Base 1:0.9.2.1
+ decor_region_to_blur_property@Base 1:0.9.2.1
+ decor_set_dm_check_hint@Base 1:0.9.2.1
+ decor_set_horz_quad_line@Base 1:0.9.2.1
+ decor_set_lSrS_window_quads@Base 1:0.9.2.1
+ decor_set_lSrStSbS_window_quads@Base 1:0.9.2.1
+ decor_set_lSrStSbX_window_quads@Base 1:0.9.2.1
+ decor_set_lSrStXbS_window_quads@Base 1:0.9.2.1
+ decor_set_lXrXtXbX_window_quads@Base 1:0.9.2.1
+ decor_set_vert_quad_row@Base 1:0.9.2.1
+ decor_shadow_create@Base 1:0.9.2.1
+ decor_shadow_destroy@Base 1:0.9.2.1
+ decor_shadow_reference@Base 1:0.9.2.1
+ decor_version@Base 1:0.9.2.1
+ decor_window_property@Base 1:0.9.2.1

=== added directory 'debian/patches'
=== added file 'debian/patches/018_use_metacity_settings.patch'
--- debian/patches/018_use_metacity_settings.patch	1970-01-01 00:00:00 +0000
+++ debian/patches/018_use_metacity_settings.patch	2011-06-15 05:26:31 +0000
@@ -0,0 +1,18 @@
+# Description: Use metacity control center applet instead of compiz one
+#  The rationale is that the ccp backend will transparently
+#  work with the metacity options under gnome.
+# Forwarded: not-needed
+# Origin: Ubuntu
+# Author: Michael Vogt <michael.vogt@xxxxxxxxxx>
+
+--- a/gtk/gnome/compiz.desktop.in
++++ b/gtk/gnome/compiz.desktop.in
+@@ -5,7 +5,7 @@
+ Exec=compiz
+ NoDisplay=true
+ # name of loadable control center module
+-X-GNOME-WMSettingsModule=compiz
++X-GNOME-WMSettingsModule=metacity
+ # autostart phase
+ X-GNOME-Autostart-Phase=WindowManager
+ X-GNOME-Provides=windowmanager

=== added file 'debian/patches/029_default_options.patch'
--- debian/patches/029_default_options.patch	1970-01-01 00:00:00 +0000
+++ debian/patches/029_default_options.patch	2011-06-15 05:26:31 +0000
@@ -0,0 +1,287 @@
+## Description: add some description
+## Origin/Author: add some origin or author
+## Bug: bug URL
+Author: Michael Vogt <michael.vogt@xxxxxxxxxx>
+Description: Various default settings
+ Changes in various defaults.  From what I can tell (these were originally
+ from ubuntu, but I (the debian maintainer) will do my best to summarize
+ them below).
+ .
+ * Desktop Horizontal virtual size of 2 instead of 4.
+ * Sync to vblank: false by default.
+ * Make an exception to focus prevention matching for PolicyKit windows.
+ * Remove top-right hotcorner from scale plugin by default.
+ * Increase drop-shadow radius from 8 to 9.
+ * Set default decorator to /usr/bin/compiz-decorator.
+ * Change default colors for faces in cube plugin.
+ * Use "Smart" placement mode (2) by default for placement plugin.
+ * Use "Rectangle" resize mode (2) by default for resize plugin.
+ * Add exception to not fade notify-osd windows in fade plugin.
+ .
+ The following changes from the original Ubuntu patch were modified:
+ * Use slightly more Debianish/Gnomeish colors for the cube face top.
+ The following changes from the original Ubuntu patch were not included:
+ * Add Ubuntu logo for top face of cube.
+ The following changes were introduced to the Debian version of this patch:
+ * Add Debian logo for top face of cube.
+Origin: vendor, ubuntu (1:0.6.0+git20071006-0ubuntu1) or perhaps earlier.
+Index: compiz-0.9.4+bzr20110407/metadata/core.xml.in
+===================================================================
+--- compiz-0.9.4+bzr20110407.orig/metadata/core.xml.in	2011-04-07 14:44:00.000000000 +0200
++++ compiz-0.9.4+bzr20110407/metadata/core.xml.in	2011-04-07 18:50:08.496431087 +0200
+@@ -145,7 +145,7 @@
+ 			<option name="focus_prevention_match" type="match">
+ 			<_short>Focus Prevention Windows</_short>
+ 			<_long>Focus prevention windows</_long>
+-			<default>any</default>
++			<default>!(class=Polkit-gnome-authentication-agent-1)</default>
+ 			</option>
+ 		</group>
+ 		<group>
+@@ -251,14 +251,14 @@
+ 			<option name="hsize" type="int">
+ 			<_short>Horizontal Virtual Size</_short>
+ 			<_long>Screen size multiplier for horizontal virtual size</_long>
+-			<default>4</default>
++			<default>2</default>
+ 			<min>1</min>
+ 			<max>32</max>
+ 			</option>
+ 			<option name="vsize" type="int">
+ 			<_short>Vertical Virtual Size</_short>
+ 			<_long>Screen size multiplier for vertical virtual size</_long>
+-			<default>1</default>
++			<default>2</default>
+ 			<min>1</min>
+ 			<max>32</max>
+ 			</option>
+Index: compiz-0.9.4+bzr20110407/plugins/scale/scale.xml.in
+===================================================================
+--- compiz-0.9.4+bzr20110407.orig/plugins/scale/scale.xml.in	2011-04-07 14:44:00.000000000 +0200
++++ compiz-0.9.4+bzr20110407/plugins/scale/scale.xml.in	2011-04-07 18:50:08.500431099 +0200
+@@ -18,14 +18,14 @@
+ 			<option name="spacing" type="int">
+ 				<_short>Spacing</_short>
+ 				<_long>Space between windows</_long>
+-				<default>10</default>
++				<default>68</default>
+ 				<min>0</min>
+ 				<max>250</max>
+ 			</option>
+ 			<option name="speed" type="float">
+ 				<_short>Speed</_short>
+ 				<_long>Scale speed</_long>
+-				<default>1.5</default>
++				<default>2.4</default>
+ 				<min>0.1</min>
+ 				<max>50</max>
+ 				<precision>0.1</precision>
+@@ -33,7 +33,7 @@
+ 			<option name="timestep" type="float">
+ 				<_short>Timestep</_short>
+ 				<_long>Scale timestep</_long>
+-				<default>1.2</default>
++				<default>0.1</default>
+ 				<min>0.1</min>
+ 				<max>50</max>
+ 				<precision>0.1</precision>
+@@ -46,7 +46,7 @@
+ 			<option name="opacity" type="int">
+ 				<_short>Opacity</_short>
+ 				<_long>Amount of opacity in percent</_long>
+-				<default>75</default>
++				<default>100</default>
+ 				<min>0</min>
+ 				<max>100</max>
+ 			</option>
+@@ -55,7 +55,7 @@
+ 				<_long>Overlay an icon on windows once they are scaled</_long>
+ 				<min>0</min>
+ 				<max>2</max>
+-				<default>1</default>
++				<default>0</default>
+ 				<desc>
+ 					<value>0</value>
+ 					<_name>None</_name>
+@@ -105,7 +105,7 @@
+ 			<option name="key_bindings_toggle" type="bool">
+ 			    <_short>Key Bindings Toggle Scale Mode</_short>
+ 			    <_long>Key bindings toggle scale mode instead of enabling it when pressed and disabling it when released.</_long>
+-			    <default>false</default>
++			    <default>true</default>
+ 			</option>
+ 			<option name="button_bindings_toggle" type="bool">
+ 			    <_short>Button Bindings Toggle Scale Mode</_short>
+@@ -115,9 +115,6 @@
+ 			<option name="initiate_edge" type="edge">
+ 				<_short>Initiate Window Picker</_short>
+ 				<_long>Layout and start transforming windows</_long>
+-				<default>
+-				<edge name="TopRight"/>
+-				</default>
+ 				<allowed edgednd="true"/>
+ 			</option>
+ 			<option name="initiate_key" type="key">
+@@ -141,6 +138,7 @@
+ 			<option name="initiate_all_key" type="key">
+ 				<_short>Initiate Window Picker For All Windows</_short>
+ 				<_long>Layout and start transforming all windows</_long>
++				<default>&lt;Super&gt;w</default>
+ 			</option>
+ 			<option name="initiate_group_edge" type="edge">
+ 				<_short>Initiate Window Picker For Window Group</_short>
+@@ -171,7 +169,7 @@
+ 			<option name="show_desktop" type="bool">
+ 				<_short>Click Desktop to Show Desktop</_short>
+ 				<_long>Enter Show Desktop mode when Desktop is clicked during Scale</_long>
+-				<default>true</default>
++				<default>false</default>
+ 			</option>
+ 	    </group>
+ 	</options>
+Index: compiz-0.9.4+bzr20110407/plugins/decor/decor.xml.in
+===================================================================
+--- compiz-0.9.4+bzr20110407.orig/plugins/decor/decor.xml.in	2011-04-07 14:44:00.000000000 +0200
++++ compiz-0.9.4+bzr20110407/plugins/decor/decor.xml.in	2011-04-07 18:50:08.500431099 +0200
+@@ -20,7 +20,7 @@
+ 	    <option name="shadow_radius" type="float">
+ 		<_short>Shadow Radius</_short>
+ 		<_long>Drop shadow radius</_long>
+-		<default>8.0</default>
++		<default>15.0</default>
+ 		<min>0.1</min>
+ 		<max>18.0</max>
+ 		<precision>0.1</precision>
+@@ -47,13 +47,14 @@
+ 	    <option name="shadow_y_offset" type="int">
+ 		<_short>Shadow Offset Y</_short>
+ 		<_long>Drop shadow Y offset</_long>
+-		<default>1</default>
++		<default>5</default>
+ 		<min>-16</min>
+ 		<max>16</max>
+ 	    </option>
+ 	    <option name="command" type="string">
+ 		<_short>Command</_short>
+ 		<_long>Decorator command line that is executed if no decorator is already running</_long>
++		<default>/usr/bin/compiz-decorator</default>
+ 	    </option>
+ 	    <option name="mipmap" type="bool">
+ 		<_short>Mipmap</_short>
+Index: compiz-0.9.4+bzr20110407/plugins/cube/cube.xml.in
+===================================================================
+--- compiz-0.9.4+bzr20110407.orig/plugins/cube/cube.xml.in	2011-04-07 14:44:00.000000000 +0200
++++ compiz-0.9.4+bzr20110407/plugins/cube/cube.xml.in	2011-04-07 18:50:08.500431099 +0200
+@@ -86,18 +86,18 @@
+ 				<_short>Top</_short>
+ 				<_long>Color of top face of the cube</_long>
+ 				<default>
+-					<red>0xffff</red>
+-					<green>0xffff</green>
+-					<blue>0xffff</blue>
++					<red>0xcdcd</red>
++					<green>0xbebe</green>
++					<blue>0x7070</blue>
+ 				</default>
+ 			</option>
+ 			<option name="bottom_color" type="color">
+ 				<_short>Bottom</_short>
+ 				<_long>Color of bottom face of the cube</_long>
+ 				<default>
+-					<red>0xffff</red>
+-					<green>0xffff</green>
+-					<blue>0xffff</blue>
++					<red>0xcdcd</red>
++					<green>0xbebe</green>
++					<blue>0x7070</blue>
+ 				</default>
+ 			</option>
+ 			</subgroup>
+@@ -112,6 +112,7 @@
+ 			<_short>Skydome Image</_short>
+ 			<_long>Image to use as texture for the skydome</_long>
+ 			<hints>file;image;</hints>
++			<default><value>/usr/share/gdm/themes/Human/ubuntu.png</value></default>
+ 			</option>
+ 			<option name="skydome_animated" type="bool">
+ 			<_short>Animate Skydome</_short>
+Index: compiz-0.9.4+bzr20110407/plugins/place/place.xml.in
+===================================================================
+--- compiz-0.9.4+bzr20110407.orig/plugins/place/place.xml.in	2011-04-07 14:44:00.000000000 +0200
++++ compiz-0.9.4+bzr20110407/plugins/place/place.xml.in	2011-04-07 18:50:08.500431099 +0200
+@@ -19,7 +19,7 @@
+ 	    <option name="mode" type="int">
+ 		<_short>Placement Mode</_short>
+ 		<_long>Algorithm to use for window placement</_long>
+-		<default>0</default>
++		<default>2</default>
+ 		<min>0</min>
+ 		<max>5</max>
+ 		<desc>
+Index: compiz-0.9.4+bzr20110407/plugins/resize/resize.xml.in
+===================================================================
+--- compiz-0.9.4+bzr20110407.orig/plugins/resize/resize.xml.in	2011-04-07 14:44:00.000000000 +0200
++++ compiz-0.9.4+bzr20110407/plugins/resize/resize.xml.in	2011-04-07 18:50:32.296549111 +0200
+@@ -123,7 +123,7 @@
+ 	    <option name="mode" type="int">
+ 		<_short>Default Resize Mode</_short>
+ 		<_long>Default mode used for window resizing</_long>
+-		<default>0</default>
++		<default>2</default>
+ 		<min>0</min>
+ 		<max>3</max>
+ 		<desc>
+@@ -147,9 +147,9 @@
+ 		<_short>Border Color</_short>
+ 		<_long>Border color used for outline and rectangle resize modes</_long>
+ 		<default>
+-		    <red>0x2f2f</red>
+-		    <green>0x2f2f</green>
+-		    <blue>0x4f4f</blue>
++		    <red>0xfbfb</red>
++		    <green>0x8b8b</green>
++		    <blue>0x0</blue>
+ 		    <alpha>0x9f9f</alpha>
+ 		</default>
+ 	    </option>
+@@ -157,10 +157,10 @@
+ 		<_short>Fill Color</_short>
+ 		<_long>Fill color used for rectangle resize mode</_long>
+ 		<default>
+-		    <red>0x2f2f</red>
+-		    <green>0x2f2f</green>
+-		    <blue>0x4f4f</blue>
+-		    <alpha>0x4f4f</alpha>
++		    <red>0xfbfb</red>
++		    <green>0x8b8b</green>
++		    <blue>0x0</blue>
++		    <alpha>0x1919</alpha>
+ 		</default>
+ 	    </option>
+ 	    <option name="normal_match" type="match">
+Index: compiz-0.9.4+bzr20110407/plugins/fade/fade.xml.in
+===================================================================
+--- compiz-0.9.4+bzr20110407.orig/plugins/fade/fade.xml.in	2011-04-07 14:44:00.000000000 +0200
++++ compiz-0.9.4+bzr20110407/plugins/fade/fade.xml.in	2011-04-07 18:50:08.504431114 +0200
+@@ -49,7 +49,7 @@
+ 	    <option name="window_match" type="match">
+ 		<_short>Fade windows</_short>
+ 		<_long>Windows that should be fading</_long>
+-		<default>any</default>
++                <default>any &amp; !(title=notify-osd)</default>
+ 	    </option>
+ 	    <option name="visual_bell" type="bool">
+ 		<_short>Visual Bell</_short>
+Index: compiz-0.9.4+bzr20110407/plugins/opengl/opengl.xml.in
+===================================================================
+--- compiz-0.9.4+bzr20110407.orig/plugins/opengl/opengl.xml.in	2011-04-07 14:44:00.000000000 +0200
++++ compiz-0.9.4+bzr20110407/plugins/opengl/opengl.xml.in	2011-04-07 18:50:08.504431114 +0200
+@@ -31,7 +31,7 @@
+ 	    <option name="lighting" type="bool">
+ 		<_short>Lighting</_short>
+ 		<_long>Use diffuse light when screen is transformed</_long>
+-		<default>true</default>
++		<default>false</default>
+ 	    </option>
+ 	    <option name="sync_to_vblank" type="bool">
+ 		<_short>Sync To VBlank</_short>

=== added file 'debian/patches/02_add_debug_spewer_for_apport.patch'
--- debian/patches/02_add_debug_spewer_for_apport.patch	1970-01-01 00:00:00 +0000
+++ debian/patches/02_add_debug_spewer_for_apport.patch	2011-06-15 05:26:31 +0000
@@ -0,0 +1,850 @@
+From 36ffb13299d48e51f6e9b8d2a48b71b95099982e Mon Sep 17 00:00:00 2001
+From: Sam Spilsbury <smspillaz@xxxxxxxxx>
+Date: Thu, 13 Jan 2011 15:25:10 +0800
+Subject: [PATCH] Add debug spewer for apport
+
+---
+ include/core/screen.h                           |    4 +-
+ include/core/window.h                           |    2 +
+ plugins/composite/include/composite/composite.h |    4 +
+ plugins/debugspew/CMakeLists.txt                |    5 +
+ plugins/debugspew/debugspew.xml.in              |   24 +
+ plugins/debugspew/src/debugspew.cpp             |  637 +++++++++++++++++++++++
+ plugins/debugspew/src/debugspew.h               |   55 ++
+ plugins/opengl/include/opengl/opengl.h          |    4 +
+ src/privatescreen.h                             |    1 +
+ 9 files changed, 735 insertions(+), 1 deletions(-)
+ create mode 100644 plugins/debugspew/CMakeLists.txt
+ create mode 100644 plugins/debugspew/debugspew.xml.in
+ create mode 100644 plugins/debugspew/src/debugspew.cpp
+ create mode 100644 plugins/debugspew/src/debugspew.h
+
+Index: compiz-0.9.4+bzr20110408/include/core/screen.h
+===================================================================
+--- compiz-0.9.4+bzr20110408.orig/include/core/screen.h	2011-04-08 20:24:35.000000000 +0200
++++ compiz-0.9.4+bzr20110408/include/core/screen.h	2011-04-08 20:28:48.015042112 +0200
+@@ -409,11 +409,13 @@
+ 	friend class CompTimeoutSource;
+ 	friend class CompManager;
+ 	friend class CompWatchFd;
++	friend class SpewScreen;
++	friend class SpewWindow;
+ 
+     private:
+ 	PrivateScreen *priv;
+ 
+-    public :
++    public:
+ 
+ 	static bool showDesktop (CompAction         *action,
+ 				 CompAction::State  state,
+Index: compiz-0.9.4+bzr20110408/include/core/window.h
+===================================================================
+--- compiz-0.9.4+bzr20110408.orig/include/core/window.h	2011-04-08 20:24:35.000000000 +0200
++++ compiz-0.9.4+bzr20110408/include/core/window.h	2011-04-08 20:28:48.015042112 +0200
+@@ -555,6 +555,8 @@
+ 	friend class PrivateScreen;
+ 	friend class ModifierHandler;
+ 	friend class CoreWindow;
++	friend class SpewScreen;
++	friend class SpewWindow;
+ 
+     private:
+ 
+Index: compiz-0.9.4+bzr20110408/plugins/composite/include/composite/composite.h
+===================================================================
+--- compiz-0.9.4+bzr20110408.orig/plugins/composite/include/composite/composite.h	2011-04-08 20:24:35.000000000 +0200
++++ compiz-0.9.4+bzr20110408/plugins/composite/include/composite/composite.h	2011-04-08 20:28:48.019042123 +0200
+@@ -221,6 +221,8 @@
+ 		      getWindowPaintList);
+ 
+ 	friend class PrivateCompositeDisplay;
++	friend class SpewScreen;
++	friend class SpewWindow;
+ 
+     private:
+ 	PrivateCompositeScreen *priv;
+@@ -406,6 +408,8 @@
+ 
+ 	friend class PrivateCompositeWindow;
+ 	friend class CompositeScreen;
++	friend class SpewScreen;
++	friend class SpewWindow;
+ 
+     private:
+ 	PrivateCompositeWindow *priv;
+Index: compiz-0.9.4+bzr20110408/plugins/debugspew/CMakeLists.txt
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ compiz-0.9.4+bzr20110408/plugins/debugspew/CMakeLists.txt	2011-04-08 20:28:48.019042123 +0200
+@@ -0,0 +1,5 @@
++find_package (Compiz REQUIRED)
++
++include (CompizPlugin)
++
++compiz_plugin (debugspew PLUGINDEPS composite opengl)
+Index: compiz-0.9.4+bzr20110408/plugins/debugspew/debugspew.xml.in
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ compiz-0.9.4+bzr20110408/plugins/debugspew/debugspew.xml.in	2011-04-08 20:28:48.019042123 +0200
+@@ -0,0 +1,24 @@
++<compiz>
++    <plugin name="debugspew" useBcop="true">
++    <_short>Debug Spewer</_short>
++    <_long>Spew debugging information about the current state to a file</_long>
++    <deps>
++      <requirement>
++        <plugin>composite</plugin>
++        <plugin>opengl</plugin>
++      </requirement>
++    </deps>
++    <options>
++	<option name="spew_key" type="key">
++	<_short>Spew Key</_short>
++	<_long>Keybinding to spew the current compiz state</_long>
++	<default></default>
++	</option>
++	<option name="spew_on_fatal" type="bool">
++	<_short>Spew on Fatal errors</_short>
++	<_long>Spew when a plugin indicates that something is going wrong</_long>
++	<default>True</default>
++	</option>
++    </options>
++    </plugin>
++</compiz>
+Index: compiz-0.9.4+bzr20110408/plugins/debugspew/src/debugspew.cpp
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ compiz-0.9.4+bzr20110408/plugins/debugspew/src/debugspew.cpp	2011-04-08 20:28:48.019042123 +0200
+@@ -0,0 +1,637 @@
++#include "debugspew.h"
++#include "../../src/privatescreen.h"
++#include "../../src/privatewindow.h"
++#include "../../plugins/composite/src/privates.h"
++#include "../../plugins/opengl/src/privates.h"
++
++#include <signal.h>
++#include <stdio.h>
++#include <fcntl.h>
++
++COMPIZ_PLUGIN_20090315 (debugspew, SpewPluginVTable);
++
++static void
++handle_crash (int sig)
++{
++    SpewScreen *ss = SpewScreen::get (screen);
++
++    signal (SIGSEGV, SIG_DFL);
++    signal (SIGFPE, SIG_DFL);
++    signal (SIGILL, SIG_DFL);
++    signal (SIGABRT, SIG_DFL);
++
++    ss->spew ();
++
++    raise (sig); // die
++}
++
++void
++SpewWindow::spew (CompString &f)
++{
++    f = f + compPrintf (" == Window Information 0x%x==\n", w->id ());
++    f = f + compPrintf ("  Geometry received from server: x %i y %i w %i h %i b %i\n", w->geometry ().x (), w->geometry ().y (), w->geometry ().width (), w->geometry ().height (), w->geometry ().border ());
++    f = f + compPrintf ("  Geometry last sent to server: x %i y %i w %i h %i b %i\n", w->serverGeometry ().x (), w->serverGeometry ().y (), w->serverGeometry ().width (), w->serverGeometry ().height (), w->serverGeometry ().border ());
++    f = f + compPrintf ("  Input Rect: x %i y %i w %i h %i\n", w->inputRect ().x (), w->inputRect ().y (), w->inputRect ().width (), w->inputRect ().height ());
++    f = f + compPrintf ("  Output Rect: x %i y %i w %i h %i\n", w->outputRect ().x (), w->outputRect ().y (), w->outputRect ().width (), w->outputRect ().height ());
++    f = f + compPrintf ("  Window id 0x%x Reparented into Wrapper id 0x%x Reparented into Frame id 0x%x\n", w->id (), w->priv->wrapper, w->priv->frame);
++    if (w->resName ().size ())
++	f = f + compPrintf ("  Window name: %s\n", w->resName ().c_str ());
++    f = f + compPrintf ("  === WINDOW REGION ===\n");
++    f = f + compPrintf ("   Bounding Rect: %i %i %i %i\n", w->region ().boundingRect ().x (), w->region ().boundingRect ().y (), w->region ().boundingRect ().width (),w->region ().boundingRect ().height ());
++    foreach (const CompRect &r, w->region ().rects ())
++	f = f + compPrintf ("   Rect: %i %i %i %i\n", r.x (), r.y (), r.width (), r.height ());
++    f = f + compPrintf ("  === WINDOW FRAME REGION ===\n");
++    f = f + compPrintf ("   Bounding Rect: %i %i %i %i\n", w->frameRegion ().boundingRect ().x (), w->frameRegion ().boundingRect ().y (), w->frameRegion ().boundingRect ().width (),w->frameRegion ().boundingRect ().height ());
++    foreach (const CompRect &r, w->frameRegion ().rects ())
++	f = f + compPrintf ("   Rect: %i %i %i %i\n", r.x (), r.y (), r.width (), r.height ());
++    f = f + compPrintf ("  Set _NET_WM_WINDOW_TYPE: ");
++
++#define SPEW_WINDOW_TYPE(type) \
++    case type: \
++	f = f + compPrintf (#type) + compPrintf ("\n"); \
++	break; \
++
++    switch (w->wmType ())
++    {
++	SPEW_WINDOW_TYPE (CompWindowTypeDesktopMask)
++	SPEW_WINDOW_TYPE (CompWindowTypeDockMask)
++	SPEW_WINDOW_TYPE (CompWindowTypeToolbarMask)
++	SPEW_WINDOW_TYPE (CompWindowTypeMenuMask)
++	SPEW_WINDOW_TYPE (CompWindowTypeUtilMask)
++	SPEW_WINDOW_TYPE (CompWindowTypeSplashMask)
++	SPEW_WINDOW_TYPE (CompWindowTypeDialogMask)
++	SPEW_WINDOW_TYPE (CompWindowTypeNormalMask)
++	SPEW_WINDOW_TYPE (CompWindowTypeDropdownMenuMask)
++	SPEW_WINDOW_TYPE (CompWindowTypePopupMenuMask)
++	SPEW_WINDOW_TYPE (CompWindowTypeTooltipMask)
++	SPEW_WINDOW_TYPE (CompWindowTypeNotificationMask)
++	SPEW_WINDOW_TYPE (CompWindowTypeComboMask)
++	SPEW_WINDOW_TYPE (CompWindowTypeDndMask)
++	SPEW_WINDOW_TYPE (CompWindowTypeModalDialogMask)
++	SPEW_WINDOW_TYPE (CompWindowTypeFullscreenMask)
++	SPEW_WINDOW_TYPE (CompWindowTypeUnknownMask)
++	default:
++	    f = f + compPrintf ("WARNING: Typeless window\n");
++	    break;
++    }
++
++#define SPEW_INTERNAL_TYPE(type) \
++    case type: \
++	f = f + compPrintf (#type) + compPrintf ("\n"); \
++	break; \
++
++    f = f + compPrintf ("  Internal Type: ");
++
++    switch (w->type ())
++    {
++	SPEW_INTERNAL_TYPE (CompWindowTypeDesktopMask)
++	SPEW_INTERNAL_TYPE (CompWindowTypeDockMask)
++	SPEW_INTERNAL_TYPE (CompWindowTypeToolbarMask)
++	SPEW_INTERNAL_TYPE (CompWindowTypeMenuMask)
++	SPEW_INTERNAL_TYPE (CompWindowTypeUtilMask)
++	SPEW_INTERNAL_TYPE (CompWindowTypeSplashMask)
++	SPEW_INTERNAL_TYPE (CompWindowTypeDialogMask)
++	SPEW_INTERNAL_TYPE (CompWindowTypeNormalMask)
++	SPEW_INTERNAL_TYPE (CompWindowTypeDropdownMenuMask)
++	SPEW_INTERNAL_TYPE (CompWindowTypePopupMenuMask)
++	SPEW_INTERNAL_TYPE (CompWindowTypeTooltipMask)
++	SPEW_INTERNAL_TYPE (CompWindowTypeNotificationMask)
++	SPEW_INTERNAL_TYPE (CompWindowTypeComboMask)
++	SPEW_INTERNAL_TYPE (CompWindowTypeDndMask)
++	SPEW_INTERNAL_TYPE (CompWindowTypeModalDialogMask)
++	SPEW_INTERNAL_TYPE (CompWindowTypeFullscreenMask)
++	SPEW_INTERNAL_TYPE (CompWindowTypeUnknownMask)
++	default:
++	    f = f + compPrintf ("WARNING: Typeless window\n");
++	    break;
++    }
++
++    f = f + compPrintf ("  Window State: ");
++
++#define SPEW_WINDOW_STATE(state) \
++    case state: \
++	f = f + compPrintf (#state) + compPrintf (" "); \
++	break; \
++
++
++    switch (w->state ())
++    {
++	SPEW_WINDOW_STATE (CompWindowStateModalMask)
++	SPEW_WINDOW_STATE (CompWindowStateStickyMask)
++	SPEW_WINDOW_STATE (CompWindowStateMaximizedVertMask)
++	SPEW_WINDOW_STATE (CompWindowStateMaximizedHorzMask)
++	SPEW_WINDOW_STATE (CompWindowStateShadedMask)
++	SPEW_WINDOW_STATE (CompWindowStateSkipTaskbarMask)
++	SPEW_WINDOW_STATE (CompWindowStateSkipPagerMask)
++	SPEW_WINDOW_STATE (CompWindowStateHiddenMask)
++	SPEW_WINDOW_STATE (CompWindowStateFullscreenMask)
++	SPEW_WINDOW_STATE (CompWindowStateAboveMask)
++	SPEW_WINDOW_STATE (CompWindowStateBelowMask)
++	SPEW_WINDOW_STATE (CompWindowStateDemandsAttentionMask)
++	SPEW_WINDOW_STATE (CompWindowStateDisplayModalMask)
++	default:
++	    f = f + compPrintf ("Stateless window");
++	    break;
++    }
++
++    f = f + compPrintf ("\n");
++    f = f + compPrintf ("  Available  actions: ");
++
++#define SPEW_WINDOW_ACTIONS(action) \
++    if (w->actions () & action) \
++	f = f + compPrintf (#action) + compPrintf (" ");
++
++    {
++	SPEW_WINDOW_ACTIONS (CompWindowActionMoveMask)
++	SPEW_WINDOW_ACTIONS (CompWindowActionResizeMask)
++	SPEW_WINDOW_ACTIONS (CompWindowActionStickMask)
++	SPEW_WINDOW_ACTIONS (CompWindowActionMinimizeMask)
++	SPEW_WINDOW_ACTIONS (CompWindowActionMaximizeHorzMask)
++	SPEW_WINDOW_ACTIONS (CompWindowActionMaximizeVertMask)
++	SPEW_WINDOW_ACTIONS (CompWindowActionFullscreenMask)
++	SPEW_WINDOW_ACTIONS (CompWindowActionCloseMask)
++	SPEW_WINDOW_ACTIONS (CompWindowActionShadeMask)
++	SPEW_WINDOW_ACTIONS (CompWindowActionChangeDesktopMask)
++	SPEW_WINDOW_ACTIONS (CompWindowActionAboveMask)
++	SPEW_WINDOW_ACTIONS (CompWindowActionBelowMask)
++    }
++
++    f = f + compPrintf ("\n");
++    
++    f = f + compPrintf ("  WM Protocols :");
++
++#define SPEW_WINDOW_PROTOCOL(protocol) \
++    if (w->protocols () & protocol) \
++	f = f + compPrintf (#protocol) + compPrintf (" ");
++
++    {
++	SPEW_WINDOW_PROTOCOL (CompWindowProtocolDeleteMask)
++	SPEW_WINDOW_PROTOCOL (CompWindowProtocolTakeFocusMask)
++	SPEW_WINDOW_PROTOCOL (CompWindowProtocolPingMask)
++	SPEW_WINDOW_PROTOCOL (CompWindowProtocolSyncRequestMask)
++    }
++
++    f = f + compPrintf ("  Showdesktop mode: %i\n", w->inShowDesktopMode ());
++    f = f + compPrintf ("  Grabbed: %i\n", w->grabbed ());
++    f = f + compPrintf ("  Pending maps: %i\n", w->pendingMaps ());
++    f = f + compPrintf ("  Active Num: %i\n", w->activeNum ());
++    f = f + compPrintf ("  Struts:\n");
++    if (w->struts ())
++    {
++	f = f + compPrintf ("   Left: %i %i %i %i\n", w->struts ()->left.x, w->struts ()->left.y, w->struts ()->left.width, w->struts ()->left.height);
++	f = f + compPrintf ("   Left: %i %i %i %i\n", w->struts ()->right.x, w->struts ()->right.y, w->struts ()->right.width, w->struts ()->right.height);
++	f = f + compPrintf ("   Left: %i %i %i %i\n", w->struts ()->top.x, w->struts ()->top.y, w->struts ()->top.width, w->struts ()->top.height);
++	f = f + compPrintf ("   Left: %i %i %i %i\n", w->struts ()->bottom.x, w->struts ()->bottom.y, w->struts ()->bottom.width, w->struts ()->bottom.height);
++    }
++    f = f + compPrintf ("  SaveMask CWX %i CWY %i CWWidth %i CWHeight %i CWBorder %i CWStackMode %i CWSibling %i\n", w->saveMask () & CWX, w->saveMask () & CWY, w->saveMask () & CWWidth, w->saveMask () & CWHeight, w->saveMask () & CWBorderWidth, w->saveMask () & CWStackMode, w->saveMask () & CWSibling);
++    f = f + compPrintf ("  Save Window Changes x %i y %i width %i height %i border %i stack_mode %i sibling 0x%x\n", w->saveWc ().x, w->saveWc ().y, w->saveWc ().width, w->saveWc ().height, w->saveWc ().border_width, w->saveWc ().stack_mode, w->saveWc ().sibling);
++    f = f + compPrintf ("  Startup Notification Id %s\n", w->startupId ());
++    f = f + compPrintf ("  Desktop: %i\n", w->desktop ());
++    f = f + compPrintf ("  ClientLeader (ancestor): 0x%x\n", w->clientLeader (true));
++    f = f + compPrintf ("  ClientLeader (non-ancestor): 0x%x\n", w->clientLeader (false));
++    //f = f + compPrintf ("Sync Alarm TODO\n");
++    f = f + compPrintf ("  Default viewport %i %i\n", w->defaultViewport ().x (), w->defaultViewport ().y ());
++    f = f + compPrintf ("  Initial viewport %i %i\n", w->initialViewport ().x (), w->initialViewport ().y ());
++    f = f + compPrintf ("  Window icon : Geometry with width %i height %i\n", w->iconGeometry ().width (), w->iconGeometry ().height ());
++    f = f + compPrintf ("  OutputDevice %i\n", w->outputDevice ());
++    f = f + compPrintf ("  On current desktop: %i\n", w->onCurrentDesktop ());
++    f = f + compPrintf ("  OnAllViewports %i\n", w->onAllViewports ());
++    f = f + compPrintf ("  Transient window 0x%x\n", w->transientFor ());
++    f = f + compPrintf ("  Pending unmaps 0x%x\n", w->pendingUnmaps ());
++    f = f + compPrintf ("  Placed window: %i\n", w->placed ());
++    f = f + compPrintf ("  Shaded: %i\n", w->shaded ());
++    f = f + compPrintf ("  Input extents %i %i %i %i\n", w->input ().left, w->input ().right, w->input ().top, w->input ().bottom);
++    f = f + compPrintf ("  Output Extents %i %i %i %i\n", w->input ().left, w->input ().right, w->input ().top, w->input ().bottom);
++    //f = f + compPrintf ("  Size Hints %i %i %i %i \n");
++    f = f + compPrintf ("  Destroyed window %i\n", w->destroyed ());
++    f = f + compPrintf ("  Inivisible window %i \n", w->invisible ());
++    f = f + compPrintf ("  Waiting for sync %i\n", w->syncWait ());
++    f = f + compPrintf ("  Alive window %i\n", w->alive ());
++    f = f + compPrintf ("  Override Redirect %i\n", w->overrideRedirect ());
++    f = f + compPrintf ("  Window is mapped %i\n", w->isMapped ());
++    f = f + compPrintf ("  Window is viewable %i\n", w->isViewable ());
++    f = f + compPrintf ("  Window class %i\n", w->windowClass ());
++    f = f + compPrintf ("  Window depth %i\n", w->depth ());
++
++#define SPEW_MWM_DECOR(decor) \
++    if (w->mwmDecor () & decor) \
++	f = f + compPrintf (#decor) + compPrintf (" ");
++
++    f = f + compPrintf ("Motif WM Decor \n");
++
++    SPEW_MWM_DECOR (MwmDecorAll);
++    SPEW_MWM_DECOR (MwmDecorBorder);
++    SPEW_MWM_DECOR (MwmDecorHandle);
++    SPEW_MWM_DECOR (MwmDecorTitle);
++    SPEW_MWM_DECOR (MwmDecorMenu);
++    SPEW_MWM_DECOR (MwmDecorMinimize);
++    SPEW_MWM_DECOR (MwmDecorMaximize);
++
++    f = f + compPrintf ("MOTIF WM Func \n");
++
++#define SPEW_MWM_FUNC(func) \
++    if (w->mwmFunc () & func) \
++	f = f + compPrintf (#func) + compPrintf (" ");
++
++    SPEW_MWM_FUNC (MwmFuncAll);
++    SPEW_MWM_FUNC (MwmFuncResize);
++    SPEW_MWM_FUNC (MwmFuncMove);
++    SPEW_MWM_FUNC (MwmFuncIconify);
++    SPEW_MWM_FUNC (MwmFuncClose);
++
++    f = f + compPrintf ("\n   === PRIVATE WINDOW ===\n");
++    f = f + compPrintf ("    MapNum: %i\n", w->priv->mapNum);
++    f = f + compPrintf ("    ActiveNum: %i\n", w->priv->activeNum);
++    f = f + compPrintf ("    Window attributes x %i y %i width %i height %i border_width %i depth %i visual 0x%x root 0x%x 0x%x bit_grabity 0x%x win_grabity 0x%x " \
++		"colormap 0x%x map_installed %i map_state %i event_masks 0x%x all_event_masks 0x%x, do_not_protogate_mask 0x%x override_redirect %i\n",
++	     w->priv->attrib.x, w->priv->attrib.y,
++	     w->priv->attrib.width, w->priv->attrib.height, w->priv->attrib.border_width, w->priv->attrib.depth,
++	     w->priv->attrib.visual, w->priv->attrib.root, w->priv->attrib.bit_gravity, w->priv->attrib.win_gravity,
++	     &w->priv->attrib.colormap, w->priv->attrib.map_installed, w->priv->attrib.map_state, w->priv->attrib.your_event_mask,
++	     w->priv->attrib.all_event_masks, w->priv->attrib.your_event_mask,
++	     w->priv->attrib.do_not_propagate_mask, w->priv->attrib.override_redirect);
++    f = f + compPrintf ("    Size hints mask USPosition %i USSize %i PPosition %i PSize %i PMinSize %i  PMaxSize %i PResizeInc %i PAspect %i PBaseSize %i PWinGravity %i " \
++		" x %i y %i w %i h %i min_w %i  min_h %i " \
++	        " max_w %i max_h %i width_inc %i height_inc %i base_w %i base_h %i win_gravity 0x%x\n",
++	     w->priv->sizeHints.flags & USPosition, w->priv->sizeHints.flags & USSize,
++	     w->priv->sizeHints.flags & PPosition, w->priv->sizeHints.flags & PSize, w->priv->sizeHints.flags & PMinSize, w->priv->sizeHints.flags & PMaxSize,
++	     w->priv->sizeHints.flags & PResizeInc, w->priv->sizeHints.flags & PAspect, w->priv->sizeHints.flags & PBaseSize, w->priv->sizeHints.flags & PWinGravity,
++	     w->priv->sizeHints.x, w->priv->sizeHints.y, w->priv->sizeHints.width,
++	     w->priv->sizeHints.height, w->priv->sizeHints.min_width, w->priv->sizeHints.min_height,
++	     w->priv->sizeHints.max_width, w->priv->sizeHints.max_height, w->priv->sizeHints.width_inc, w->priv->sizeHints.height_inc,
++	     w->priv->sizeHints.base_width, w->priv->sizeHints.base_height, w->priv->sizeHints.win_gravity);
++    if (w->priv->hints)
++    {
++        f = f + compPrintf ("    WM hints mask InputHint %i StateHint %i IconPixmapHint %i IconWindowHint %i IconPositionHint %i IconMaskHint %i"\
++			"WindowGroupHint %i XUrgencyHint %i  input %i initial_state %i icon_window 0x%x icon_x %i icon_y %i window_group 0x%x\n",
++			w->priv->hints->flags & InputHint,
++			w->priv->hints->flags & StateHint, w->priv->hints->flags & IconPixmapHint,
++			w->priv->hints->flags & IconWindowHint,  w->priv->hints->flags & IconPositionHint,
++			w->priv->hints->flags & IconMaskHint, w->priv->hints->flags & WindowGroupHint, w->priv->hints->flags & XUrgencyHint,
++			w->priv->hints->input, w->priv->hints->initial_state,
++			w->priv->hints->icon_window, w->priv->hints->icon_x, w->priv->hints->icon_y, w->priv->hints->window_group);
++    }
++    f = f + compPrintf ("    InputHint %i\n", w->priv->inputHint);
++    f = f + compPrintf ("    Has alpha channel: %i\n", w->priv->alpha);
++    f = f + compPrintf ("    Input Region :\n");
++    foreach (const CompRect &r, w->frameRegion ().rects ())
++	f = f + compPrintf ("   Rect: %i %i %i %i\n", r.x (), r.y (), r.width (), r.height ());
++    f = f + compPrintf ("    Manged %i Unmanaged %i\n", w->priv->managed, w->priv->unmanaging);
++    f = f + compPrintf ("    Destroy refcount %i\n", w->priv->destroyRefCnt);
++    f = f + compPrintf ("    Unmap refcount %i\n", w->priv->unmapRefCnt);
++    f = f + compPrintf ("    Initial timestamp %i set %i\n", w->priv->initialTimestamp, w->priv->initialTimestampSet);
++    f = f + compPrintf ("    Hidden window %i\n", w->priv->hidden);
++    f = f + compPrintf ("    Grabbed %i\n", w->grabbed ());
++    f = f + compPrintf ("    Pending Unmaps %i\n", w->pendingUnmaps ());
++    f = f + compPrintf ("    Pending Maps %i\n", w->priv->pendingMaps);
++    f = f + compPrintf ("    Last pong from window %i\n", w->priv->lastPong);
++    f = f + compPrintf ("    Close requests: %i\n", w->priv->closeRequests);
++    f = f + compPrintf ("    Last close request time %i\n", w->priv->lastCloseRequestTime);
++
++    f = f + compPrintf ("= OPENGL WINDOW =\n");
++    f = f + compPrintf ("ClipRegion, bRect %i %i %i %i\n", gWindow->clip ().boundingRect ().x (), gWindow->clip ().boundingRect ().y (), gWindow->clip ().boundingRect ().width (), gWindow->clip ().boundingRect ().height ());
++    foreach (const CompRect &r, gWindow->clip ().rects ())
++	f = f + compPrintf (" Rect: %i %i %i %i\n", r.x (), r.y (), r.width (), r.height ());
++    f = f + compPrintf ("Current PAttrib opacity %i brightness %i saturation %i xScale %i yScale %i xTranslate %i, yTranslate %i\n", gWindow->paintAttrib ().opacity, gWindow->paintAttrib ().brightness, gWindow->paintAttrib ().saturation, gWindow->paintAttrib ().xScale, gWindow->paintAttrib ().yScale, gWindow->paintAttrib ().xTranslate, gWindow->paintAttrib ().yTranslate);
++    f = f + compPrintf ("Last PAttrib opacity %i brightness %i saturation %i xScale %i yScale %i xTranslate %i, yTranslate %i\n", gWindow->lastPaintAttrib ().opacity, gWindow->lastPaintAttrib ().brightness, gWindow->lastPaintAttrib ().saturation, gWindow->lastPaintAttrib ().xScale, gWindow->lastPaintAttrib ().yScale, gWindow->lastPaintAttrib ().xTranslate, gWindow->lastPaintAttrib ().yTranslate);
++
++#define SPEW_LAST_PAINT_MASK(mask) \
++    if (gWindow->lastMask () & mask) \
++	f = f + compPrintf (#mask) + compPrintf (" ");
++
++    SPEW_LAST_PAINT_MASK (PAINT_WINDOW_ON_TRANSFORMED_SCREEN_MASK);
++    SPEW_LAST_PAINT_MASK (PAINT_WINDOW_OCCLUSION_DETECTION_MASK);
++    SPEW_LAST_PAINT_MASK (PAINT_WINDOW_WITH_OFFSET_MASK);
++    SPEW_LAST_PAINT_MASK (PAINT_WINDOW_TRANSLUCENT_MASK);
++    SPEW_LAST_PAINT_MASK (PAINT_WINDOW_TRANSFORMED_MASK);
++    SPEW_LAST_PAINT_MASK (PAINT_WINDOW_NO_CORE_INSTANCE_MASK);
++    SPEW_LAST_PAINT_MASK (PAINT_WINDOW_BLEND_MASK);
++
++    f = f + compPrintf (" == TEXTURES ==\n");
++    foreach (GLTexture *tex, gWindow->textures ())
++    {
++	f = f + compPrintf ("  Texture name: %i target %i, matrix.xx %i matrix.xy %i, matrix.x0 %i matrix.yy %i, matrix.yx %i, matrix.y0 %i, mipmapping %i \n", tex->name (), tex->target (), tex->matrix ().xx, tex->matrix ().xy, tex->matrix ().x0, tex->matrix ().yy, tex->matrix ().yx, tex->matrix ().y0, tex->mipmap ());
++    }
++
++    GLTexture *tex = gWindow->getIcon (128, 128);
++
++    if (tex)
++	f = f + compPrintf (" Icon texture: name: %i target %i, matrix.xx %i matrix.xy %i, matrix.x0 %i matrix.yy %i, matrix.yx %i, matrix.y0 %i, mipmapping %i \n", tex->name (), tex->target (), tex->matrix ().xx, tex->matrix ().xy, tex->matrix ().x0, tex->matrix ().yy, tex->matrix ().yx, tex->matrix ().y0, tex->mipmap ());
++
++    f = f + compPrintf (" == GEOMETRY ==\n");
++    f = f + compPrintf ("  Vertex Size %i Vertex Stride %i\n", gWindow->geometry ().vertexSize, gWindow->geometry ().vertexStride);
++    for (int i  = 0; i < gWindow->geometry ().vertexSize; i++)
++	f = f + compPrintf ("Vertex %f\n", gWindow->geometry ().vertices[i]);
++    f = f + compPrintf ("  Index Size %i Index count %i \n", gWindow->geometry ().indexSize, gWindow->geometry ().indexCount);
++    for (int i  = 0; i < gWindow->geometry ().indexSize; i++)
++	f = f + compPrintf ("Vertex %f\n", gWindow->geometry ().indices[i]);
++    f = f + compPrintf ("  vCount %i texUnits %i texCoordSize %i\n", gWindow->geometry ().vCount, gWindow->geometry ().texUnits, gWindow->geometry ().texCoordSize);
++
++    f = f + compPrintf (" == REGIONS == \n");
++    foreach (CompRegion &reg, gWindow->priv->regions)
++    { 
++	f = f + compPrintf ("  Region, bRect %i %i %i %i\n", reg.boundingRect ().x (), reg.boundingRect ().y (), reg.boundingRect ().width (), reg.boundingRect ().height ());
++	foreach (const CompRect &r, reg.rects ())
++	{
++	    f = f + compPrintf ("   Rect: %i %i %i %i\n", r.x (), r.y (), r.width (), r.height ());
++	}
++    }
++
++    f = f + compPrintf ("== COMPOSITE WINDOW==\n");
++
++    f = f + compPrintf (" Pixmap id 0x%x\n", cWindow->pixmap ());
++
++    Window root;
++    int    x, y;
++    unsigned int width, height, border, depth;
++
++    if (XGetGeometry (screen->dpy (), cWindow->pixmap (), &root, &x, &y, &width, &height, &border, &depth))
++    {
++	f = f + compPrintf (" XGetGeometry succeeded: x %i y %i width %i height %i border %i depth %i\n", x, y, width, height, border, depth);
++    }
++    else
++    {
++	f = f + compPrintf (" XGetGeometry failed\n");
++    }
++
++    f = f + compPrintf (" redirected: %i\n", cWindow->redirected ());
++    f = f + compPrintf (" overlay: %i\n", cWindow->overlayWindow ());
++    f = f + compPrintf (" damaged: %i\n", cWindow->damaged ());
++    f = f + compPrintf (" bound: %i\n", !cWindow->priv->bindFailed);
++    f = f + compPrintf (" == DAMAGE RECTS ==\n");
++    f = f + compPrintf ("  current damage rect %i\n", cWindow->priv->nDamage);
++    for (int i = 0; i < cWindow->priv->sizeDamage; i++)
++	f = f + compPrintf ("  rect: %i %i %i %i\n", cWindow->priv->damageRects[i].x, cWindow->priv->damageRects[i].y, cWindow->priv->damageRects[i].width, cWindow->priv->damageRects[i].height);
++
++}
++
++void
++SpewScreen::spewScreenEdge (CompString &f, unsigned int i)
++{
++    struct screenEdgeGeometry {
++	int xw, x0;
++	int yh, y0;
++	int ww, w0;
++	int hh, h0;
++    } geometry[SCREEN_EDGE_NUM] = {
++	{ 0,  0,   0,  2,   0,  2,   1, -4 }, /* left */
++	{ 1, -2,   0,  2,   0,  2,   1, -4 }, /* right */
++	{ 0,  2,   0,  0,   1, -4,   0,  2 }, /* top */
++	{ 0,  2,   1, -2,   1, -4,   0,  2 }, /* bottom */
++	{ 0,  0,   0,  0,   0,  2,   0,  2 }, /* top-left */
++	{ 1, -2,   0,  0,   0,  2,   0,  2 }, /* top-right */
++	{ 0,  0,   1, -2,   0,  2,   0,  2 }, /* bottom-left */
++	{ 1, -2,   1, -2,   0,  2,   0,  2 }  /* bottom-right */
++    };
++    int x, y, w, h;
++
++    x = geometry[i].xw * screen->width () + geometry[i].x0;
++    y = geometry[i].yh * screen->height () + geometry[i].y0;
++    w = geometry[i].ww * screen->width () + geometry[i].w0;
++    h = geometry[i].hh * screen->height () + geometry[i].h0;
++
++    f = compPrintf ("  Screen edge %i Window id 0x%x, Geometry %i