diff --git a/compiz-0.8.6-focus-denied-stacking-fix.patch b/compiz-0.8.6-focus-denied-stacking-fix.patch deleted file mode 100644 index e2e4bb2..0000000 --- a/compiz-0.8.6-focus-denied-stacking-fix.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 984bca5801d6179b9f8081c4b6c466063975d940 Mon Sep 17 00:00:00 2001 -From: Owen W. Taylor -Date: Tue, 22 Jun 2010 23:29:17 +0000 -Subject: Don't stack focus-denied windows in a disallowed position - -When a window is focus-stealing-prevented, we should only stack -it below the active window if that is possible. If it's not -(the window has the "Above" state, for example), then we should -stack it at the normal location. - -http://bugs.opencompositing.org/show_bug.cgi?id=1304 ---- -diff --git a/src/window.c b/src/window.c -index 60b47b9..0cfeee9 100644 ---- a/src/window.c -+++ b/src/window.c -@@ -4447,14 +4447,19 @@ updateWindowAttributes (CompWindow *w, - if (p->id == w->screen->display->activeWindow) - break; - -- /* window is above active window so we should lower it */ -- if (p) -+ /* window is above active window so we should lower it, assuming -+ * that is allowed (if, for example, our window has the "above" state, -+ * then lowering beneath the active window may not be allowed.) -+ */ -+ if (p && validSiblingBelow (p, w)) -+ { - p = findValidStackSiblingBelow (sibling, p); - -- /* if we found a valid sibling under the active window, it's -- our new sibling we want to stack above */ -- if (p) -- sibling = p; -+ /* if we found a valid sibling under the active window, it's -+ our new sibling we want to stack above */ -+ if (p) -+ sibling = p; -+ } - } - - mask |= addWindowStackChanges (w, &xwc, sibling); --- -cgit v0.8.3.1-30-gff3a - diff --git a/compiz-0.8.6-icon-size.patch b/compiz-0.8.6-icon-size.patch deleted file mode 100644 index 5d964eb..0000000 --- a/compiz-0.8.6-icon-size.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 1bed3dbcea6473f84745ec7a1f936c4f5d3b3a01 Mon Sep 17 00:00:00 2001 -From: Danny Baumann -Date: Sat, 03 Apr 2010 12:14:19 +0000 -Subject: Correctly handle weird icon sizes. - -iw * ih may overflow the value range of unsigned long if iw and ih are -large enough, so check the single values as well. ---- -diff --git a/src/window.c b/src/window.c -index 24300fe..bd5aae8 100644 ---- a/src/window.c -+++ b/src/window.c -@@ -5361,18 +5361,22 @@ getWindowIcon (CompWindow *w, - - if (result == Success && data) - { -- CARD32 *p; -- CARD32 alpha, red, green, blue; -- int iw, ih, j; -+ CARD32 *p; -+ CARD32 alpha, red, green, blue; -+ unsigned long iw, ih; - - for (i = 0; i + 2 < n; i += iw * ih + 2) - { - unsigned long *idata = (unsigned long *) data; -+ unsigned long j; - - iw = idata[i]; - ih = idata[i + 1]; - -- if (iw * ih + 2 > n - i) -+ /* iw * ih may be larger than the value range of unsigned -+ long, so better do some checking for extremely weird -+ icon sizes first */ -+ if (iw > 2048 || ih > 2048 || iw * ih + 2 > n - i) - break; - - if (iw && ih) --- -cgit v0.8.3.1-30-gff3a - diff --git a/compiz-0.8.6-map-gravity-fix.patch b/compiz-0.8.6-map-gravity-fix.patch deleted file mode 100644 index 58df98d..0000000 --- a/compiz-0.8.6-map-gravity-fix.patch +++ /dev/null @@ -1,44 +0,0 @@ -From a86c461684f122fd286884c4ff28f6ea673fe669 Mon Sep 17 00:00:00 2001 -From: Danny Baumann -Date: Tue, 15 Jun 2010 05:47:05 +0000 -Subject: Only reflect the decoration size in MapRequest gravity adjustment, not - -the whole window size. ---- -diff --git a/src/event.c b/src/event.c -index 8600b5b..febb22d 100644 ---- a/src/event.c -+++ b/src/event.c -@@ -2042,11 +2042,11 @@ handleEvent (CompDisplay *d, - XWindowChanges xwc; - unsigned int xwcm, source; - -- /* adjust for gravity */ -+ /* adjust for gravity, but only for frame size */ - xwc.x = w->serverX; - xwc.y = w->serverY; -- xwc.width = w->serverWidth; -- xwc.height = w->serverHeight; -+ xwc.width = 0; -+ xwc.height = 0; - - xwcm = adjustConfigureRequestForGravity (w, &xwc, - CWX | CWY, -diff --git a/src/window.c b/src/window.c -index 9974df2..60b47b9 100644 ---- a/src/window.c -+++ b/src/window.c -@@ -2568,8 +2568,8 @@ unmapWindow (CompWindow *w) - /* revert gravity adjustment made at MapRequest time */ - xwc.x = w->serverX; - xwc.y = w->serverY; -- xwc.width = w->serverWidth; -- xwc.height = w->serverHeight; -+ xwc.width = 0; -+ xwc.height = 0; - - xwcm = adjustConfigureRequestForGravity (w, &xwc, - CWX | CWY, --- -cgit v0.8.3.1-30-gff3a - diff --git a/compiz-0.8.6-pixmap-size-calculation.patch b/compiz-0.8.6-pixmap-size-calculation.patch deleted file mode 100644 index af2b710..0000000 --- a/compiz-0.8.6-pixmap-size-calculation.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0f95c41a0aa175ddf7947ba18b01f746c95594a9 Mon Sep 17 00:00:00 2001 -From: Paul Donohue -Date: Sun, 17 Oct 2010 16:24:14 +0000 -Subject: Fix pixmap size calculation, server drawn borders are also included in - -the pixmap. ---- -diff --git a/src/window.c b/src/window.c -index a925288..6674643 100644 ---- a/src/window.c -+++ b/src/window.c -@@ -1446,8 +1446,8 @@ bindWindow (CompWindow *w) - } - - w->pixmap = XCompositeNameWindowPixmap (dpy, w->id); -- w->width = attr.width; -- w->height = attr.height; -+ w->width = attr.width + attr.border_width * 2; -+ w->height = attr.height + attr.border_width * 2; - - XUngrabServer (dpy); - } --- -cgit v0.8.3.1-30-gff3a - diff --git a/compiz-0.8.6-unloadpluginfix.patch b/compiz-0.8.6-unloadpluginfix.patch deleted file mode 100644 index 4b48bbe..0000000 --- a/compiz-0.8.6-unloadpluginfix.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff -upNr compiz-0.8.6.orign/include/compiz-core.h compiz-0.8.6/include/compiz-core.h ---- compiz-0.8.6.orign/include/compiz-core.h 2010-03-28 14:15:35.000000000 +0200 -+++ compiz-0.8.6/include/compiz-core.h 2010-03-30 14:48:59.055172395 +0200 -@@ -27,6 +27,7 @@ - #define _COMPIZ_CORE_H - - #include -+#include - - #define CORE_ABIVERSION 20091102 - -diff -upNr compiz-0.8.6.orign/plugins/gconf.c compiz-0.8.6/plugins/gconf.c ---- compiz-0.8.6.orign/plugins/gconf.c 2010-03-28 14:15:35.000000000 +0200 -+++ compiz-0.8.6/plugins/gconf.c 2010-03-30 14:48:59.056187055 +0200 -@@ -802,6 +802,8 @@ gconfFiniObject (CompPlugin *p, - static Bool - gconfInit (CompPlugin *p) - { -+ dlopen ("libgconf-2.so.4", RTLD_LAZY); -+ - if (!compInitPluginMetadataFromInfo (&gconfMetadata, p->vTable->name, - 0, 0, 0, 0)) - return FALSE; -diff -upNr compiz-0.8.6.orign/plugins/glib.c compiz-0.8.6/plugins/glib.c ---- compiz-0.8.6.orign/plugins/glib.c 2010-03-28 14:15:35.000000000 +0200 -+++ compiz-0.8.6/plugins/glib.c 2010-03-30 14:48:59.056187055 +0200 -@@ -197,6 +197,8 @@ glibInitDisplay (CompPlugin *p, - { - GLibDisplay *gd; - -+ dlopen ("libglib-2.0.so.0", RTLD_LAZY); -+ - if (!checkPluginABI ("core", CORE_ABIVERSION)) - return FALSE; - diff --git a/compiz-0.8.6-wall.patch b/compiz-0.8.6-wall.patch deleted file mode 100644 index c546d59..0000000 --- a/compiz-0.8.6-wall.patch +++ /dev/null @@ -1,5003 +0,0 @@ -diff -upNr compiz-0.8.6.orign/metadata/Makefile.am compiz-0.8.6/metadata/Makefile.am ---- compiz-0.8.6.orign/metadata/Makefile.am 2010-03-28 14:15:35.000000000 +0200 -+++ compiz-0.8.6/metadata/Makefile.am 2010-03-30 14:53:23.499283857 +0200 -@@ -31,6 +31,7 @@ xml_in_files = \ - video.xml.in \ - water.xml.in \ - wobbly.xml.in \ -+ wall.xml.in \ - zoom.xml.in - xml_files = $(xml_in_files:.xml.in=.xml) - xml_DATA = $(xml_files) -diff -upNr compiz-0.8.6.orign/metadata/wall.xml.in compiz-0.8.6/metadata/wall.xml.in ---- compiz-0.8.6.orign/metadata/wall.xml.in 1970-01-01 01:00:00.000000000 +0100 -+++ compiz-0.8.6/metadata/wall.xml.in 2010-03-30 14:53:23.499283857 +0200 -@@ -0,0 +1,357 @@ -+ -+ -+ -+ <_short>Desktop Wall -+ <_long>Desktop Wall Plugin -+ Desktop -+ largedesktop -+ -+ -+ decoration -+ -+ -+ wobbly -+ fade -+ -+ -+ -+ -+ <_short>Viewport Switch Preview -+ -+ -+ -+ -+ -+ -+ -+ -+ <_short>Background Gradient -+ -+ -+ -+ -+ -+ -+ <_short>Thumb Gradient -+ -+ -+ -+ -+ -+ <_short>Highlight Gradient -+ -+ -+ -+ -+ -+ <_short>Arrow Colors -+ -+ -+ -+ -+ -+ -+ <_short>Viewport Switching -+ -+ -+ -+ -+ -+ <_short>Bindings -+ -+ <_short>Move within wall -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ <_short>Move with window within wall -+ -+ -+ -+ -+ -+ -+ <_short>Edge flipping -+ -+ -+ -+ -+ -+ -+ -+ -+ -+ <_short>Viewport Switching -+ -+ -+ -+ <_short>Edge Flipping -+ -+ -+ -+ -+ -+ -+ -diff -upNr compiz-0.8.6.orign/plugins/Makefile.am compiz-0.8.6/plugins/Makefile.am ---- compiz-0.8.6.orign/plugins/Makefile.am 2010-03-28 14:15:35.000000000 +0200 -+++ compiz-0.8.6/plugins/Makefile.am 2010-03-30 14:53:23.499283857 +0200 -@@ -74,6 +74,9 @@ libcommands_la_SOURCES = commands.c - libgnomecompat_la_LDFLAGS = -module -avoid-version -no-undefined - libgnomecompat_la_SOURCES = gnomecompat.c - -+libwall_la_LDFLAGS = -module -avoid-version -no-undefined `pkg-config --libs cairo` -+libwall_la_SOURCES = wall.c wall_options.c -+ - if USE_LIBRSVG - libsvg_la_DEPENDENCIES = $(top_builddir)/libdecoration/libdecoration.la - libsvg_la_LDFLAGS = -module -avoid-version -no-undefined -@@ -149,7 +152,8 @@ INCLUDES = \ - -DIMAGEDIR=\"$(imagedir)\" \ - -I$(top_srcdir)/include \ - -I$(top_builddir)/include \ -- -DMETADATADIR=\"$(metadatadir)\" -+ -DMETADATADIR=\"$(metadatadir)\" \ -+ `pkg-config --cflags cairo` - - moduledir = $(plugindir) - -@@ -181,6 +185,7 @@ module_LTLIBRARIES = \ - libobs.la \ - libcommands.la \ - libgnomecompat.la \ -+ libwall.la \ - $(libsvg_module) \ - $(libannotate_module) \ - $(libinotify_module) \ -diff -upNr compiz-0.8.6.orign/plugins/wall.c compiz-0.8.6/plugins/wall.c ---- compiz-0.8.6.orign/plugins/wall.c 1970-01-01 01:00:00.000000000 +0100 -+++ compiz-0.8.6/plugins/wall.c 2010-03-30 14:54:31.256187250 +0200 -@@ -0,0 +1,2264 @@ -+/** -+ * -+ * Compiz wall plugin -+ * -+ * wall.c -+ * -+ * Copyright (c) 2006 Robert Carr -+ * -+ * Authors: -+ * Robert Carr -+ * Dennis Kasprzyk -+ * -+ * 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. -+ * -+ **/ -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include "wall_options.h" -+ -+#include -+ -+#include -+#include -+ -+#define PI 3.14159265359f -+#define VIEWPORT_SWITCHER_SIZE 100 -+#define ARROW_SIZE 33 -+ -+#define WIN_X(w) ((w)->attrib.x - (w)->input.left) -+#define WIN_Y(w) ((w)->attrib.y - (w)->input.top) -+#define WIN_W(w) ((w)->width + (w)->input.left + (w)->input.right) -+#define WIN_H(w) ((w)->height + (w)->input.top + (w)->input.bottom) -+ -+#define getColorRGBA(name, _display) \ -+ r = wallGet##name##Red(_display) / 65535.0f;\ -+ g = wallGet##name##Green(_display) / 65535.0f; \ -+ b = wallGet##name##Blue(_display) / 65535.0f; \ -+ a = wallGet##name##Alpha(_display) / 65535.0f -+ -+static int WallDisplayPrivateIndex; -+static int WallCorePrivateIndex; -+ -+/* Enums */ -+typedef enum -+{ -+ Up = 0, -+ Left, -+ Down, -+ Right -+} Direction; -+ -+typedef enum -+{ -+ NoTransformation, -+ MiniScreen, -+ Sliding -+} ScreenTransformation; -+ -+typedef struct _WallCairoContext -+{ -+ Pixmap pixmap; -+ CompTexture texture; -+ -+ cairo_surface_t *surface; -+ cairo_t *cr; -+ -+ int width; -+ int height; -+} WallCairoContext; -+ -+typedef struct _WallCore -+{ -+ ObjectAddProc objectAdd; -+ SetOptionForPluginProc setOptionForPlugin; -+} WallCore; -+ -+typedef struct _WallDisplay -+{ -+ int screenPrivateIndex; -+ -+ HandleEventProc handleEvent; -+ MatchExpHandlerChangedProc matchExpHandlerChanged; -+ MatchPropertyChangedProc matchPropertyChanged; -+} WallDisplay; -+ -+typedef struct _WallScreen -+{ -+ int windowPrivateIndex; -+ -+ DonePaintScreenProc donePaintScreen; -+ PaintOutputProc paintOutput; -+ PaintScreenProc paintScreen; -+ PreparePaintScreenProc preparePaintScreen; -+ PaintTransformedOutputProc paintTransformedOutput; -+ PaintWindowProc paintWindow; -+ WindowGrabNotifyProc windowGrabNotify; -+ WindowUngrabNotifyProc windowUngrabNotify; -+ ActivateWindowProc activateWindow; -+ -+ Bool moving; /* Used to track miniview movement */ -+ Bool showPreview; -+ -+ float curPosX; -+ float curPosY; -+ int gotoX; -+ int gotoY; -+ int direction; /* >= 0 : direction arrow angle, < 0 : no direction */ -+ -+ int boxTimeout; -+ int boxOutputDevice; -+ -+ int grabIndex; -+ int timer; -+ -+ Window moveWindow; -+ -+ CompWindow *grabWindow; -+ -+ Bool focusDefault; -+ -+ ScreenTransformation transform; -+ CompOutput *currOutput; -+ -+ WindowPaintAttrib mSAttribs; -+ float mSzCamera; -+ -+ int firstViewportX; -+ int firstViewportY; -+ int viewportWidth; -+ int viewportHeight; -+ int viewportBorder; -+ -+ int moveWindowX; -+ int moveWindowY; -+ -+ WallCairoContext switcherContext; -+ WallCairoContext thumbContext; -+ WallCairoContext highlightContext; -+ WallCairoContext arrowContext; -+} WallScreen; -+ -+typedef struct _WallWindow -+{ -+ Bool isSliding; -+} WallWindow; -+ -+/* Helpers */ -+#define WALL_CORE(c) PLUGIN_CORE(c, Wall, w) -+#define WALL_DISPLAY(d) PLUGIN_DISPLAY(d, Wall, w) -+#define WALL_SCREEN(s) PLUGIN_SCREEN(s, Wall, w) -+#define WALL_WINDOW(w) PLUGIN_WINDOW(w, Wall, w) -+ -+#define GET_SCREEN \ -+ CompScreen *s; \ -+ Window xid; \ -+ xid = getIntOptionNamed(option, nOption, "root", 0);\ -+ s = findScreenAtDisplay(d, xid); \ -+ if (!s) \ -+ return FALSE; -+ -+#define sigmoid(x) (1.0f / (1.0f + exp (-5.5f * 2 * ((x) - 0.5)))) -+#define sigmoidProgress(x) ((sigmoid (x) - sigmoid (0)) / \ -+ (sigmoid (1) - sigmoid (0))) -+ -+ -+static void -+wallClearCairoLayer (cairo_t *cr) -+{ -+ cairo_save (cr); -+ cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR); -+ cairo_paint (cr); -+ cairo_restore (cr); -+} -+ -+static void -+wallDrawSwitcherBackground (CompScreen *s) -+{ -+ cairo_t *cr; -+ cairo_pattern_t *pattern; -+ float outline = 2.0f; -+ int width, height, radius; -+ float r, g, b, a; -+ int i, j; -+ -+ WALL_SCREEN (s); -+ -+ cr = ws->switcherContext.cr; -+ wallClearCairoLayer (cr); -+ -+ width = ws->switcherContext.width - outline; -+ height = ws->switcherContext.height - outline; -+ -+ cairo_save (cr); -+ cairo_translate (cr, outline / 2.0f, outline / 2.0f); -+ -+ /* set the pattern for the switcher's background */ -+ pattern = cairo_pattern_create_linear (0, 0, width, height); -+ getColorRGBA (BackgroundGradientBaseColor, s->display); -+ cairo_pattern_add_color_stop_rgba (pattern, 0.00f, r, g, b, a); -+ getColorRGBA (BackgroundGradientHighlightColor, s->display); -+ cairo_pattern_add_color_stop_rgba (pattern, 0.65f, r, g, b, a); -+ getColorRGBA (BackgroundGradientShadowColor, s->display); -+ cairo_pattern_add_color_stop_rgba (pattern, 0.85f, r, g, b, a); -+ cairo_set_source (cr, pattern); -+ -+ /* draw the border's shape */ -+ radius = wallGetEdgeRadius (s->display); -+ if (radius) -+ { -+ cairo_arc (cr, radius, radius, radius, PI, 1.5f * PI); -+ cairo_arc (cr, radius + width - 2 * radius, -+ radius, radius, 1.5f * PI, 2.0 * PI); -+ cairo_arc (cr, width - radius, height - radius, radius, 0, PI / 2.0f); -+ cairo_arc (cr, radius, height - radius, radius, PI / 2.0f, PI); -+ } -+ else -+ cairo_rectangle (cr, 0, 0, width, height); -+ -+ cairo_close_path (cr); -+ -+ /* apply pattern to background... */ -+ cairo_fill_preserve (cr); -+ -+ /* ... and draw an outline */ -+ cairo_set_line_width (cr, outline); -+ getColorRGBA (OutlineColor, s->display); -+ cairo_set_source_rgba (cr, r, g, b, a); -+ cairo_stroke(cr); -+ -+ cairo_pattern_destroy (pattern); -+ cairo_restore (cr); -+ -+ cairo_save (cr); -+ for (i = 0; i < s->vsize; i++) -+ { -+ cairo_translate (cr, 0.0, ws->viewportBorder); -+ cairo_save (cr); -+ for (j = 0; j < s->hsize; j++) -+ { -+ cairo_translate (cr, ws->viewportBorder, 0.0); -+ -+ /* this cuts a hole into our background */ -+ cairo_set_operator (cr, CAIRO_OPERATOR_OVER); -+ cairo_set_source_rgba (cr, 0.0, 0.0, 0.0, 1.0); -+ cairo_rectangle (cr, 0, 0, ws->viewportWidth, ws->viewportHeight); -+ -+ cairo_fill_preserve (cr); -+ cairo_set_operator (cr, CAIRO_OPERATOR_XOR); -+ cairo_fill (cr); -+ -+ cairo_translate (cr, ws->viewportWidth, 0.0); -+ } -+ cairo_restore(cr); -+ -+ cairo_translate (cr, 0.0, ws->viewportHeight); -+ } -+ cairo_restore (cr); -+} -+ -+static void -+wallDrawThumb (CompScreen *s) -+{ -+ cairo_t *cr; -+ cairo_pattern_t *pattern; -+ float r, g, b, a; -+ float outline = 2.0f; -+ int width, height; -+ -+ WALL_SCREEN(s); -+ -+ cr = ws->thumbContext.cr; -+ wallClearCairoLayer (cr); -+ -+ width = ws->thumbContext.width - outline; -+ height = ws->thumbContext.height - outline; -+ -+ cairo_translate (cr, outline / 2.0f, outline / 2.0f); -+ -+ pattern = cairo_pattern_create_linear (0, 0, width, height); -+ getColorRGBA (ThumbGradientBaseColor, s->display); -+ cairo_pattern_add_color_stop_rgba (pattern, 0.0f, r, g, b, a); -+ getColorRGBA (ThumbGradientHighlightColor, s->display); -+ cairo_pattern_add_color_stop_rgba (pattern, 1.0f, r, g, b, a); -+ -+ /* apply the pattern for thumb background */ -+ cairo_set_source (cr, pattern); -+ cairo_rectangle (cr, 0, 0, width, height); -+ cairo_fill_preserve (cr); -+ -+ cairo_set_line_width (cr, outline); -+ getColorRGBA (OutlineColor, s->display); -+ cairo_set_source_rgba (cr, r, g, b, a); -+ cairo_stroke (cr); -+ -+ cairo_pattern_destroy (pattern); -+ -+ cairo_restore (cr); -+} -+ -+static void -+wallDrawHighlight(CompScreen *s) -+{ -+ cairo_t *cr; -+ cairo_pattern_t *pattern; -+ int width, height; -+ float r, g, b, a; -+ float outline = 2.0f; -+ -+ -+ WALL_SCREEN(s); -+ -+ cr = ws->highlightContext.cr; -+ wallClearCairoLayer (cr); -+ -+ width = ws->highlightContext.width - outline; -+ height = ws->highlightContext.height - outline; -+ -+ cairo_translate (cr, outline / 2.0f, outline / 2.0f); -+ -+ pattern = cairo_pattern_create_linear (0, 0, width, height); -+ getColorRGBA (ThumbHighlightGradientBaseColor, s->display); -+ cairo_pattern_add_color_stop_rgba (pattern, 0.0f, r, g, b, a); -+ getColorRGBA (ThumbHighlightGradientShadowColor, s->display); -+ cairo_pattern_add_color_stop_rgba (pattern, 1.0f, r, g, b, a); -+ -+ /* apply the pattern for thumb background */ -+ cairo_set_source (cr, pattern); -+ cairo_rectangle (cr, 0, 0, width, height); -+ cairo_fill_preserve (cr); -+ -+ cairo_set_line_width (cr, outline); -+ getColorRGBA (OutlineColor, s->display); -+ cairo_set_source_rgba (cr, r, g, b, a); -+ cairo_stroke (cr); -+ -+ cairo_pattern_destroy (pattern); -+ -+ cairo_restore (cr); -+} -+ -+static void -+wallDrawArrow (CompScreen *s) -+{ -+ cairo_t *cr; -+ float outline = 2.0f; -+ float r, g, b, a; -+ -+ WALL_SCREEN(s); -+ -+ cr = ws->arrowContext.cr; -+ wallClearCairoLayer (cr); -+ -+ cairo_translate (cr, outline / 2.0f, outline / 2.0f); -+ -+ /* apply the pattern for thumb background */ -+ cairo_set_line_width (cr, outline); -+ -+ /* draw top part of the arrow */ -+ getColorRGBA (ArrowBaseColor, s->display); -+ cairo_set_source_rgba (cr, r, g, b, a); -+ cairo_move_to (cr, 15, 0); -+ cairo_line_to (cr, 30, 30); -+ cairo_line_to (cr, 15, 24.5); -+ cairo_line_to (cr, 15, 0); -+ cairo_fill (cr); -+ -+ /* draw bottom part of the arrow */ -+ getColorRGBA (ArrowShadowColor, s->display); -+ cairo_set_source_rgba (cr, r, g, b, a); -+ cairo_move_to (cr, 15, 0); -+ cairo_line_to (cr, 0, 30); -+ cairo_line_to (cr, 15, 24.5); -+ cairo_line_to (cr, 15, 0); -+ cairo_fill (cr); -+ -+ /* draw the arrow outline */ -+ getColorRGBA (OutlineColor, s->display); -+ cairo_set_source_rgba (cr, r, g, b, a); -+ cairo_move_to (cr, 15, 0); -+ cairo_line_to (cr, 30, 30); -+ cairo_line_to (cr, 15, 24.5); -+ cairo_line_to (cr, 0, 30); -+ cairo_line_to (cr, 15, 0); -+ cairo_stroke (cr); -+ -+ cairo_restore (cr); -+} -+ -+static void -+wallSetupCairoContext (CompScreen *s, -+ WallCairoContext *context) -+{ -+ XRenderPictFormat *format; -+ Screen *screen; -+ int width, height; -+ -+ screen = ScreenOfDisplay (s->display->display, s->screenNum); -+ -+ width = context->width; -+ height = context->height; -+ -+ initTexture (s, &context->texture); -+ -+ format = XRenderFindStandardFormat (s->display->display, -+ PictStandardARGB32); -+ -+ context->pixmap = XCreatePixmap (s->display->display, s->root, -+ width, height, 32); -+ -+ if (!bindPixmapToTexture(s, &context->texture, context->pixmap, -+ width, height, 32)) -+ { -+ compLogMessage ("wall", CompLogLevelError, -+ "Couldn't create cairo context for switcher"); -+ } -+ -+ context->surface = -+ cairo_xlib_surface_create_with_xrender_format (s->display->display, -+ context->pixmap, -+ screen, format, -+ width, height); -+ -+ context->cr = cairo_create (context->surface); -+ wallClearCairoLayer (context->cr); -+} -+ -+static void -+wallDestroyCairoContext (CompScreen *s, -+ WallCairoContext *context) -+{ -+ if (context->cr) -+ cairo_destroy (context->cr); -+ -+ if (context->surface) -+ cairo_surface_destroy (context->surface); -+ -+ finiTexture (s, &context->texture); -+ -+ if (context->pixmap) -+ XFreePixmap (s->display->display, context->pixmap); -+} -+ -+static Bool -+wallCheckDestination (CompScreen *s, -+ int destX, -+ int destY) -+{ -+ if (s->x - destX < 0) -+ return FALSE; -+ -+ if (s->x - destX >= s->hsize) -+ return FALSE; -+ -+ if (s->y - destY >= s->vsize) -+ return FALSE; -+ -+ if (s->y - destY < 0) -+ return FALSE; -+ -+ return TRUE; -+} -+ -+static void -+wallReleaseMoveWindow (CompScreen *s) -+{ -+ CompWindow *w; -+ WALL_SCREEN (s); -+ -+ w = findWindowAtScreen (s, ws->moveWindow); -+ if (w) -+ syncWindowPosition (w); -+ -+ ws->moveWindow = 0; -+} -+ -+static void -+wallComputeTranslation (CompScreen *s, -+ float *x, -+ float *y) -+{ -+ float dx, dy, elapsed, duration; -+ -+ WALL_SCREEN (s); -+ -+ duration = wallGetSlideDuration (s->display) * 1000.0; -+ if (duration != 0.0) -+ elapsed = 1.0 - (ws->timer / duration); -+ else -+ elapsed = 1.0; -+ -+ if (elapsed < 0.0) -+ elapsed = 0.0; -+ if (elapsed > 1.0) -+ elapsed = 1.0; -+ -+ /* Use temporary variables to you can pass in &ps->cur_x */ -+ dx = (ws->gotoX - ws->curPosX) * elapsed + ws->curPosX; -+ dy = (ws->gotoY - ws->curPosY) * elapsed + ws->curPosY; -+ -+ *x = dx; -+ *y = dy; -+} -+ -+/* movement remainder that gets ignored for direction calculation */ -+#define IGNORE_REMAINDER 0.05 -+ -+static void -+wallDetermineMovementAngle (CompScreen *s) -+{ -+ int angle; -+ float dx, dy; -+ -+ WALL_SCREEN (s); -+ -+ dx = ws->gotoX - ws->curPosX; -+ dy = ws->gotoY - ws->curPosY; -+ -+ if (dy > IGNORE_REMAINDER) -+ angle = (dx > IGNORE_REMAINDER) ? 135 : -+ (dx < -IGNORE_REMAINDER) ? 225 : 180; -+ else if (dy < -IGNORE_REMAINDER) -+ angle = (dx > IGNORE_REMAINDER) ? 45 : -+ (dx < -IGNORE_REMAINDER) ? 315 : 0; -+ else -+ angle = (dx > IGNORE_REMAINDER) ? 90 : -+ (dx < -IGNORE_REMAINDER) ? 270 : -1; -+ -+ ws->direction = angle; -+} -+ -+static Bool -+wallMoveViewport (CompScreen *s, -+ int x, -+ int y, -+ Window moveWindow) -+{ -+ WALL_SCREEN (s); -+ -+ if (!x && !y) -+ return FALSE; -+ -+ if (otherScreenGrabExist (s, "move", "switcher", "group-drag", "wall", NULL)) -+ return FALSE; -+ -+ if (!wallCheckDestination (s, x, y)) -+ return FALSE; -+ -+ if (ws->moveWindow != moveWindow) -+ { -+ CompWindow *w; -+ -+ wallReleaseMoveWindow (s); -+ w = findWindowAtScreen (s, moveWindow); -+ if (w) -+ { -+ if (!(w->type & (CompWindowTypeDesktopMask | -+ CompWindowTypeDockMask))) -+ { -+ if (!(w->state & CompWindowStateStickyMask)) -+ { -+ ws->moveWindow = w->id; -+ ws->moveWindowX = w->attrib.x; -+ ws->moveWindowY = w->attrib.y; -+ raiseWindow (w); -+ } -+ } -+ } -+ } -+ -+ if (!ws->moving) -+ { -+ ws->curPosX = s->x; -+ ws->curPosY = s->y; -+ } -+ ws->gotoX = s->x - x; -+ ws->gotoY = s->y - y; -+ -+ wallDetermineMovementAngle (s); -+ -+ if (!ws->grabIndex) -+ ws->grabIndex = pushScreenGrab (s, s->invisibleCursor, "wall"); -+ -+ moveScreenViewport (s, x, y, TRUE); -+ -+ ws->moving = TRUE; -+ ws->focusDefault = TRUE; -+ ws->boxOutputDevice = outputDeviceForPoint (s, pointerX, pointerY); -+ -+ if (wallGetShowSwitcher (s->display)) -+ ws->boxTimeout = wallGetPreviewTimeout (s->display) * 1000; -+ else -+ ws->boxTimeout = 0; -+ -+ ws->timer = wallGetSlideDuration (s->display) * 1000; -+ -+ damageScreen (s); -+ -+ return TRUE; -+} -+ -+static void -+wallHandleEvent (CompDisplay *d, -+ XEvent *event) -+{ -+ WALL_DISPLAY (d); -+ -+ switch (event->type) { -+ case ClientMessage: -+ if (event->xclient.message_type == d->desktopViewportAtom) -+ { -+ int dx, dy; -+ CompScreen *s; -+ -+ s = findScreenAtDisplay (d, event->xclient.window); -+ if (!s) -+ break; -+ -+ if (otherScreenGrabExist (s, "switcher", "wall", NULL)) -+ break; -+ -+ dx = event->xclient.data.l[0] / s->width - s->x; -+ dy = event->xclient.data.l[1] / s->height - s->y; -+ -+ if (!dx && !dy) -+ break; -+ -+ wallMoveViewport (s, -dx, -dy, None); -+ } -+ break; -+ } -+ -+ UNWRAP (wd, d, handleEvent); -+ (*d->handleEvent) (d, event); -+ WRAP (wd, d, handleEvent, wallHandleEvent); -+} -+ -+static void -+wallActivateWindow (CompWindow *w) -+{ -+ CompScreen *s = w->screen; -+ -+ WALL_SCREEN (s); -+ -+ if (w->placed && !otherScreenGrabExist (s, "wall", "switcher", NULL)) -+ { -+ int dx, dy; -+ -+ defaultViewportForWindow (w, &dx, &dy); -+ dx -= s->x; -+ dy -= s->y; -+ -+ if (dx || dy) -+ { -+ wallMoveViewport (s, -dx, -dy, None); -+ ws->focusDefault = FALSE; -+ } -+ } -+ -+ UNWRAP (ws, s, activateWindow); -+ (*s->activateWindow) (w); -+ WRAP (ws, s, activateWindow, wallActivateWindow); -+} -+ -+static void -+wallCheckAmount (CompScreen *s, -+ int dx, -+ int dy, -+ int *amountX, -+ int *amountY) -+{ -+ *amountX = -dx; -+ *amountY = -dy; -+ -+ if (wallGetAllowWraparound (s->display)) -+ { -+ if ((s->x + dx) < 0) -+ *amountX = -(s->hsize + dx); -+ else if ((s->x + dx) >= s->hsize) -+ *amountX = s->hsize - dx; -+ -+ if ((s->y + dy) < 0) -+ *amountY = -(s->vsize + dy); -+ else if ((s->y + dy) >= s->vsize) -+ *amountY = s->vsize - dy; -+ } -+} -+ -+static Bool -+wallInitiate (CompScreen *s, -+ int dx, -+ int dy, -+ Window win, -+ CompAction *action, -+ CompActionState state) -+{ -+ int amountX, amountY; -+ -+ WALL_SCREEN (s); -+ -+ wallCheckAmount (s, dx, dy, &amountX, &amountY); -+ if (!wallMoveViewport (s, amountX, amountY, win)) -+ return TRUE; -+ -+ if (state & CompActionStateInitKey) -+ action->state |= CompActionStateTermKey; -+ -+ if (state & CompActionStateInitButton) -+ action->state |= CompActionStateTermButton; -+ -+ ws->showPreview = wallGetShowSwitcher (s->display); -+ -+ return TRUE; -+} -+ -+static Bool -+wallTerminate (CompDisplay *d, -+ CompAction *action, -+ CompActionState state, -+ CompOption *option, -+ int nOption) -+{ -+ CompScreen *s; -+ -+ for (s = d->screens; s; s = s->next) -+ { -+ WALL_SCREEN (s); -+ -+ if (ws->showPreview) -+ { -+ ws->showPreview = FALSE; -+ damageScreen (s); -+ } -+ } -+ -+ if (action) -+ action->state &= ~(CompActionStateTermKey | CompActionStateTermButton); -+ -+ return FALSE; -+} -+ -+static Bool -+wallInitiateFlip (CompScreen *s, -+ Direction direction, -+ Bool dnd) -+{ -+ int dx, dy; -+ int amountX, amountY; -+ -+ if (otherScreenGrabExist (s, "wall", "move", "group-drag", NULL)) -+ return FALSE; -+ -+ if (dnd) -+ { -+ if (!wallGetEdgeflipDnd (s)) -+ return FALSE; -+ -+ if (otherScreenGrabExist (s, "wall", NULL)) -+ return FALSE; -+ } -+ else if (otherScreenGrabExist (s, "wall", "group-drag", NULL)) -+ { -+ /* not wall or group means move */ -+ if (!wallGetEdgeflipMove (s)) -+ return FALSE; -+ -+ WALL_SCREEN (s); -+ -+ if (!ws->grabWindow) -+ return FALSE; -+ -+ /* bail out if window is sticky */ -+ if (ws->grabWindow->state & CompWindowStateStickyMask) -+ return FALSE; -+ } -+ else if (otherScreenGrabExist (s, "wall", NULL)) -+ { -+ /* move was ruled out before, so we have group */ -+ if (!wallGetEdgeflipDnd (s)) -+ return FALSE; -+ } -+ else if (!wallGetEdgeflipPointer (s)) -+ return FALSE; -+ -+ switch (direction) { -+ case Left: -+ dx = -1; dy = 0; -+ break; -+ case Right: -+ dx = 1; dy = 0; -+ break; -+ case Up: -+ dx = 0; dy = -1; -+ break; -+ case Down: -+ dx = 0; dy = 1; -+ break; -+ default: -+ dx = 0; dy = 0; -+ break; -+ } -+ -+ wallCheckAmount (s, dx, dy, &amountX, &amountY); -+ if (wallMoveViewport (s, amountX, amountY, None)) -+ { -+ int offsetX, offsetY; -+ int warpX, warpY; -+ -+ if (dx < 0) -+ { -+ offsetX = s->width - 10; -+ warpX = pointerX + s->width; -+ } -+ else if (dx > 0) -+ { -+ offsetX = 1- s->width; -+ warpX = pointerX - s->width; -+ } -+ else -+ { -+ offsetX = 0; -+ warpX = lastPointerX; -+ } -+ -+ if (dy < 0) -+ { -+ offsetY = s->height - 10; -+ warpY = pointerY + s->height; -+ } -+ else if (dy > 0) -+ { -+ offsetY = 1- s->height; -+ warpY = pointerY - s->height; -+ } -+ else -+ { -+ offsetY = 0; -+ warpY = lastPointerY; -+ } -+ -+ warpPointer (s, offsetX, offsetY); -+ lastPointerX = warpX; -+ lastPointerY = warpY; -+ } -+ -+ return TRUE; -+} -+ -+static Bool -+wallLeft (CompDisplay *d, -+ CompAction *action, -+ CompActionState state, -+ CompOption *option, -+ int nOption) -+{ -+ GET_SCREEN; -+ -+ return wallInitiate (s, -1, 0, None, action, state); -+} -+ -+static Bool -+wallRight (CompDisplay *d, -+ CompAction *action, -+ CompActionState state, -+ CompOption *option, -+ int nOption) -+{ -+ GET_SCREEN; -+ -+ return wallInitiate (s, 1, 0, None, action, state); -+} -+ -+static Bool -+wallUp (CompDisplay *d, -+ CompAction *action, -+ CompActionState state, -+ CompOption *option, -+ int nOption) -+{ -+ GET_SCREEN; -+ -+ return wallInitiate (s, 0, -1, None, action, state); -+} -+ -+static Bool -+wallDown (CompDisplay *d, -+ CompAction *action, -+ CompActionState state, -+ CompOption *option, -+ int nOption) -+{ -+ GET_SCREEN; -+ -+ return wallInitiate (s, 0, 1, None, action, state); -+} -+ -+static Bool -+wallNext (CompDisplay *d, -+ CompAction *action, -+ CompActionState state, -+ CompOption *option, -+ int nOption) -+{ -+ int amountX, amountY; -+ GET_SCREEN; -+ -+ if ((s->x == s->hsize - 1) && (s->y == s->vsize - 1)) -+ { -+ amountX = -(s->hsize - 1); -+ amountY = -(s->vsize - 1); -+ } -+ else if (s->x == s->hsize - 1) -+ { -+ amountX = -(s->hsize - 1); -+ amountY = 1; -+ } -+ else -+ { -+ amountX = 1; -+ amountY = 0; -+ } -+ -+ return wallInitiate (s, amountX, amountY, None, action, state); -+} -+ -+static Bool -+wallPrev (CompDisplay *d, -+ CompAction *action, -+ CompActionState state, -+ CompOption *option, -+ int nOption) -+{ -+ int amountX, amountY; -+ GET_SCREEN; -+ -+ if ((s->x == 0) && (s->y == 0)) -+ { -+ amountX = s->hsize - 1; -+ amountY = s->vsize - 1; -+ } -+ else if (s->x == 0) -+ { -+ amountX = s->hsize - 1; -+ amountY = -1; -+ } -+ else -+ { -+ amountX = -1; -+ amountY = 0; -+ } -+ -+ return wallInitiate (s, amountX, amountY, None, action, state); -+} -+ -+static Bool -+wallFlipLeft (CompDisplay *d, -+ CompAction *action, -+ CompActionState state, -+ CompOption *option, -+ int nOption) -+{ -+ GET_SCREEN; -+ -+ return wallInitiateFlip (s, Left, (state & CompActionStateInitEdgeDnd)); -+} -+ -+static Bool -+wallFlipRight (CompDisplay *d, -+ CompAction *action, -+ CompActionState state, -+ CompOption *option, -+ int nOption) -+{ -+ GET_SCREEN; -+ -+ return wallInitiateFlip (s, Right, (state & CompActionStateInitEdgeDnd)); -+} -+ -+static Bool -+wallFlipUp (CompDisplay *d, -+ CompAction *action, -+ CompActionState state, -+ CompOption *option, -+ int nOption) -+{ -+ GET_SCREEN; -+ -+ return wallInitiateFlip (s, Up, (state & CompActionStateInitEdgeDnd)); -+} -+ -+static Bool -+wallFlipDown (CompDisplay *d, -+ CompAction *action, -+ CompActionState state, -+ CompOption *option, -+ int nOption) -+{ -+ GET_SCREEN; -+ -+ return wallInitiateFlip (s, Down, (state & CompActionStateInitEdgeDnd)); -+} -+ -+static Bool -+wallLeftWithWindow (CompDisplay *d, -+ CompAction *action, -+ CompActionState state, -+ CompOption *option, -+ int nOption) -+{ -+ GET_SCREEN; -+ Window win = getIntOptionNamed (option, nOption, "window", 0); -+ -+ return wallInitiate (s, -1, 0, win, action, state); -+} -+ -+static Bool -+wallRightWithWindow (CompDisplay *d, -+ CompAction *action, -+ CompActionState state, -+ CompOption *option, -+ int nOption) -+{ -+ GET_SCREEN; -+ Window win = getIntOptionNamed (option, nOption, "window", 0); -+ -+ return wallInitiate (s, 1, 0, win, action, state); -+} -+ -+static Bool -+wallUpWithWindow (CompDisplay *d, -+ CompAction *action, -+ CompActionState state, -+ CompOption *option, -+ int nOption) -+{ -+ GET_SCREEN; -+ Window win = getIntOptionNamed (option, nOption, "window", 0); -+ -+ return wallInitiate (s, 0, -1, win, action, state); -+} -+ -+static Bool -+wallDownWithWindow (CompDisplay *d, -+ CompAction *action, -+ CompActionState state, -+ CompOption *option, -+ int nOption) -+{ -+ GET_SCREEN; -+ Window win = getIntOptionNamed (option, nOption, "window", 0); -+ -+ return wallInitiate (s, 0, 1, win, action, state); -+} -+ -+static inline void -+wallDrawQuad (CompMatrix *matrix, BOX *box) -+{ -+ glTexCoord2f (COMP_TEX_COORD_X (matrix, box->x1), -+ COMP_TEX_COORD_Y (matrix, box->y2)); -+ glVertex2i (box->x1, box->y2); -+ glTexCoord2f (COMP_TEX_COORD_X (matrix, box->x2), -+ COMP_TEX_COORD_Y (matrix, box->y2)); -+ glVertex2i (box->x2, box->y2); -+ glTexCoord2f (COMP_TEX_COORD_X (matrix, box->x2), -+ COMP_TEX_COORD_Y (matrix, box->y1)); -+ glVertex2i (box->x2, box->y1); -+ glTexCoord2f (COMP_TEX_COORD_X (matrix, box->x1), -+ COMP_TEX_COORD_Y (matrix, box->y1)); -+ glVertex2i (box->x1, box->y1); -+} -+ -+static void -+wallDrawCairoTextureOnScreen (CompScreen *s) -+{ -+ float centerX, centerY; -+ float width, height; -+ float topLeftX, topLeftY; -+ float border; -+ int i, j; -+ CompMatrix matrix; -+ BOX box; -+ -+ WALL_SCREEN(s); -+ -+ glDisableClientState (GL_TEXTURE_COORD_ARRAY); -+ glEnable (GL_BLEND); -+ -+ centerX = s->outputDev[ws->boxOutputDevice].region.extents.x1 + -+ (s->outputDev[ws->boxOutputDevice].width / 2.0f); -+ centerY = s->outputDev[ws->boxOutputDevice].region.extents.y1 + -+ (s->outputDev[ws->boxOutputDevice].height / 2.0f); -+ -+ border = (float) ws->viewportBorder; -+ width = (float) ws->switcherContext.width; -+ height = (float) ws->switcherContext.height; -+ -+ topLeftX = centerX - floor (width / 2.0f); -+ topLeftY = centerY - floor (height / 2.0f); -+ -+ ws->firstViewportX = topLeftX + border; -+ ws->firstViewportY = topLeftY + border; -+ -+ if (!ws->moving) -+ { -+ double left, timeout; -+ -+ timeout = wallGetPreviewTimeout (s->display) * 1000.0f; -+ left = (timeout > 0) ? (float) ws->boxTimeout / timeout : 1.0f; -+ -+ if (left < 0) -+ left = 0.0f; -+ else if (left > 0.5) -+ left = 1.0f; -+ else -+ left = 2 * left; -+ -+ screenTexEnvMode (s, GL_MODULATE); -+ -+ glColor4f (left, left, left, left); -+ glTranslatef (0.0f,0.0f, -(1 - left)); -+ -+ ws->mSzCamera = -(1 - left); -+ } -+ else -+ ws->mSzCamera = 0.0f; -+ -+ /* draw background */ -+ -+ matrix = ws->switcherContext.texture.matrix; -+ matrix.x0 -= topLeftX * matrix.xx; -+ matrix.y0 -= topLeftY * matrix.yy; -+ -+ box.x1 = topLeftX; -+ box.x2 = box.x1 + width; -+ box.y1 = topLeftY; -+ box.y2 = box.y1 + height; -+ -+ enableTexture (s, &ws->switcherContext.texture, COMP_TEXTURE_FILTER_FAST); -+ glBegin (GL_QUADS); -+ wallDrawQuad (&matrix, &box); -+ glEnd (); -+ disableTexture (s, &ws->switcherContext.texture); -+ -+ /* draw thumb */ -+ width = (float) ws->thumbContext.width; -+ height = (float) ws->thumbContext.height; -+ -+ enableTexture (s, &ws->thumbContext.texture, COMP_TEXTURE_FILTER_FAST); -+ glBegin (GL_QUADS); -+ for (i = 0; i < s->hsize; i++) -+ { -+ for (j = 0; j < s->vsize; j++) -+ { -+ if (i == ws->gotoX && j == ws->gotoY && ws->moving) -+ continue; -+ -+ box.x1 = i * (width + border); -+ box.x1 += topLeftX + border; -+ box.x2 = box.x1 + width; -+ box.y1 = j * (height + border); -+ box.y1 += topLeftY + border; -+ box.y2 = box.y1 + height; -+ -+ matrix = ws->thumbContext.texture.matrix; -+ matrix.x0 -= box.x1 * matrix.xx; -+ matrix.y0 -= box.y1 * matrix.yy; -+ -+ wallDrawQuad (&matrix, &box); -+ } -+ } -+ glEnd (); -+ disableTexture (s, &ws->thumbContext.texture); -+ -+ if (ws->moving || ws->showPreview) -+ { -+ /* draw highlight */ -+ int aW, aH; -+ -+ box.x1 = s->x * (width + border) + topLeftX + border; -+ box.x2 = box.x1 + width; -+ box.y1 = s->y * (height + border) + topLeftY + border; -+ box.y2 = box.y1 + height; -+ -+ matrix = ws->highlightContext.texture.matrix; -+ matrix.x0 -= box.x1 * matrix.xx; -+ matrix.y0 -= box.y1 * matrix.yy; -+ -+ enableTexture (s, &ws->highlightContext.texture, -+ COMP_TEXTURE_FILTER_FAST); -+ glBegin (GL_QUADS); -+ wallDrawQuad (&matrix, &box); -+ glEnd (); -+ disableTexture (s, &ws->highlightContext.texture); -+ -+ /* draw arrow */ -+ if (ws->direction >= 0) -+ { -+ enableTexture (s, &ws->arrowContext.texture, -+ COMP_TEXTURE_FILTER_GOOD); -+ -+ aW = ws->arrowContext.width; -+ aH = ws->arrowContext.height; -+ -+ /* if we have a viewport preview we just paint the -+ arrow outside the switcher */ -+ if (wallGetMiniscreen (s->display)) -+ { -+ width = (float) ws->switcherContext.width; -+ height = (float) ws->switcherContext.height; -+ -+ switch (ws->direction) -+ { -+ /* top left */ -+ case 315: -+ box.x1 = topLeftX - aW - border; -+ box.y1 = topLeftY - aH - border; -+ break; -+ /* up */ -+ case 0: -+ box.x1 = topLeftX + width / 2.0f - aW / 2.0f; -+ box.y1 = topLeftY - aH - border; -+ break; -+ /* top right */ -+ case 45: -+ box.x1 = topLeftX + width + border; -+ box.y1 = topLeftY - aH - border; -+ break; -+ /* right */ -+ case 90: -+ box.x1 = topLeftX + width + border; -+ box.y1 = topLeftY + height / 2.0f - aH / 2.0f; -+ break; -+ /* bottom right */ -+ case 135: -+ box.x1 = topLeftX + width + border; -+ box.y1 = topLeftY + height + border; -+ break; -+ /* down */ -+ case 180: -+ box.x1 = topLeftX + width / 2.0f - aW / 2.0f; -+ box.y1 = topLeftY + height + border; -+ break; -+ /* bottom left */ -+ case 225: -+ box.x1 = topLeftX - aW - border; -+ box.y1 = topLeftY + height + border; -+ break; -+ /* left */ -+ case 270: -+ box.x1 = topLeftX - aW - border; -+ box.y1 = topLeftY + height / 2.0f - aH / 2.0f; -+ break; -+ default: -+ break; -+ } -+ } -+ else -+ { -+ /* arrow is visible (no preview is painted over it) */ -+ box.x1 = s->x * (width + border) + topLeftX + border; -+ box.x1 += width / 2 - aW / 2; -+ box.y1 = s->y * (height + border) + topLeftY + border; -+ box.y1 += height / 2 - aH / 2; -+ } -+ -+ box.x2 = box.x1 + aW; -+ box.y2 = box.y1 + aH; -+ -+ glTranslatef (box.x1 + aW / 2, box.y1 + aH / 2, 0.0f); -+ glRotatef (ws->direction, 0.0f, 0.0f, 1.0f); -+ glTranslatef (-box.x1 - aW / 2, -box.y1 - aH / 2, 0.0f); -+ -+ matrix = ws->arrowContext.texture.matrix; -+ matrix.x0 -= box.x1 * matrix.xx; -+ matrix.y0 -= box.y1 * matrix.yy; -+ -+ glBegin (GL_QUADS); -+ wallDrawQuad (&matrix, &box); -+ glEnd (); -+ -+ disableTexture (s, &ws->arrowContext.texture); -+ } -+ } -+ -+ glDisable (GL_BLEND); -+ glEnableClientState (GL_TEXTURE_COORD_ARRAY); -+ screenTexEnvMode (s, GL_REPLACE); -+ glColor4usv (defaultColor); -+} -+ -+static void -+wallPaintScreen (CompScreen *s, -+ CompOutput *outputs, -+ int numOutputs, -+ unsigned int mask) -+{ -+ WALL_SCREEN (s); -+ -+ if (ws->moving && numOutputs > 1 && wallGetMmmode(s) == MmmodeSwitchAll) -+ { -+ outputs = &s->fullscreenOutput; -+ numOutputs = 1; -+ } -+ -+ UNWRAP (ws, s, paintScreen); -+ (*s->paintScreen) (s, outputs, numOutputs, mask); -+ WRAP (ws, s, paintScreen, wallPaintScreen); -+} -+ -+static Bool -+wallPaintOutput (CompScreen *s, -+ const ScreenPaintAttrib *sAttrib, -+ const CompTransform *transform, -+ Region region, -+ CompOutput *output, -+ unsigned int mask) -+{ -+ Bool status; -+ -+ WALL_SCREEN (s); -+ -+ ws->transform = NoTransformation; -+ if (ws->moving) -+ mask |= PAINT_SCREEN_TRANSFORMED_MASK | -+ PAINT_SCREEN_WITH_TRANSFORMED_WINDOWS_MASK; -+ -+ UNWRAP (ws, s, paintOutput); -+ status = (*s->paintOutput) (s, sAttrib, transform, region, output, mask); -+ WRAP (ws, s, paintOutput, wallPaintOutput); -+ -+ if (wallGetShowSwitcher (s->display) && -+ (ws->moving || ws->showPreview || ws->boxTimeout) && -+ (output->id == ws->boxOutputDevice || output == &s->fullscreenOutput)) -+ { -+ CompTransform sTransform = *transform; -+ -+ transformToScreenSpace (s, output, -DEFAULT_Z_CAMERA, &sTransform); -+ -+ glPushMatrix (); -+ glLoadMatrixf (sTransform.m); -+ -+ wallDrawCairoTextureOnScreen (s); -+ -+ glPopMatrix (); -+ -+ if (wallGetMiniscreen (s->display)) -+ { -+ int i, j; -+ float mw, mh; -+ -+ mw = ws->viewportWidth; -+ mh = ws->viewportHeight; -+ -+ ws->transform = MiniScreen; -+ ws->mSAttribs.xScale = mw / s->width; -+ ws->mSAttribs.yScale = mh / s->height; -+ ws->mSAttribs.opacity = OPAQUE * (1.0 + ws->mSzCamera); -+ ws->mSAttribs.saturation = COLOR; -+ -+ for (j = 0; j < s->vsize; j++) -+ { -+ for (i = 0; i < s->hsize; i++) -+ { -+ float mx, my; -+ unsigned int msMask; -+ -+ mx = ws->firstViewportX + -+ (i * (ws->viewportWidth + ws->viewportBorder)); -+ my = ws->firstViewportY + -+ (j * (ws->viewportHeight + ws->viewportBorder)); -+ -+ ws->mSAttribs.xTranslate = mx / output->width; -+ ws->mSAttribs.yTranslate = -my / output->height; -+ -+ ws->mSAttribs.brightness = 0.4f * BRIGHT; -+ -+ if (i == s->x && j == s->y && ws->moving) -+ ws->mSAttribs.brightness = BRIGHT; -+ -+ if ((ws->boxTimeout || ws->showPreview) && -+ !ws->moving && i == s->x && j == s->y) -+ { -+ ws->mSAttribs.brightness = BRIGHT; -+ } -+ -+ setWindowPaintOffset (s, (s->x - i) * s->width, -+ (s->y - j) * s->height); -+ -+ msMask = mask | PAINT_SCREEN_TRANSFORMED_MASK; -+ (*s->paintTransformedOutput) (s, sAttrib, transform, -+ region, output, msMask); -+ -+ -+ } -+ } -+ ws->transform = NoTransformation; -+ setWindowPaintOffset (s, 0, 0); -+ } -+ } -+ -+ return status; -+} -+ -+static void -+wallPreparePaintScreen (CompScreen *s, -+ int msSinceLastPaint) -+{ -+ WALL_SCREEN (s); -+ -+ if (!ws->moving && !ws->showPreview && ws->boxTimeout) -+ ws->boxTimeout -= msSinceLastPaint; -+ -+ if (ws->timer) -+ ws->timer -= msSinceLastPaint; -+ -+ if (ws->moving) -+ { -+ wallComputeTranslation (s, &ws->curPosX, &ws->curPosY); -+ -+ if (ws->moveWindow) -+ { -+ CompWindow *w; -+ -+ w = findWindowAtScreen (s, ws->moveWindow); -+ if (w) -+ { -+ float dx, dy; -+ -+ dx = ws->gotoX - ws->curPosX; -+ dy = ws->gotoY - ws->curPosY; -+ -+ moveWindowToViewportPosition (w, -+ ws->moveWindowX - s->width * dx, -+ ws->moveWindowY - s->height * dy, -+ TRUE); -+ } -+ } -+ } -+ -+ if (ws->moving && ws->curPosX == ws->gotoX && ws->curPosY == ws->gotoY) -+ { -+ ws->moving = FALSE; -+ ws->timer = 0; -+ -+ if (ws->moveWindow) -+ wallReleaseMoveWindow (s); -+ else if (ws->focusDefault) -+ { -+ int i; -+ for (i = 0; i < s->maxGrab; i++) -+ if (s->grabs[i].active) -+ if (strcmp(s->grabs[i].name, "switcher") == 0) -+ break; -+ -+ /* only focus default window if switcher is not active */ -+ if (i == s->maxGrab) -+ focusDefaultWindow (s); -+ } -+ } -+ -+ UNWRAP (ws, s, preparePaintScreen); -+ (*s->preparePaintScreen) (s, msSinceLastPaint); -+ WRAP (ws, s, preparePaintScreen, wallPreparePaintScreen); -+} -+ -+static void -+wallPaintTransformedOutput (CompScreen *s, -+ const ScreenPaintAttrib *sAttrib, -+ const CompTransform *transform, -+ Region region, -+ CompOutput *output, -+ unsigned int mask) -+{ -+ WALL_SCREEN (s); -+ Bool clear = (mask & PAINT_SCREEN_CLEAR_MASK); -+ -+ if (ws->transform == MiniScreen) -+ { -+ CompTransform sTransform = *transform; -+ -+ mask &= ~PAINT_SCREEN_CLEAR_MASK; -+ -+ /* move each screen to the correct output position */ -+ -+ matrixTranslate (&sTransform, -+ -(float) output->region.extents.x1 / -+ (float) output->width, -+ (float) output->region.extents.y1 / -+ (float) output->height, 0.0f); -+ matrixTranslate (&sTransform, 0.0f, 0.0f, -DEFAULT_Z_CAMERA); -+ -+ matrixTranslate (&sTransform, -+ ws->mSAttribs.xTranslate, -+ ws->mSAttribs.yTranslate, -+ ws->mSzCamera); -+ -+ /* move origin to top left */ -+ matrixTranslate (&sTransform, -0.5f, 0.5f, 0.0f); -+ matrixScale (&sTransform, -+ ws->mSAttribs.xScale, ws->mSAttribs.yScale, 1.0); -+ -+ /* revert prepareXCoords region shift. -+ Now all screens display the same */ -+ matrixTranslate (&sTransform, 0.5f, 0.5f, DEFAULT_Z_CAMERA); -+ matrixTranslate (&sTransform, -+ (float) output->region.extents.x1 / -+ (float) output->width, -+ -(float) output->region.extents.y2 / -+ (float) output->height, 0.0f); -+ -+ UNWRAP (ws, s, paintTransformedOutput); -+ (*s->paintTransformedOutput) (s, sAttrib, &sTransform, -+ &s->region, output, mask); -+ WRAP (ws, s, paintTransformedOutput, wallPaintTransformedOutput); -+ return; -+ } -+ -+ UNWRAP (ws, s, paintTransformedOutput); -+ -+ if (!ws->moving) -+ (*s->paintTransformedOutput) (s, sAttrib, transform, -+ region, output, mask); -+ -+ mask &= ~PAINT_SCREEN_CLEAR_MASK; -+ -+ if (ws->moving) -+ { -+ ScreenTransformation oldTransform = ws->transform; -+ CompTransform sTransform = *transform; -+ float xTranslate, yTranslate; -+ float px, py; -+ int tx, ty; -+ Bool movingX, movingY; -+ -+ if (clear) -+ clearTargetOutput (s->display, GL_COLOR_BUFFER_BIT); -+ -+ ws->transform = Sliding; -+ ws->currOutput = output; -+ -+ px = ws->curPosX; -+ py = ws->curPosY; -+ -+ movingX = ((int) floor (px)) != ((int) ceil (px)); -+ movingY = ((int) floor (py)) != ((int) ceil (py)); -+ -+ if (movingY) -+ { -+ ty = ceil (py) - s->y; -+ yTranslate = fmod (py, 1) - 1; -+ -+ matrixTranslate (&sTransform, 0.0f, yTranslate, 0.0f); -+ -+ if (movingX) -+ { -+ tx = ceil (px) - s->x; -+ xTranslate = 1 - fmod (px, 1); -+ -+ setWindowPaintOffset (s, (s->x - ceil(px)) * s->width, -+ (s->y - ceil(py)) * s->height); -+ -+ matrixTranslate (&sTransform, xTranslate, 0.0f, 0.0f); -+ -+ (*s->paintTransformedOutput) (s, sAttrib, &sTransform, -+ &output->region, output, mask); -+ -+ matrixTranslate (&sTransform, -xTranslate, 0.0f, 0.0f); -+ } -+ -+ tx = floor (px) - s->x; -+ xTranslate = -fmod (px, 1); -+ -+ setWindowPaintOffset (s, (s->x - floor(px)) * s->width, -+ (s->y - ceil(py)) * s->height); -+ -+ matrixTranslate (&sTransform, xTranslate, 0.0f, 0.0f); -+ -+ (*s->paintTransformedOutput) (s, sAttrib, &sTransform, -+ &output->region, output, mask); -+ matrixTranslate (&sTransform, -xTranslate, -yTranslate, 0.0f); -+ } -+ -+ ty = floor (py) - s->y; -+ yTranslate = fmod (py, 1); -+ -+ matrixTranslate (&sTransform, 0.0f, yTranslate, 0.0f); -+ -+ if (movingX) -+ { -+ tx = ceil (px) - s->x; -+ xTranslate = 1 - fmod (px, 1); -+ -+ setWindowPaintOffset (s, (s->x - ceil(px)) * s->width, -+ (s->y - floor(py)) * s->height); -+ -+ matrixTranslate (&sTransform, xTranslate, 0.0f, 0.0f); -+ -+ (*s->paintTransformedOutput) (s, sAttrib, &sTransform, -+ &output->region, output, mask); -+ -+ matrixTranslate (&sTransform, -xTranslate, 0.0f, 0.0f); -+ } -+ -+ tx = floor (px) - s->x; -+ xTranslate = -fmod (px, 1); -+ -+ setWindowPaintOffset (s, (s->x - floor(px)) * s->width, -+ (s->y - floor(py)) * s->height); -+ -+ matrixTranslate (&sTransform, xTranslate, 0.0f, 0.0f); -+ (*s->paintTransformedOutput) (s, sAttrib, &sTransform, -+ &output->region, output, mask); -+ -+ setWindowPaintOffset (s, 0, 0); -+ ws->transform = oldTransform; -+ } -+ -+ WRAP (ws, s, paintTransformedOutput, wallPaintTransformedOutput); -+} -+ -+static Bool -+wallPaintWindow (CompWindow *w, -+ const WindowPaintAttrib *attrib, -+ const CompTransform *transform, -+ Region region, -+ unsigned int mask) -+{ -+ Bool status; -+ CompScreen *s = w->screen; -+ -+ WALL_SCREEN (s); -+ -+ if (ws->transform == MiniScreen) -+ { -+ WindowPaintAttrib pA = *attrib; -+ -+ pA.opacity = attrib->opacity * -+ ((float) ws->mSAttribs.opacity / OPAQUE); -+ pA.brightness = attrib->brightness * -+ ((float) ws->mSAttribs.brightness / BRIGHT); -+ pA.saturation = attrib->saturation * -+ ((float) ws->mSAttribs.saturation / COLOR); -+ -+ if (!pA.opacity || !pA.brightness) -+ mask |= PAINT_WINDOW_NO_CORE_INSTANCE_MASK; -+ -+ UNWRAP (ws, s, paintWindow); -+ status = (*s->paintWindow) (w, &pA, transform, region, mask); -+ WRAP (ws, s, paintWindow, wallPaintWindow); -+ } -+ else if (ws->transform == Sliding) -+ { -+ CompTransform wTransform; -+ -+ WALL_WINDOW (w); -+ -+ if (!ww->isSliding) -+ { -+ matrixGetIdentity (&wTransform); -+ transformToScreenSpace (s, ws->currOutput, -DEFAULT_Z_CAMERA, -+ &wTransform); -+ mask |= PAINT_WINDOW_TRANSFORMED_MASK; -+ } -+ else -+ { -+ wTransform = *transform; -+ } -+ -+ UNWRAP (ws, s, paintWindow); -+ status = (*s->paintWindow) (w, attrib, &wTransform, region, mask); -+ WRAP (ws, s, paintWindow, wallPaintWindow); -+ } -+ else -+ { -+ UNWRAP (ws, s, paintWindow); -+ status = (*s->paintWindow) (w, attrib, transform, region, mask); -+ WRAP (ws, s, paintWindow, wallPaintWindow); -+ } -+ -+ return status; -+} -+ -+static void -+wallDonePaintScreen (CompScreen *s) -+{ -+ WALL_SCREEN (s); -+ -+ if (ws->moving || ws->showPreview || ws->boxTimeout) -+ { -+ ws->boxTimeout = MAX (0, ws->boxTimeout); -+ damageScreen (s); -+ } -+ -+ if (!ws->moving && !ws->showPreview && ws->grabIndex) -+ { -+ removeScreenGrab (s, ws->grabIndex, NULL); -+ ws->grabIndex = 0; -+ } -+ -+ UNWRAP (ws, s, donePaintScreen); -+ (*s->donePaintScreen) (s); -+ WRAP (ws, s, donePaintScreen, wallDonePaintScreen); -+ -+} -+ -+static void -+wallCreateCairoContexts (CompScreen *s, -+ Bool initial) -+{ -+ int width, height; -+ -+ WALL_SCREEN (s); -+ -+ ws->viewportWidth = VIEWPORT_SWITCHER_SIZE * -+ (float) wallGetPreviewScale (s->display) / 100.0f; -+ ws->viewportHeight = ws->viewportWidth * -+ (float) s->height / (float) s->width; -+ ws->viewportBorder = wallGetBorderWidth (s->display); -+ -+ width = s->hsize * (ws->viewportWidth + ws->viewportBorder) + -+ ws->viewportBorder; -+ height = s->vsize * (ws->viewportHeight + ws->viewportBorder) + -+ ws->viewportBorder; -+ -+ wallDestroyCairoContext (s, &ws->switcherContext); -+ ws->switcherContext.width = width; -+ ws->switcherContext.height = height; -+ wallSetupCairoContext (s, &ws->switcherContext); -+ wallDrawSwitcherBackground (s); -+ -+ wallDestroyCairoContext (s, &ws->thumbContext); -+ ws->thumbContext.width = ws->viewportWidth; -+ ws->thumbContext.height = ws->viewportHeight; -+ wallSetupCairoContext (s, &ws->thumbContext); -+ wallDrawThumb (s); -+ -+ wallDestroyCairoContext (s, &ws->highlightContext); -+ ws->highlightContext.width = ws->viewportWidth; -+ ws->highlightContext.height = ws->viewportHeight; -+ wallSetupCairoContext (s, &ws->highlightContext); -+ wallDrawHighlight (s); -+ -+ if (initial) -+ { -+ ws->arrowContext.width = ARROW_SIZE; -+ ws->arrowContext.height = ARROW_SIZE; -+ wallSetupCairoContext (s, &ws->arrowContext); -+ wallDrawArrow (s); -+ } -+} -+ -+static void -+wallDisplayOptionChanged (CompDisplay *display, -+ CompOption *opt, -+ WallDisplayOptions num) -+{ -+ CompScreen *s; -+ -+ switch(num) -+ { -+ case WallDisplayOptionOutlineColor: -+ for (s = display->screens; s; s = s->next) -+ { -+ wallDrawSwitcherBackground (s); -+ wallDrawHighlight (s); -+ wallDrawThumb (s); -+ } -+ break; -+ -+ case WallDisplayOptionEdgeRadius: -+ case WallDisplayOptionBackgroundGradientBaseColor: -+ case WallDisplayOptionBackgroundGradientHighlightColor: -+ case WallDisplayOptionBackgroundGradientShadowColor: -+ for (s = display->screens; s; s = s->next) -+ wallDrawSwitcherBackground (s); -+ break; -+ -+ case WallDisplayOptionBorderWidth: -+ case WallDisplayOptionPreviewScale: -+ for (s = display->screens; s; s = s->next) -+ wallCreateCairoContexts (s, FALSE); -+ break; -+ -+ case WallDisplayOptionThumbGradientBaseColor: -+ case WallDisplayOptionThumbGradientHighlightColor: -+ for (s = display->screens; s; s = s->next) -+ wallDrawThumb (s); -+ break; -+ -+ case WallDisplayOptionThumbHighlightGradientBaseColor: -+ case WallDisplayOptionThumbHighlightGradientShadowColor: -+ for (s = display->screens; s; s = s->next) -+ wallDrawHighlight (s); -+ break; -+ -+ case WallDisplayOptionArrowBaseColor: -+ case WallDisplayOptionArrowShadowColor: -+ for (s = display->screens; s; s = s->next) -+ wallDrawArrow (s); -+ break; -+ -+ case WallDisplayOptionNoSlideMatch: -+ for (s = display->screens; s; s = s->next) -+ { -+ CompWindow *w; -+ -+ for (w = s->windows; w; w = w->next) -+ { -+ WALL_WINDOW (w); -+ ww->isSliding = !matchEval (wallGetNoSlideMatch (display), w); -+ } -+ } -+ break; -+ -+ default: -+ break; -+ } -+} -+ -+static Bool -+wallSetOptionForPlugin (CompObject *o, -+ const char *plugin, -+ const char *name, -+ CompOptionValue *value) -+{ -+ Bool status; -+ -+ WALL_CORE (&core); -+ -+ UNWRAP (wc, &core, setOptionForPlugin); -+ status = (*core.setOptionForPlugin) (o, plugin, name, value); -+ WRAP (wc, &core, setOptionForPlugin, wallSetOptionForPlugin); -+ -+ if (status && o->type == COMP_OBJECT_TYPE_SCREEN) -+ { -+ if (strcmp (plugin, "core") == 0) -+ if (strcmp (name, "hsize") == 0 || strcmp (name, "vsize") == 0) -+ { -+ CompScreen *s = (CompScreen *) o; -+ -+ wallCreateCairoContexts (s, FALSE); -+ } -+ } -+ -+ return status; -+} -+ -+static void -+wallMatchExpHandlerChanged (CompDisplay *d) -+{ -+ CompScreen *s; -+ -+ WALL_DISPLAY (d); -+ -+ UNWRAP (wd, d, matchExpHandlerChanged); -+ (*d->matchExpHandlerChanged) (d); -+ WRAP (wd, d, matchExpHandlerChanged, wallMatchExpHandlerChanged); -+ -+ for (s = d->screens; s; s = s->next) -+ { -+ CompWindow *w; -+ -+ for (w = s->windows; w; w = w->next) -+ { -+ WALL_WINDOW (w); -+ -+ ww->isSliding = !matchEval (wallGetNoSlideMatch (d), w); -+ } -+ } -+} -+ -+static void -+wallMatchPropertyChanged (CompDisplay *d, -+ CompWindow *w) -+{ -+ WALL_DISPLAY (d); -+ WALL_WINDOW (w); -+ -+ UNWRAP (wd, d, matchPropertyChanged); -+ (*d->matchPropertyChanged) (d, w); -+ WRAP (wd, d, matchPropertyChanged, wallMatchPropertyChanged); -+ -+ ww->isSliding = !matchEval (wallGetNoSlideMatch (d), w); -+} -+ -+static void -+wallWindowGrabNotify (CompWindow *w, -+ int x, -+ int y, -+ unsigned int state, -+ unsigned int mask) -+{ -+ WALL_SCREEN (w->screen); -+ -+ if (!ws->grabWindow) -+ ws->grabWindow = w; -+ -+ UNWRAP (ws, w->screen, windowGrabNotify); -+ (*w->screen->windowGrabNotify) (w, x, y, state, mask); -+ WRAP (ws, w->screen, windowGrabNotify, wallWindowGrabNotify); -+} -+ -+static void -+wallWindowUngrabNotify (CompWindow *w) -+{ -+ WALL_SCREEN (w->screen); -+ -+ if (w == ws->grabWindow) -+ ws->grabWindow = NULL; -+ -+ UNWRAP (ws, w->screen, windowUngrabNotify); -+ (*w->screen->windowUngrabNotify) (w); -+ WRAP (ws, w->screen, windowUngrabNotify, wallWindowUngrabNotify); -+} -+ -+static void -+wallWindowAdd (CompScreen *s, -+ CompWindow *w) -+{ -+ WALL_WINDOW (w); -+ -+ ww->isSliding = !matchEval (wallGetNoSlideMatch (s->display), w); -+} -+ -+static void -+wallObjectAdd (CompObject *parent, -+ CompObject *object) -+{ -+ static ObjectAddProc dispTab[] = { -+ (ObjectAddProc) 0, /* CoreAdd */ -+ (ObjectAddProc) 0, /* DisplayAdd */ -+ (ObjectAddProc) 0, /* ScreenAdd */ -+ (ObjectAddProc) wallWindowAdd -+ }; -+ -+ WALL_CORE (&core); -+ -+ UNWRAP (wc, &core, objectAdd); -+ (*core.objectAdd) (parent, object); -+ WRAP (wc, &core, objectAdd, wallObjectAdd); -+ -+ DISPATCH (object, dispTab, ARRAY_SIZE (dispTab), (parent, object)); -+} -+ -+static Bool -+wallInitCore (CompPlugin *p, -+ CompCore *c) -+{ -+ WallCore *wc; -+ -+ if (!checkPluginABI ("core", CORE_ABIVERSION)) -+ return FALSE; -+ -+ wc = malloc (sizeof (WallCore)); -+ if (!wc) -+ return FALSE; -+ -+ WallDisplayPrivateIndex = allocateDisplayPrivateIndex (); -+ if (WallDisplayPrivateIndex < 0) -+ { -+ free (wc); -+ return FALSE; -+ } -+ -+ WRAP (wc, c, setOptionForPlugin, wallSetOptionForPlugin); -+ WRAP (wc, c, objectAdd, wallObjectAdd); -+ -+ c->base.privates[WallCorePrivateIndex].ptr = wc; -+ -+ return TRUE; -+} -+ -+static void -+wallFiniCore (CompPlugin *p, -+ CompCore *c) -+{ -+ WALL_CORE (c); -+ -+ UNWRAP (wc, c, setOptionForPlugin); -+ UNWRAP (wc, c, objectAdd); -+ -+ freeDisplayPrivateIndex (WallDisplayPrivateIndex); -+ -+ free (wc); -+} -+ -+static Bool -+wallInitDisplay (CompPlugin *p, -+ CompDisplay *d) -+{ -+ WallDisplay *wd; -+ -+ wd = malloc (sizeof (WallDisplay)); -+ if (!wd) -+ return FALSE; -+ -+ wd->screenPrivateIndex = allocateScreenPrivateIndex (d); -+ if (wd->screenPrivateIndex < 0) -+ { -+ free (wd); -+ return FALSE; -+ } -+ -+ wallSetLeftKeyInitiate (d, wallLeft); -+ wallSetLeftKeyTerminate (d, wallTerminate); -+ wallSetRightKeyInitiate (d, wallRight); -+ wallSetRightKeyTerminate (d, wallTerminate); -+ wallSetUpKeyInitiate (d, wallUp); -+ wallSetUpKeyTerminate (d, wallTerminate); -+ wallSetDownKeyInitiate (d, wallDown); -+ wallSetDownKeyTerminate (d, wallTerminate); -+ wallSetNextKeyInitiate (d, wallNext); -+ wallSetNextKeyTerminate (d, wallTerminate); -+ wallSetPrevKeyInitiate (d, wallPrev); -+ wallSetPrevKeyTerminate (d, wallTerminate); -+ wallSetLeftButtonInitiate (d, wallLeft); -+ wallSetLeftButtonTerminate (d, wallTerminate); -+ wallSetRightButtonInitiate (d, wallRight); -+ wallSetRightButtonTerminate (d, wallTerminate); -+ wallSetUpButtonInitiate (d, wallUp); -+ wallSetUpButtonTerminate (d, wallTerminate); -+ wallSetDownButtonInitiate (d, wallDown); -+ wallSetDownButtonTerminate (d, wallTerminate); -+ wallSetNextButtonInitiate (d, wallNext); -+ wallSetNextButtonTerminate (d, wallTerminate); -+ wallSetPrevButtonInitiate (d, wallPrev); -+ wallSetPrevButtonTerminate (d, wallTerminate); -+ wallSetLeftWindowKeyInitiate (d, wallLeftWithWindow); -+ wallSetLeftWindowKeyTerminate (d, wallTerminate); -+ wallSetRightWindowKeyInitiate (d, wallRightWithWindow); -+ wallSetRightWindowKeyTerminate (d, wallTerminate); -+ wallSetUpWindowKeyInitiate (d, wallUpWithWindow); -+ wallSetUpWindowKeyTerminate (d, wallTerminate); -+ wallSetDownWindowKeyInitiate (d, wallDownWithWindow); -+ wallSetDownWindowKeyTerminate (d, wallTerminate); -+ wallSetFlipLeftEdgeInitiate (d, wallFlipLeft); -+ wallSetFlipRightEdgeInitiate (d, wallFlipRight); -+ wallSetFlipUpEdgeInitiate (d, wallFlipUp); -+ wallSetFlipDownEdgeInitiate (d, wallFlipDown); -+ -+ wallSetEdgeRadiusNotify (d, wallDisplayOptionChanged); -+ wallSetBorderWidthNotify (d, wallDisplayOptionChanged); -+ wallSetPreviewScaleNotify (d, wallDisplayOptionChanged); -+ wallSetOutlineColorNotify (d, wallDisplayOptionChanged); -+ wallSetBackgroundGradientBaseColorNotify (d, wallDisplayOptionChanged); -+ wallSetBackgroundGradientHighlightColorNotify (d, wallDisplayOptionChanged); -+ wallSetBackgroundGradientShadowColorNotify (d, wallDisplayOptionChanged); -+ wallSetThumbGradientBaseColorNotify (d, wallDisplayOptionChanged); -+ wallSetThumbGradientHighlightColorNotify (d, wallDisplayOptionChanged); -+ wallSetThumbHighlightGradientBaseColorNotify (d, wallDisplayOptionChanged); -+ wallSetThumbHighlightGradientShadowColorNotify (d, -+ wallDisplayOptionChanged); -+ wallSetArrowBaseColorNotify (d, wallDisplayOptionChanged); -+ wallSetArrowShadowColorNotify (d, wallDisplayOptionChanged); -+ wallSetNoSlideMatchNotify (d, wallDisplayOptionChanged); -+ -+ WRAP (wd, d, handleEvent, wallHandleEvent); -+ WRAP (wd, d, matchExpHandlerChanged, wallMatchExpHandlerChanged); -+ WRAP (wd, d, matchPropertyChanged, wallMatchPropertyChanged); -+ -+ d->base.privates[WallDisplayPrivateIndex].ptr = wd; -+ -+ return TRUE; -+} -+ -+static void -+wallFiniDisplay (CompPlugin *p, -+ CompDisplay *d) -+{ -+ WALL_DISPLAY (d); -+ -+ UNWRAP (wd, d, handleEvent); -+ UNWRAP (wd, d, matchExpHandlerChanged); -+ UNWRAP (wd, d, matchPropertyChanged); -+ -+ freeScreenPrivateIndex (d, wd->screenPrivateIndex); -+ free (wd); -+} -+ -+static Bool -+wallInitScreen (CompPlugin *p, -+ CompScreen *s) -+{ -+ WallScreen *ws; -+ -+ WALL_DISPLAY (s->display); -+ -+ ws = malloc (sizeof (WallScreen)); -+ if (!ws) -+ return FALSE; -+ -+ ws->windowPrivateIndex = allocateWindowPrivateIndex (s); -+ if (ws->windowPrivateIndex < 0) -+ { -+ free (ws); -+ return FALSE; -+ } -+ -+ ws->timer = 0; -+ ws->boxTimeout = 0; -+ ws->grabIndex = 0; -+ -+ ws->moving = FALSE; -+ ws->showPreview = FALSE; -+ ws->focusDefault = TRUE; -+ ws->moveWindow = None; -+ ws->grabWindow = NULL; -+ -+ ws->transform = NoTransformation; -+ ws->direction = -1; -+ -+ memset (&ws->switcherContext, 0, sizeof (WallCairoContext)); -+ memset (&ws->thumbContext, 0, sizeof (WallCairoContext)); -+ memset (&ws->highlightContext, 0, sizeof (WallCairoContext)); -+ memset (&ws->arrowContext, 0, sizeof (WallCairoContext)); -+ -+ WRAP (ws, s, paintScreen, wallPaintScreen); -+ WRAP (ws, s, paintOutput, wallPaintOutput); -+ WRAP (ws, s, donePaintScreen, wallDonePaintScreen); -+ WRAP (ws, s, paintTransformedOutput, wallPaintTransformedOutput); -+ WRAP (ws, s, preparePaintScreen, wallPreparePaintScreen); -+ WRAP (ws, s, paintWindow, wallPaintWindow); -+ WRAP (ws, s, windowGrabNotify, wallWindowGrabNotify); -+ WRAP (ws, s, windowUngrabNotify, wallWindowUngrabNotify); -+ WRAP (ws, s, activateWindow, wallActivateWindow); -+ -+ s->base.privates[wd->screenPrivateIndex].ptr = ws; -+ -+ wallCreateCairoContexts (s, TRUE); -+ -+ return TRUE; -+} -+ -+static void -+wallFiniScreen (CompPlugin *p, -+ CompScreen *s) -+{ -+ WALL_SCREEN (s); -+ -+ if (ws->grabIndex) -+ removeScreenGrab (s, ws->grabIndex, NULL); -+ -+ wallDestroyCairoContext (s, &ws->switcherContext); -+ wallDestroyCairoContext (s, &ws->thumbContext); -+ wallDestroyCairoContext (s, &ws->highlightContext); -+ wallDestroyCairoContext (s, &ws->arrowContext); -+ -+ UNWRAP (ws, s, paintScreen); -+ UNWRAP (ws, s, paintOutput); -+ UNWRAP (ws, s, donePaintScreen); -+ UNWRAP (ws, s, paintTransformedOutput); -+ UNWRAP (ws, s, preparePaintScreen); -+ UNWRAP (ws, s, paintWindow); -+ UNWRAP (ws, s, windowGrabNotify); -+ UNWRAP (ws, s, windowUngrabNotify); -+ UNWRAP (ws, s, activateWindow); -+ -+ freeWindowPrivateIndex (s, ws->windowPrivateIndex); -+ -+ free(ws); -+} -+ -+static CompBool -+wallInitWindow (CompPlugin *p, -+ CompWindow *w) -+{ -+ WallWindow *ww; -+ -+ WALL_SCREEN (w->screen); -+ -+ ww = malloc (sizeof (WallWindow)); -+ if (!ww) -+ return FALSE; -+ -+ ww->isSliding = TRUE; -+ -+ w->base.privates[ws->windowPrivateIndex].ptr = ww; -+ -+ return TRUE; -+} -+ -+static void -+wallFiniWindow (CompPlugin *p, -+ CompWindow *w) -+{ -+ WALL_WINDOW (w); -+ -+ free (ww); -+} -+ -+static CompBool -+wallInitObject (CompPlugin *p, -+ CompObject *o) -+{ -+ static InitPluginObjectProc dispTab[] = { -+ (InitPluginObjectProc) wallInitCore, -+ (InitPluginObjectProc) wallInitDisplay, -+ (InitPluginObjectProc) wallInitScreen, -+ (InitPluginObjectProc) wallInitWindow -+ }; -+ -+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o)); -+} -+ -+static void -+wallFiniObject (CompPlugin *p, -+ CompObject *o) -+{ -+ static FiniPluginObjectProc dispTab[] = { -+ (FiniPluginObjectProc) wallFiniCore, -+ (FiniPluginObjectProc) wallFiniDisplay, -+ (FiniPluginObjectProc) wallFiniScreen, -+ (FiniPluginObjectProc) wallFiniWindow -+ }; -+ -+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o)); -+} -+ -+static Bool -+wallInit (CompPlugin *p) -+{ -+ dlopen ("libcairo.so.2", RTLD_LAZY); -+ WallCorePrivateIndex = allocateCorePrivateIndex (); -+ if (WallCorePrivateIndex < 0) -+ return FALSE; -+ -+ return TRUE; -+} -+ -+static void -+wallFini (CompPlugin *p) -+{ -+ freeCorePrivateIndex (WallCorePrivateIndex); -+} -+ -+CompPluginVTable wallVTable = { -+ "wall", -+ 0, -+ wallInit, -+ wallFini, -+ wallInitObject, -+ wallFiniObject, -+ 0, -+ 0 -+}; -+ -+CompPluginVTable* -+getCompPluginInfo (void) -+{ -+ return &wallVTable; -+} -diff -upNr compiz-0.8.6.orign/plugins/wall_options.c compiz-0.8.6/plugins/wall_options.c ---- compiz-0.8.6.orign/plugins/wall_options.c 1970-01-01 01:00:00.000000000 +0100 -+++ compiz-0.8.6/plugins/wall_options.c 2010-03-30 14:53:23.509344956 +0200 -@@ -0,0 +1,1949 @@ -+/* -+ * This file is autogenerated with bcop: -+ * The Compiz option code generator -+ * -+ * 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. -+ * -+ */ -+ -+#include -+#include -+#include -+ -+#include -+ -+#include "wall_options.h" -+ -+static int WallOptionsDisplayPrivateIndex; -+ -+static CompMetadata wallOptionsMetadata; -+ -+static CompPluginVTable *wallPluginVTable = NULL; -+CompPluginVTable wallOptionsVTable; -+ -+#define WALL_OPTIONS_DISPLAY(d) PLUGIN_DISPLAY(d, WallOptions, o) -+#define WALL_OPTIONS_SCREEN(s) PLUGIN_SCREEN(s, WallOptions, o) -+ -+typedef struct _WallOptionsDisplay -+{ -+ int screenPrivateIndex; -+ -+ CompOption opt[WallDisplayOptionNum]; -+ wallDisplayOptionChangeNotifyProc notify[WallDisplayOptionNum]; -+} WallOptionsDisplay; -+ -+typedef struct _WallOptionsScreen -+{ -+ CompOption opt[WallScreenOptionNum]; -+ wallScreenOptionChangeNotifyProc notify[WallScreenOptionNum]; -+} WallOptionsScreen; -+ -+Bool wallGetShowSwitcher (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionShowSwitcher].value.b; -+} -+ -+CompOption * wallGetShowSwitcherOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionShowSwitcher]; -+} -+ -+void wallSetShowSwitcherNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionShowSwitcher] = notify; -+} -+ -+Bool wallGetMiniscreen (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionMiniscreen].value.b; -+} -+ -+CompOption * wallGetMiniscreenOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionMiniscreen]; -+} -+ -+void wallSetMiniscreenNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionMiniscreen] = notify; -+} -+ -+float wallGetPreviewTimeout (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionPreviewTimeout].value.f; -+} -+ -+CompOption * wallGetPreviewTimeoutOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionPreviewTimeout]; -+} -+ -+void wallSetPreviewTimeoutNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionPreviewTimeout] = notify; -+} -+ -+int wallGetPreviewScale (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionPreviewScale].value.i; -+} -+ -+CompOption * wallGetPreviewScaleOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionPreviewScale]; -+} -+ -+void wallSetPreviewScaleNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionPreviewScale] = notify; -+} -+ -+int wallGetEdgeRadius (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionEdgeRadius].value.i; -+} -+ -+CompOption * wallGetEdgeRadiusOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionEdgeRadius]; -+} -+ -+void wallSetEdgeRadiusNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionEdgeRadius] = notify; -+} -+ -+int wallGetBorderWidth (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionBorderWidth].value.i; -+} -+ -+CompOption * wallGetBorderWidthOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionBorderWidth]; -+} -+ -+void wallSetBorderWidthNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionBorderWidth] = notify; -+} -+ -+unsigned short * wallGetOutlineColor (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionOutlineColor].value.c; -+} -+ -+unsigned short wallGetOutlineColorRed (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionOutlineColor].value.c[0]; -+} -+ -+unsigned short wallGetOutlineColorGreen (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionOutlineColor].value.c[1]; -+} -+ -+unsigned short wallGetOutlineColorBlue (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionOutlineColor].value.c[2]; -+} -+ -+unsigned short wallGetOutlineColorAlpha (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionOutlineColor].value.c[3]; -+} -+ -+CompOption * wallGetOutlineColorOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionOutlineColor]; -+} -+ -+void wallSetOutlineColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionOutlineColor] = notify; -+} -+ -+unsigned short * wallGetBackgroundGradientBaseColor (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionBackgroundGradientBaseColor].value.c; -+} -+ -+unsigned short wallGetBackgroundGradientBaseColorRed (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionBackgroundGradientBaseColor].value.c[0]; -+} -+ -+unsigned short wallGetBackgroundGradientBaseColorGreen (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionBackgroundGradientBaseColor].value.c[1]; -+} -+ -+unsigned short wallGetBackgroundGradientBaseColorBlue (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionBackgroundGradientBaseColor].value.c[2]; -+} -+ -+unsigned short wallGetBackgroundGradientBaseColorAlpha (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionBackgroundGradientBaseColor].value.c[3]; -+} -+ -+CompOption * wallGetBackgroundGradientBaseColorOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionBackgroundGradientBaseColor]; -+} -+ -+void wallSetBackgroundGradientBaseColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionBackgroundGradientBaseColor] = notify; -+} -+ -+unsigned short * wallGetBackgroundGradientHighlightColor (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionBackgroundGradientHighlightColor].value.c; -+} -+ -+unsigned short wallGetBackgroundGradientHighlightColorRed (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionBackgroundGradientHighlightColor].value.c[0]; -+} -+ -+unsigned short wallGetBackgroundGradientHighlightColorGreen (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionBackgroundGradientHighlightColor].value.c[1]; -+} -+ -+unsigned short wallGetBackgroundGradientHighlightColorBlue (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionBackgroundGradientHighlightColor].value.c[2]; -+} -+ -+unsigned short wallGetBackgroundGradientHighlightColorAlpha (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionBackgroundGradientHighlightColor].value.c[3]; -+} -+ -+CompOption * wallGetBackgroundGradientHighlightColorOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionBackgroundGradientHighlightColor]; -+} -+ -+void wallSetBackgroundGradientHighlightColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionBackgroundGradientHighlightColor] = notify; -+} -+ -+unsigned short * wallGetBackgroundGradientShadowColor (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionBackgroundGradientShadowColor].value.c; -+} -+ -+unsigned short wallGetBackgroundGradientShadowColorRed (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionBackgroundGradientShadowColor].value.c[0]; -+} -+ -+unsigned short wallGetBackgroundGradientShadowColorGreen (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionBackgroundGradientShadowColor].value.c[1]; -+} -+ -+unsigned short wallGetBackgroundGradientShadowColorBlue (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionBackgroundGradientShadowColor].value.c[2]; -+} -+ -+unsigned short wallGetBackgroundGradientShadowColorAlpha (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionBackgroundGradientShadowColor].value.c[3]; -+} -+ -+CompOption * wallGetBackgroundGradientShadowColorOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionBackgroundGradientShadowColor]; -+} -+ -+void wallSetBackgroundGradientShadowColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionBackgroundGradientShadowColor] = notify; -+} -+ -+unsigned short * wallGetThumbGradientBaseColor (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbGradientBaseColor].value.c; -+} -+ -+unsigned short wallGetThumbGradientBaseColorRed (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbGradientBaseColor].value.c[0]; -+} -+ -+unsigned short wallGetThumbGradientBaseColorGreen (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbGradientBaseColor].value.c[1]; -+} -+ -+unsigned short wallGetThumbGradientBaseColorBlue (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbGradientBaseColor].value.c[2]; -+} -+ -+unsigned short wallGetThumbGradientBaseColorAlpha (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbGradientBaseColor].value.c[3]; -+} -+ -+CompOption * wallGetThumbGradientBaseColorOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionThumbGradientBaseColor]; -+} -+ -+void wallSetThumbGradientBaseColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionThumbGradientBaseColor] = notify; -+} -+ -+unsigned short * wallGetThumbGradientHighlightColor (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbGradientHighlightColor].value.c; -+} -+ -+unsigned short wallGetThumbGradientHighlightColorRed (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbGradientHighlightColor].value.c[0]; -+} -+ -+unsigned short wallGetThumbGradientHighlightColorGreen (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbGradientHighlightColor].value.c[1]; -+} -+ -+unsigned short wallGetThumbGradientHighlightColorBlue (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbGradientHighlightColor].value.c[2]; -+} -+ -+unsigned short wallGetThumbGradientHighlightColorAlpha (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbGradientHighlightColor].value.c[3]; -+} -+ -+CompOption * wallGetThumbGradientHighlightColorOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionThumbGradientHighlightColor]; -+} -+ -+void wallSetThumbGradientHighlightColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionThumbGradientHighlightColor] = notify; -+} -+ -+unsigned short * wallGetThumbHighlightGradientBaseColor (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbHighlightGradientBaseColor].value.c; -+} -+ -+unsigned short wallGetThumbHighlightGradientBaseColorRed (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbHighlightGradientBaseColor].value.c[0]; -+} -+ -+unsigned short wallGetThumbHighlightGradientBaseColorGreen (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbHighlightGradientBaseColor].value.c[1]; -+} -+ -+unsigned short wallGetThumbHighlightGradientBaseColorBlue (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbHighlightGradientBaseColor].value.c[2]; -+} -+ -+unsigned short wallGetThumbHighlightGradientBaseColorAlpha (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbHighlightGradientBaseColor].value.c[3]; -+} -+ -+CompOption * wallGetThumbHighlightGradientBaseColorOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionThumbHighlightGradientBaseColor]; -+} -+ -+void wallSetThumbHighlightGradientBaseColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionThumbHighlightGradientBaseColor] = notify; -+} -+ -+unsigned short * wallGetThumbHighlightGradientShadowColor (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbHighlightGradientShadowColor].value.c; -+} -+ -+unsigned short wallGetThumbHighlightGradientShadowColorRed (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbHighlightGradientShadowColor].value.c[0]; -+} -+ -+unsigned short wallGetThumbHighlightGradientShadowColorGreen (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbHighlightGradientShadowColor].value.c[1]; -+} -+ -+unsigned short wallGetThumbHighlightGradientShadowColorBlue (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbHighlightGradientShadowColor].value.c[2]; -+} -+ -+unsigned short wallGetThumbHighlightGradientShadowColorAlpha (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionThumbHighlightGradientShadowColor].value.c[3]; -+} -+ -+CompOption * wallGetThumbHighlightGradientShadowColorOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionThumbHighlightGradientShadowColor]; -+} -+ -+void wallSetThumbHighlightGradientShadowColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionThumbHighlightGradientShadowColor] = notify; -+} -+ -+unsigned short * wallGetArrowBaseColor (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionArrowBaseColor].value.c; -+} -+ -+unsigned short wallGetArrowBaseColorRed (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionArrowBaseColor].value.c[0]; -+} -+ -+unsigned short wallGetArrowBaseColorGreen (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionArrowBaseColor].value.c[1]; -+} -+ -+unsigned short wallGetArrowBaseColorBlue (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionArrowBaseColor].value.c[2]; -+} -+ -+unsigned short wallGetArrowBaseColorAlpha (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionArrowBaseColor].value.c[3]; -+} -+ -+CompOption * wallGetArrowBaseColorOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionArrowBaseColor]; -+} -+ -+void wallSetArrowBaseColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionArrowBaseColor] = notify; -+} -+ -+unsigned short * wallGetArrowShadowColor (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionArrowShadowColor].value.c; -+} -+ -+unsigned short wallGetArrowShadowColorRed (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionArrowShadowColor].value.c[0]; -+} -+ -+unsigned short wallGetArrowShadowColorGreen (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionArrowShadowColor].value.c[1]; -+} -+ -+unsigned short wallGetArrowShadowColorBlue (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionArrowShadowColor].value.c[2]; -+} -+ -+unsigned short wallGetArrowShadowColorAlpha (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionArrowShadowColor].value.c[3]; -+} -+ -+CompOption * wallGetArrowShadowColorOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionArrowShadowColor]; -+} -+ -+void wallSetArrowShadowColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionArrowShadowColor] = notify; -+} -+ -+Bool wallGetAllowWraparound (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionAllowWraparound].value.b; -+} -+ -+CompOption * wallGetAllowWraparoundOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionAllowWraparound]; -+} -+ -+void wallSetAllowWraparoundNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionAllowWraparound] = notify; -+} -+ -+float wallGetSlideDuration (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return od->opt[WallDisplayOptionSlideDuration].value.f; -+} -+ -+CompOption * wallGetSlideDurationOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionSlideDuration]; -+} -+ -+void wallSetSlideDurationNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionSlideDuration] = notify; -+} -+ -+CompMatch * wallGetNoSlideMatch (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionNoSlideMatch].value.match; -+} -+ -+CompOption * wallGetNoSlideMatchOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionNoSlideMatch]; -+} -+ -+void wallSetNoSlideMatchNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionNoSlideMatch] = notify; -+} -+ -+CompAction * wallGetLeftKey (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionLeftKey].value.action; -+} -+ -+void wallSetLeftKeyInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionLeftKey].value.action.initiate = init; -+} -+ -+void wallSetLeftKeyTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionLeftKey].value.action.terminate = term; -+} -+ -+CompOption * wallGetLeftKeyOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionLeftKey]; -+} -+ -+void wallSetLeftKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionLeftKey] = notify; -+} -+ -+CompAction * wallGetLeftButton (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionLeftButton].value.action; -+} -+ -+void wallSetLeftButtonInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionLeftButton].value.action.initiate = init; -+} -+ -+void wallSetLeftButtonTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionLeftButton].value.action.terminate = term; -+} -+ -+CompOption * wallGetLeftButtonOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionLeftButton]; -+} -+ -+void wallSetLeftButtonNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionLeftButton] = notify; -+} -+ -+CompAction * wallGetRightKey (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionRightKey].value.action; -+} -+ -+void wallSetRightKeyInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionRightKey].value.action.initiate = init; -+} -+ -+void wallSetRightKeyTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionRightKey].value.action.terminate = term; -+} -+ -+CompOption * wallGetRightKeyOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionRightKey]; -+} -+ -+void wallSetRightKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionRightKey] = notify; -+} -+ -+CompAction * wallGetRightButton (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionRightButton].value.action; -+} -+ -+void wallSetRightButtonInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionRightButton].value.action.initiate = init; -+} -+ -+void wallSetRightButtonTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionRightButton].value.action.terminate = term; -+} -+ -+CompOption * wallGetRightButtonOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionRightButton]; -+} -+ -+void wallSetRightButtonNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionRightButton] = notify; -+} -+ -+CompAction * wallGetUpKey (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionUpKey].value.action; -+} -+ -+void wallSetUpKeyInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionUpKey].value.action.initiate = init; -+} -+ -+void wallSetUpKeyTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionUpKey].value.action.terminate = term; -+} -+ -+CompOption * wallGetUpKeyOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionUpKey]; -+} -+ -+void wallSetUpKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionUpKey] = notify; -+} -+ -+CompAction * wallGetUpButton (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionUpButton].value.action; -+} -+ -+void wallSetUpButtonInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionUpButton].value.action.initiate = init; -+} -+ -+void wallSetUpButtonTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionUpButton].value.action.terminate = term; -+} -+ -+CompOption * wallGetUpButtonOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionUpButton]; -+} -+ -+void wallSetUpButtonNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionUpButton] = notify; -+} -+ -+CompAction * wallGetDownKey (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionDownKey].value.action; -+} -+ -+void wallSetDownKeyInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionDownKey].value.action.initiate = init; -+} -+ -+void wallSetDownKeyTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionDownKey].value.action.terminate = term; -+} -+ -+CompOption * wallGetDownKeyOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionDownKey]; -+} -+ -+void wallSetDownKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionDownKey] = notify; -+} -+ -+CompAction * wallGetDownButton (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionDownButton].value.action; -+} -+ -+void wallSetDownButtonInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionDownButton].value.action.initiate = init; -+} -+ -+void wallSetDownButtonTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionDownButton].value.action.terminate = term; -+} -+ -+CompOption * wallGetDownButtonOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionDownButton]; -+} -+ -+void wallSetDownButtonNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionDownButton] = notify; -+} -+ -+CompAction * wallGetNextKey (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionNextKey].value.action; -+} -+ -+void wallSetNextKeyInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionNextKey].value.action.initiate = init; -+} -+ -+void wallSetNextKeyTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionNextKey].value.action.terminate = term; -+} -+ -+CompOption * wallGetNextKeyOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionNextKey]; -+} -+ -+void wallSetNextKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionNextKey] = notify; -+} -+ -+CompAction * wallGetNextButton (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionNextButton].value.action; -+} -+ -+void wallSetNextButtonInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionNextButton].value.action.initiate = init; -+} -+ -+void wallSetNextButtonTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionNextButton].value.action.terminate = term; -+} -+ -+CompOption * wallGetNextButtonOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionNextButton]; -+} -+ -+void wallSetNextButtonNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionNextButton] = notify; -+} -+ -+CompAction * wallGetPrevKey (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionPrevKey].value.action; -+} -+ -+void wallSetPrevKeyInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionPrevKey].value.action.initiate = init; -+} -+ -+void wallSetPrevKeyTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionPrevKey].value.action.terminate = term; -+} -+ -+CompOption * wallGetPrevKeyOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionPrevKey]; -+} -+ -+void wallSetPrevKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionPrevKey] = notify; -+} -+ -+CompAction * wallGetPrevButton (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionPrevButton].value.action; -+} -+ -+void wallSetPrevButtonInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionPrevButton].value.action.initiate = init; -+} -+ -+void wallSetPrevButtonTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionPrevButton].value.action.terminate = term; -+} -+ -+CompOption * wallGetPrevButtonOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionPrevButton]; -+} -+ -+void wallSetPrevButtonNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionPrevButton] = notify; -+} -+ -+CompAction * wallGetLeftWindowKey (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionLeftWindowKey].value.action; -+} -+ -+void wallSetLeftWindowKeyInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionLeftWindowKey].value.action.initiate = init; -+} -+ -+void wallSetLeftWindowKeyTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionLeftWindowKey].value.action.terminate = term; -+} -+ -+CompOption * wallGetLeftWindowKeyOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionLeftWindowKey]; -+} -+ -+void wallSetLeftWindowKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionLeftWindowKey] = notify; -+} -+ -+CompAction * wallGetRightWindowKey (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionRightWindowKey].value.action; -+} -+ -+void wallSetRightWindowKeyInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionRightWindowKey].value.action.initiate = init; -+} -+ -+void wallSetRightWindowKeyTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionRightWindowKey].value.action.terminate = term; -+} -+ -+CompOption * wallGetRightWindowKeyOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionRightWindowKey]; -+} -+ -+void wallSetRightWindowKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionRightWindowKey] = notify; -+} -+ -+CompAction * wallGetUpWindowKey (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionUpWindowKey].value.action; -+} -+ -+void wallSetUpWindowKeyInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionUpWindowKey].value.action.initiate = init; -+} -+ -+void wallSetUpWindowKeyTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionUpWindowKey].value.action.terminate = term; -+} -+ -+CompOption * wallGetUpWindowKeyOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionUpWindowKey]; -+} -+ -+void wallSetUpWindowKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionUpWindowKey] = notify; -+} -+ -+CompAction * wallGetDownWindowKey (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionDownWindowKey].value.action; -+} -+ -+void wallSetDownWindowKeyInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionDownWindowKey].value.action.initiate = init; -+} -+ -+void wallSetDownWindowKeyTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionDownWindowKey].value.action.terminate = term; -+} -+ -+CompOption * wallGetDownWindowKeyOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionDownWindowKey]; -+} -+ -+void wallSetDownWindowKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionDownWindowKey] = notify; -+} -+ -+CompAction * wallGetFlipLeftEdge (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionFlipLeftEdge].value.action; -+} -+ -+void wallSetFlipLeftEdgeInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionFlipLeftEdge].value.action.initiate = init; -+} -+ -+void wallSetFlipLeftEdgeTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionFlipLeftEdge].value.action.terminate = term; -+} -+ -+CompOption * wallGetFlipLeftEdgeOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionFlipLeftEdge]; -+} -+ -+void wallSetFlipLeftEdgeNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionFlipLeftEdge] = notify; -+} -+ -+CompAction * wallGetFlipRightEdge (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionFlipRightEdge].value.action; -+} -+ -+void wallSetFlipRightEdgeInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionFlipRightEdge].value.action.initiate = init; -+} -+ -+void wallSetFlipRightEdgeTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionFlipRightEdge].value.action.terminate = term; -+} -+ -+CompOption * wallGetFlipRightEdgeOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionFlipRightEdge]; -+} -+ -+void wallSetFlipRightEdgeNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionFlipRightEdge] = notify; -+} -+ -+CompAction * wallGetFlipUpEdge (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionFlipUpEdge].value.action; -+} -+ -+void wallSetFlipUpEdgeInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionFlipUpEdge].value.action.initiate = init; -+} -+ -+void wallSetFlipUpEdgeTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionFlipUpEdge].value.action.terminate = term; -+} -+ -+CompOption * wallGetFlipUpEdgeOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionFlipUpEdge]; -+} -+ -+void wallSetFlipUpEdgeNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionFlipUpEdge] = notify; -+} -+ -+CompAction * wallGetFlipDownEdge (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionFlipDownEdge].value.action; -+} -+ -+void wallSetFlipDownEdgeInitiate (CompDisplay *d, CompActionCallBackProc init) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionFlipDownEdge].value.action.initiate = init; -+} -+ -+void wallSetFlipDownEdgeTerminate (CompDisplay *d, CompActionCallBackProc term) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->opt[WallDisplayOptionFlipDownEdge].value.action.terminate = term; -+} -+ -+CompOption * wallGetFlipDownEdgeOption (CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[WallDisplayOptionFlipDownEdge]; -+} -+ -+void wallSetFlipDownEdgeNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ od->notify[WallDisplayOptionFlipDownEdge] = notify; -+} -+ -+int wallGetMmmode (CompScreen *s) -+{ -+ WALL_OPTIONS_SCREEN(s); -+ return os->opt[WallScreenOptionMmmode].value.i; -+} -+ -+CompOption * wallGetMmmodeOption (CompScreen *s) -+{ -+ WALL_OPTIONS_SCREEN(s); -+ return &os->opt[WallScreenOptionMmmode]; -+} -+ -+void wallSetMmmodeNotify (CompScreen *s, wallScreenOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_SCREEN(s); -+ os->notify[WallScreenOptionMmmode] = notify; -+} -+ -+Bool wallGetEdgeflipPointer (CompScreen *s) -+{ -+ WALL_OPTIONS_SCREEN(s); -+ return os->opt[WallScreenOptionEdgeflipPointer].value.b; -+} -+ -+CompOption * wallGetEdgeflipPointerOption (CompScreen *s) -+{ -+ WALL_OPTIONS_SCREEN(s); -+ return &os->opt[WallScreenOptionEdgeflipPointer]; -+} -+ -+void wallSetEdgeflipPointerNotify (CompScreen *s, wallScreenOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_SCREEN(s); -+ os->notify[WallScreenOptionEdgeflipPointer] = notify; -+} -+ -+Bool wallGetEdgeflipMove (CompScreen *s) -+{ -+ WALL_OPTIONS_SCREEN(s); -+ return os->opt[WallScreenOptionEdgeflipMove].value.b; -+} -+ -+CompOption * wallGetEdgeflipMoveOption (CompScreen *s) -+{ -+ WALL_OPTIONS_SCREEN(s); -+ return &os->opt[WallScreenOptionEdgeflipMove]; -+} -+ -+void wallSetEdgeflipMoveNotify (CompScreen *s, wallScreenOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_SCREEN(s); -+ os->notify[WallScreenOptionEdgeflipMove] = notify; -+} -+ -+Bool wallGetEdgeflipDnd (CompScreen *s) -+{ -+ WALL_OPTIONS_SCREEN(s); -+ return os->opt[WallScreenOptionEdgeflipDnd].value.b; -+} -+ -+CompOption * wallGetEdgeflipDndOption (CompScreen *s) -+{ -+ WALL_OPTIONS_SCREEN(s); -+ return &os->opt[WallScreenOptionEdgeflipDnd]; -+} -+ -+void wallSetEdgeflipDndNotify (CompScreen *s, wallScreenOptionChangeNotifyProc notify) -+{ -+ WALL_OPTIONS_SCREEN(s); -+ os->notify[WallScreenOptionEdgeflipDnd] = notify; -+} -+ -+CompOption * wallGetDisplayOption (CompDisplay *d, WallDisplayOptions num) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ return &od->opt[num]; -+} -+ -+CompOption * wallGetScreenOption (CompScreen *s, WallScreenOptions num) -+{ -+ WALL_OPTIONS_SCREEN(s); -+ return &os->opt[num]; -+} -+ -+static const CompMetadataOptionInfo wallOptionsDisplayOptionInfo[] = { -+ { "show_switcher", "bool", 0, 0, 0 }, -+ { "miniscreen", "bool", 0, 0, 0 }, -+ { "preview_timeout", "float", "0.02.0", 0, 0 }, -+ { "preview_scale", "int", "0400", 0, 0 }, -+ { "edge_radius", "int", "020", 0, 0 }, -+ { "border_width", "int", "030", 0, 0 }, -+ { "outline_color", "color", 0, 0, 0 }, -+ { "background_gradient_base_color", "color", 0, 0, 0 }, -+ { "background_gradient_highlight_color", "color", 0, 0, 0 }, -+ { "background_gradient_shadow_color", "color", 0, 0, 0 }, -+ { "thumb_gradient_base_color", "color", 0, 0, 0 }, -+ { "thumb_gradient_highlight_color", "color", 0, 0, 0 }, -+ { "thumb_highlight_gradient_base_color", "color", 0, 0, 0 }, -+ { "thumb_highlight_gradient_shadow_color", "color", 0, 0, 0 }, -+ { "arrow_base_color", "color", 0, 0, 0 }, -+ { "arrow_shadow_color", "color", 0, 0, 0 }, -+ { "allow_wraparound", "bool", 0, 0, 0 }, -+ { "slide_duration", "float", "0.05.0", 0, 0 }, -+ { "no_slide_match", "match", 0, 0, 0 }, -+ { "left_key", "key", 0, 0, 0 }, -+ { "left_button", "button", 0, 0, 0 }, -+ { "right_key", "key", 0, 0, 0 }, -+ { "right_button", "button", 0, 0, 0 }, -+ { "up_key", "key", 0, 0, 0 }, -+ { "up_button", "button", 0, 0, 0 }, -+ { "down_key", "key", 0, 0, 0 }, -+ { "down_button", "button", 0, 0, 0 }, -+ { "next_key", "key", 0, 0, 0 }, -+ { "next_button", "button", 0, 0, 0 }, -+ { "prev_key", "key", 0, 0, 0 }, -+ { "prev_button", "button", 0, 0, 0 }, -+ { "left_window_key", "key", 0, 0, 0 }, -+ { "right_window_key", "key", 0, 0, 0 }, -+ { "up_window_key", "key", 0, 0, 0 }, -+ { "down_window_key", "key", 0, 0, 0 }, -+ { "flip_left_edge", "edge", 0, 0, 0 }, -+ { "flip_right_edge", "edge", 0, 0, 0 }, -+ { "flip_up_edge", "edge", 0, 0, 0 }, -+ { "flip_down_edge", "edge", 0, 0, 0 }, -+}; -+ -+static Bool wallOptionsSetDisplayOption (CompPlugin *plugin, CompDisplay *d, const char *name, CompOptionValue *value) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ CompOption *o; -+ int index; -+ -+ o = compFindOption (od->opt, WallDisplayOptionNum, name, &index); -+ -+ if (!o) -+ return FALSE; -+ -+ switch (index) -+ { -+ case WallDisplayOptionShowSwitcher: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionShowSwitcher]) -+ (*od->notify[WallDisplayOptionShowSwitcher]) (d, o, WallDisplayOptionShowSwitcher); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionMiniscreen: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionMiniscreen]) -+ (*od->notify[WallDisplayOptionMiniscreen]) (d, o, WallDisplayOptionMiniscreen); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionPreviewTimeout: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionPreviewTimeout]) -+ (*od->notify[WallDisplayOptionPreviewTimeout]) (d, o, WallDisplayOptionPreviewTimeout); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionPreviewScale: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionPreviewScale]) -+ (*od->notify[WallDisplayOptionPreviewScale]) (d, o, WallDisplayOptionPreviewScale); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionEdgeRadius: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionEdgeRadius]) -+ (*od->notify[WallDisplayOptionEdgeRadius]) (d, o, WallDisplayOptionEdgeRadius); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionBorderWidth: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionBorderWidth]) -+ (*od->notify[WallDisplayOptionBorderWidth]) (d, o, WallDisplayOptionBorderWidth); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionOutlineColor: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionOutlineColor]) -+ (*od->notify[WallDisplayOptionOutlineColor]) (d, o, WallDisplayOptionOutlineColor); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionBackgroundGradientBaseColor: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionBackgroundGradientBaseColor]) -+ (*od->notify[WallDisplayOptionBackgroundGradientBaseColor]) (d, o, WallDisplayOptionBackgroundGradientBaseColor); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionBackgroundGradientHighlightColor: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionBackgroundGradientHighlightColor]) -+ (*od->notify[WallDisplayOptionBackgroundGradientHighlightColor]) (d, o, WallDisplayOptionBackgroundGradientHighlightColor); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionBackgroundGradientShadowColor: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionBackgroundGradientShadowColor]) -+ (*od->notify[WallDisplayOptionBackgroundGradientShadowColor]) (d, o, WallDisplayOptionBackgroundGradientShadowColor); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionThumbGradientBaseColor: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionThumbGradientBaseColor]) -+ (*od->notify[WallDisplayOptionThumbGradientBaseColor]) (d, o, WallDisplayOptionThumbGradientBaseColor); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionThumbGradientHighlightColor: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionThumbGradientHighlightColor]) -+ (*od->notify[WallDisplayOptionThumbGradientHighlightColor]) (d, o, WallDisplayOptionThumbGradientHighlightColor); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionThumbHighlightGradientBaseColor: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionThumbHighlightGradientBaseColor]) -+ (*od->notify[WallDisplayOptionThumbHighlightGradientBaseColor]) (d, o, WallDisplayOptionThumbHighlightGradientBaseColor); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionThumbHighlightGradientShadowColor: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionThumbHighlightGradientShadowColor]) -+ (*od->notify[WallDisplayOptionThumbHighlightGradientShadowColor]) (d, o, WallDisplayOptionThumbHighlightGradientShadowColor); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionArrowBaseColor: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionArrowBaseColor]) -+ (*od->notify[WallDisplayOptionArrowBaseColor]) (d, o, WallDisplayOptionArrowBaseColor); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionArrowShadowColor: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionArrowShadowColor]) -+ (*od->notify[WallDisplayOptionArrowShadowColor]) (d, o, WallDisplayOptionArrowShadowColor); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionAllowWraparound: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionAllowWraparound]) -+ (*od->notify[WallDisplayOptionAllowWraparound]) (d, o, WallDisplayOptionAllowWraparound); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionSlideDuration: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionSlideDuration]) -+ (*od->notify[WallDisplayOptionSlideDuration]) (d, o, WallDisplayOptionSlideDuration); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionNoSlideMatch: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionNoSlideMatch]) -+ (*od->notify[WallDisplayOptionNoSlideMatch]) (d, o, WallDisplayOptionNoSlideMatch); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionLeftKey: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionLeftKey]) -+ (*od->notify[WallDisplayOptionLeftKey]) (d, o, WallDisplayOptionLeftKey); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionLeftButton: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionLeftButton]) -+ (*od->notify[WallDisplayOptionLeftButton]) (d, o, WallDisplayOptionLeftButton); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionRightKey: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionRightKey]) -+ (*od->notify[WallDisplayOptionRightKey]) (d, o, WallDisplayOptionRightKey); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionRightButton: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionRightButton]) -+ (*od->notify[WallDisplayOptionRightButton]) (d, o, WallDisplayOptionRightButton); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionUpKey: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionUpKey]) -+ (*od->notify[WallDisplayOptionUpKey]) (d, o, WallDisplayOptionUpKey); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionUpButton: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionUpButton]) -+ (*od->notify[WallDisplayOptionUpButton]) (d, o, WallDisplayOptionUpButton); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionDownKey: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionDownKey]) -+ (*od->notify[WallDisplayOptionDownKey]) (d, o, WallDisplayOptionDownKey); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionDownButton: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionDownButton]) -+ (*od->notify[WallDisplayOptionDownButton]) (d, o, WallDisplayOptionDownButton); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionNextKey: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionNextKey]) -+ (*od->notify[WallDisplayOptionNextKey]) (d, o, WallDisplayOptionNextKey); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionNextButton: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionNextButton]) -+ (*od->notify[WallDisplayOptionNextButton]) (d, o, WallDisplayOptionNextButton); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionPrevKey: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionPrevKey]) -+ (*od->notify[WallDisplayOptionPrevKey]) (d, o, WallDisplayOptionPrevKey); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionPrevButton: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionPrevButton]) -+ (*od->notify[WallDisplayOptionPrevButton]) (d, o, WallDisplayOptionPrevButton); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionLeftWindowKey: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionLeftWindowKey]) -+ (*od->notify[WallDisplayOptionLeftWindowKey]) (d, o, WallDisplayOptionLeftWindowKey); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionRightWindowKey: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionRightWindowKey]) -+ (*od->notify[WallDisplayOptionRightWindowKey]) (d, o, WallDisplayOptionRightWindowKey); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionUpWindowKey: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionUpWindowKey]) -+ (*od->notify[WallDisplayOptionUpWindowKey]) (d, o, WallDisplayOptionUpWindowKey); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionDownWindowKey: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionDownWindowKey]) -+ (*od->notify[WallDisplayOptionDownWindowKey]) (d, o, WallDisplayOptionDownWindowKey); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionFlipLeftEdge: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionFlipLeftEdge]) -+ (*od->notify[WallDisplayOptionFlipLeftEdge]) (d, o, WallDisplayOptionFlipLeftEdge); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionFlipRightEdge: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionFlipRightEdge]) -+ (*od->notify[WallDisplayOptionFlipRightEdge]) (d, o, WallDisplayOptionFlipRightEdge); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionFlipUpEdge: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionFlipUpEdge]) -+ (*od->notify[WallDisplayOptionFlipUpEdge]) (d, o, WallDisplayOptionFlipUpEdge); -+ return TRUE; -+ } -+ break; -+ case WallDisplayOptionFlipDownEdge: -+ if (compSetDisplayOption (d, o, value)) -+ { -+ if (od->notify[WallDisplayOptionFlipDownEdge]) -+ (*od->notify[WallDisplayOptionFlipDownEdge]) (d, o, WallDisplayOptionFlipDownEdge); -+ return TRUE; -+ } -+ break; -+ default: -+ break; -+ } -+ return FALSE; -+} -+ -+static CompOption * wallOptionsGetDisplayOptions (CompPlugin *plugin, CompDisplay *d, int *count) -+{ -+ WALL_OPTIONS_DISPLAY(d); -+ if (!od) -+ { -+ *count = 0; -+ return NULL; -+ } -+ *count = WallDisplayOptionNum; -+ return od->opt; -+} -+ -+static const CompMetadataOptionInfo wallOptionsScreenOptionInfo[] = { -+ { "mmmode", "int", "01", 0, 0 }, -+ { "edgeflip_pointer", "bool", 0, 0, 0 }, -+ { "edgeflip_move", "bool", 0, 0, 0 }, -+ { "edgeflip_dnd", "bool", 0, 0, 0 }, -+}; -+ -+static Bool wallOptionsSetScreenOption (CompPlugin *plugin, CompScreen *s, const char *name, CompOptionValue *value) -+{ -+ WALL_OPTIONS_SCREEN(s); -+ CompOption *o; -+ int index; -+ -+ o = compFindOption (os->opt, WallScreenOptionNum, name, &index); -+ -+ if (!o) -+ return FALSE; -+ -+ switch (index) -+ { -+ case WallScreenOptionMmmode: -+ if (compSetScreenOption (s, o, value)) -+ { -+ if (os->notify[WallScreenOptionMmmode]) -+ (*os->notify[WallScreenOptionMmmode]) (s, o, WallScreenOptionMmmode); -+ return TRUE; -+ } -+ break; -+ case WallScreenOptionEdgeflipPointer: -+ if (compSetScreenOption (s, o, value)) -+ { -+ if (os->notify[WallScreenOptionEdgeflipPointer]) -+ (*os->notify[WallScreenOptionEdgeflipPointer]) (s, o, WallScreenOptionEdgeflipPointer); -+ return TRUE; -+ } -+ break; -+ case WallScreenOptionEdgeflipMove: -+ if (compSetScreenOption (s, o, value)) -+ { -+ if (os->notify[WallScreenOptionEdgeflipMove]) -+ (*os->notify[WallScreenOptionEdgeflipMove]) (s, o, WallScreenOptionEdgeflipMove); -+ return TRUE; -+ } -+ break; -+ case WallScreenOptionEdgeflipDnd: -+ if (compSetScreenOption (s, o, value)) -+ { -+ if (os->notify[WallScreenOptionEdgeflipDnd]) -+ (*os->notify[WallScreenOptionEdgeflipDnd]) (s, o, WallScreenOptionEdgeflipDnd); -+ return TRUE; -+ } -+ break; -+ default: -+ break; -+ } -+ return FALSE; -+} -+ -+static CompOption * wallOptionsGetScreenOptions (CompPlugin *plugin, CompScreen *s, int *count) -+{ -+ WALL_OPTIONS_SCREEN(s); -+ if (!os) -+ { -+ *count = 0; -+ return NULL; -+ } -+ *count = WallScreenOptionNum; -+ return os->opt; -+} -+ -+static Bool wallOptionsInitScreen (CompPlugin *p, CompScreen *s) -+{ -+ WallOptionsScreen *os; -+ -+ WALL_OPTIONS_DISPLAY (s->display); -+ -+ os = calloc (1, sizeof(WallOptionsScreen)); -+ if (!os) -+ return FALSE; -+ -+ s->base.privates[od->screenPrivateIndex].ptr = os; -+ -+ if (!compInitScreenOptionsFromMetadata (s, &wallOptionsMetadata, wallOptionsScreenOptionInfo, os->opt, WallScreenOptionNum)) -+ { -+ free (os); -+ return FALSE; -+ } -+ -+ return TRUE; -+} -+ -+static void wallOptionsFiniScreen (CompPlugin *p, CompScreen *s) -+{ -+ WALL_OPTIONS_SCREEN (s); -+ WALL_OPTIONS_DISPLAY (s->display); -+ -+ -+ compFiniScreenOptions (s, os->opt, WallScreenOptionNum); -+ -+ free (os); -+ s->base.privates[od->screenPrivateIndex].ptr = NULL; -+} -+ -+static Bool wallOptionsInitDisplay (CompPlugin *p, CompDisplay *d) -+{ -+ WallOptionsDisplay *od; -+ -+ -+ od = calloc (1, sizeof(WallOptionsDisplay)); -+ if (!od) -+ return FALSE; -+ -+ od->screenPrivateIndex = allocateScreenPrivateIndex(d); -+ if (od->screenPrivateIndex < 0) -+ { -+ free(od); -+ return FALSE; -+ } -+ -+ d->base.privates[WallOptionsDisplayPrivateIndex].ptr = od; -+ -+ if (!compInitDisplayOptionsFromMetadata (d, &wallOptionsMetadata, wallOptionsDisplayOptionInfo, od->opt, WallDisplayOptionNum)) -+ { -+ free (od); -+ return FALSE; -+ } -+ -+ return TRUE; -+} -+ -+static void wallOptionsFiniDisplay (CompPlugin *p, CompDisplay *d) -+{ -+ WALL_OPTIONS_DISPLAY (d); -+ -+ freeScreenPrivateIndex(d, od->screenPrivateIndex); -+ -+ compFiniDisplayOptions (d, od->opt, WallDisplayOptionNum); -+ -+ free (od); -+ d->base.privates[WallOptionsDisplayPrivateIndex].ptr = NULL; -+} -+ -+static Bool wallOptionsInit (CompPlugin *p) -+{ -+ WallOptionsDisplayPrivateIndex = allocateDisplayPrivateIndex(); -+ if (WallOptionsDisplayPrivateIndex < 0) -+ return FALSE; -+ -+ if (!compInitPluginMetadataFromInfo (&wallOptionsMetadata, "wall",wallOptionsDisplayOptionInfo, WallDisplayOptionNum, wallOptionsScreenOptionInfo, WallScreenOptionNum)) -+ return FALSE; -+ -+ compAddMetadataFromFile (&wallOptionsMetadata, "wall"); -+ if (wallPluginVTable && wallPluginVTable->init) -+ return wallPluginVTable->init (p); -+ return TRUE; -+} -+ -+static void wallOptionsFini (CompPlugin *p) -+{ -+ if (wallPluginVTable && wallPluginVTable->fini) -+ wallPluginVTable->fini (p); -+ -+ if (WallOptionsDisplayPrivateIndex >= 0) -+ freeDisplayPrivateIndex (WallOptionsDisplayPrivateIndex); -+ -+ compFiniMetadata (&wallOptionsMetadata); -+} -+ -+static CompBool wallOptionsInitObject (CompPlugin *p, CompObject *o) -+{ -+ static InitPluginObjectProc dispTab[] = { -+ (InitPluginObjectProc) 0, -+ (InitPluginObjectProc) wallOptionsInitDisplay, -+ (InitPluginObjectProc) wallOptionsInitScreen -+ }; -+ -+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o)); -+} -+ -+static void wallOptionsFiniObject (CompPlugin *p, CompObject *o) -+{ -+ static FiniPluginObjectProc dispTab[] = { -+ (FiniPluginObjectProc) 0, -+ (FiniPluginObjectProc) wallOptionsFiniDisplay, -+ (FiniPluginObjectProc) wallOptionsFiniScreen -+ }; -+ -+ DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o)); -+} -+ -+static CompBool wallOptionsInitObjectWrapper (CompPlugin *p, CompObject *o) -+{ -+ CompBool rv = TRUE; -+ rv = wallOptionsInitObject (p, o); -+ if (wallPluginVTable->initObject) -+ rv &= wallPluginVTable->initObject (p, o); -+ return rv; -+} -+ -+static void wallOptionsFiniObjectWrapper (CompPlugin *p, CompObject *o) -+{ -+ if (wallPluginVTable->finiObject) -+ wallPluginVTable->finiObject (p, o); -+ wallOptionsFiniObject (p, o); -+} -+ -+static CompOption * wallOptionsGetObjectOptions (CompPlugin *p, CompObject *o, int *count) -+{ -+ static GetPluginObjectOptionsProc dispTab[] = { -+ (GetPluginObjectOptionsProc) 0, -+ (GetPluginObjectOptionsProc) wallOptionsGetDisplayOptions, -+ (GetPluginObjectOptionsProc) wallOptionsGetScreenOptions -+ }; -+ -+ *count = 0; -+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), -+ NULL, (p, o, count)); -+} -+ -+static CompBool wallOptionsSetObjectOption (CompPlugin *p, CompObject *o, const char *name, CompOptionValue *value) -+{ -+ static SetPluginObjectOptionProc dispTab[] = { -+ (SetPluginObjectOptionProc) 0, -+ (SetPluginObjectOptionProc) wallOptionsSetDisplayOption, -+ (SetPluginObjectOptionProc) wallOptionsSetScreenOption -+ }; -+ -+ RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), FALSE, -+ (p, o, name, value)); -+} -+ -+static CompMetadata * -+wallOptionsGetMetadata (CompPlugin *plugin) -+{ -+ return &wallOptionsMetadata; -+} -+ -+CompPluginVTable *getCompPluginInfo20070830 (void) -+{ -+ if (!wallPluginVTable) -+ { -+ wallPluginVTable = getCompPluginInfo (); -+ memcpy(&wallOptionsVTable, wallPluginVTable, sizeof(CompPluginVTable)); -+ wallOptionsVTable.getMetadata = wallOptionsGetMetadata; -+ wallOptionsVTable.init = wallOptionsInit; -+ wallOptionsVTable.fini = wallOptionsFini; -+ wallOptionsVTable.initObject = wallOptionsInitObjectWrapper; -+ wallOptionsVTable.finiObject = wallOptionsFiniObjectWrapper; -+ wallOptionsVTable.getObjectOptions = wallOptionsGetObjectOptions; -+ wallOptionsVTable.setObjectOption = wallOptionsSetObjectOption; -+ -+ } -+ return &wallOptionsVTable; -+} -+ -diff -upNr compiz-0.8.6.orign/plugins/wall_options.h compiz-0.8.6/plugins/wall_options.h ---- compiz-0.8.6.orign/plugins/wall_options.h 1970-01-01 01:00:00.000000000 +0100 -+++ compiz-0.8.6/plugins/wall_options.h 2010-03-30 14:53:23.510343112 +0200 -@@ -0,0 +1,375 @@ -+/* -+ * This file is autogenerated with bcop: -+ * The Compiz option code generator -+ * -+ * 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. -+ * -+ */ -+ -+#ifndef _WALL_OPTIONS_H -+#define _WALL_OPTIONS_H -+ -+#include -+ -+COMPIZ_BEGIN_DECLS -+ -+CompPluginVTable * getCompPluginInfo (void); -+ -+typedef enum -+{ -+ WallDisplayOptionShowSwitcher, -+ WallDisplayOptionMiniscreen, -+ WallDisplayOptionPreviewTimeout, -+ WallDisplayOptionPreviewScale, -+ WallDisplayOptionEdgeRadius, -+ WallDisplayOptionBorderWidth, -+ WallDisplayOptionOutlineColor, -+ WallDisplayOptionBackgroundGradientBaseColor, -+ WallDisplayOptionBackgroundGradientHighlightColor, -+ WallDisplayOptionBackgroundGradientShadowColor, -+ WallDisplayOptionThumbGradientBaseColor, -+ WallDisplayOptionThumbGradientHighlightColor, -+ WallDisplayOptionThumbHighlightGradientBaseColor, -+ WallDisplayOptionThumbHighlightGradientShadowColor, -+ WallDisplayOptionArrowBaseColor, -+ WallDisplayOptionArrowShadowColor, -+ WallDisplayOptionAllowWraparound, -+ WallDisplayOptionSlideDuration, -+ WallDisplayOptionNoSlideMatch, -+ WallDisplayOptionLeftKey, -+ WallDisplayOptionLeftButton, -+ WallDisplayOptionRightKey, -+ WallDisplayOptionRightButton, -+ WallDisplayOptionUpKey, -+ WallDisplayOptionUpButton, -+ WallDisplayOptionDownKey, -+ WallDisplayOptionDownButton, -+ WallDisplayOptionNextKey, -+ WallDisplayOptionNextButton, -+ WallDisplayOptionPrevKey, -+ WallDisplayOptionPrevButton, -+ WallDisplayOptionLeftWindowKey, -+ WallDisplayOptionRightWindowKey, -+ WallDisplayOptionUpWindowKey, -+ WallDisplayOptionDownWindowKey, -+ WallDisplayOptionFlipLeftEdge, -+ WallDisplayOptionFlipRightEdge, -+ WallDisplayOptionFlipUpEdge, -+ WallDisplayOptionFlipDownEdge, -+ WallDisplayOptionNum -+} WallDisplayOptions; -+ -+typedef void (*wallDisplayOptionChangeNotifyProc) (CompDisplay *display, CompOption *opt, WallDisplayOptions num); -+ -+CompOption *wallGetDisplayOption (CompDisplay *d, WallDisplayOptions num); -+ -+typedef enum -+{ -+ WallScreenOptionMmmode, -+ WallScreenOptionEdgeflipPointer, -+ WallScreenOptionEdgeflipMove, -+ WallScreenOptionEdgeflipDnd, -+ WallScreenOptionNum -+} WallScreenOptions; -+ -+typedef void (*wallScreenOptionChangeNotifyProc) (CompScreen *screen, CompOption *opt, WallScreenOptions num); -+ -+CompOption *wallGetScreenOption (CompScreen *s, WallScreenOptions num); -+ -+typedef enum -+{ -+ MmmodeSwitchAll = 0, -+ MmmodeSwitchSeparately = 1, -+} WallMmmodeEnum; -+ -+Bool wallGetShowSwitcher (CompDisplay *d); -+CompOption * wallGetShowSwitcherOption (CompDisplay *d); -+void wallSetShowSwitcherNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+Bool wallGetMiniscreen (CompDisplay *d); -+CompOption * wallGetMiniscreenOption (CompDisplay *d); -+void wallSetMiniscreenNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+float wallGetPreviewTimeout (CompDisplay *d); -+CompOption * wallGetPreviewTimeoutOption (CompDisplay *d); -+void wallSetPreviewTimeoutNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+int wallGetPreviewScale (CompDisplay *d); -+CompOption * wallGetPreviewScaleOption (CompDisplay *d); -+void wallSetPreviewScaleNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+int wallGetEdgeRadius (CompDisplay *d); -+CompOption * wallGetEdgeRadiusOption (CompDisplay *d); -+void wallSetEdgeRadiusNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+int wallGetBorderWidth (CompDisplay *d); -+CompOption * wallGetBorderWidthOption (CompDisplay *d); -+void wallSetBorderWidthNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+unsigned short * wallGetOutlineColor (CompDisplay *d); -+unsigned short wallGetOutlineColorRed (CompDisplay *d); -+unsigned short wallGetOutlineColorGreen (CompDisplay *d); -+unsigned short wallGetOutlineColorBlue (CompDisplay *d); -+unsigned short wallGetOutlineColorAlpha (CompDisplay *d); -+CompOption * wallGetOutlineColorOption (CompDisplay *d); -+void wallSetOutlineColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+unsigned short * wallGetBackgroundGradientBaseColor (CompDisplay *d); -+unsigned short wallGetBackgroundGradientBaseColorRed (CompDisplay *d); -+unsigned short wallGetBackgroundGradientBaseColorGreen (CompDisplay *d); -+unsigned short wallGetBackgroundGradientBaseColorBlue (CompDisplay *d); -+unsigned short wallGetBackgroundGradientBaseColorAlpha (CompDisplay *d); -+CompOption * wallGetBackgroundGradientBaseColorOption (CompDisplay *d); -+void wallSetBackgroundGradientBaseColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+unsigned short * wallGetBackgroundGradientHighlightColor (CompDisplay *d); -+unsigned short wallGetBackgroundGradientHighlightColorRed (CompDisplay *d); -+unsigned short wallGetBackgroundGradientHighlightColorGreen (CompDisplay *d); -+unsigned short wallGetBackgroundGradientHighlightColorBlue (CompDisplay *d); -+unsigned short wallGetBackgroundGradientHighlightColorAlpha (CompDisplay *d); -+CompOption * wallGetBackgroundGradientHighlightColorOption (CompDisplay *d); -+void wallSetBackgroundGradientHighlightColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+unsigned short * wallGetBackgroundGradientShadowColor (CompDisplay *d); -+unsigned short wallGetBackgroundGradientShadowColorRed (CompDisplay *d); -+unsigned short wallGetBackgroundGradientShadowColorGreen (CompDisplay *d); -+unsigned short wallGetBackgroundGradientShadowColorBlue (CompDisplay *d); -+unsigned short wallGetBackgroundGradientShadowColorAlpha (CompDisplay *d); -+CompOption * wallGetBackgroundGradientShadowColorOption (CompDisplay *d); -+void wallSetBackgroundGradientShadowColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+unsigned short * wallGetThumbGradientBaseColor (CompDisplay *d); -+unsigned short wallGetThumbGradientBaseColorRed (CompDisplay *d); -+unsigned short wallGetThumbGradientBaseColorGreen (CompDisplay *d); -+unsigned short wallGetThumbGradientBaseColorBlue (CompDisplay *d); -+unsigned short wallGetThumbGradientBaseColorAlpha (CompDisplay *d); -+CompOption * wallGetThumbGradientBaseColorOption (CompDisplay *d); -+void wallSetThumbGradientBaseColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+unsigned short * wallGetThumbGradientHighlightColor (CompDisplay *d); -+unsigned short wallGetThumbGradientHighlightColorRed (CompDisplay *d); -+unsigned short wallGetThumbGradientHighlightColorGreen (CompDisplay *d); -+unsigned short wallGetThumbGradientHighlightColorBlue (CompDisplay *d); -+unsigned short wallGetThumbGradientHighlightColorAlpha (CompDisplay *d); -+CompOption * wallGetThumbGradientHighlightColorOption (CompDisplay *d); -+void wallSetThumbGradientHighlightColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+unsigned short * wallGetThumbHighlightGradientBaseColor (CompDisplay *d); -+unsigned short wallGetThumbHighlightGradientBaseColorRed (CompDisplay *d); -+unsigned short wallGetThumbHighlightGradientBaseColorGreen (CompDisplay *d); -+unsigned short wallGetThumbHighlightGradientBaseColorBlue (CompDisplay *d); -+unsigned short wallGetThumbHighlightGradientBaseColorAlpha (CompDisplay *d); -+CompOption * wallGetThumbHighlightGradientBaseColorOption (CompDisplay *d); -+void wallSetThumbHighlightGradientBaseColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+unsigned short * wallGetThumbHighlightGradientShadowColor (CompDisplay *d); -+unsigned short wallGetThumbHighlightGradientShadowColorRed (CompDisplay *d); -+unsigned short wallGetThumbHighlightGradientShadowColorGreen (CompDisplay *d); -+unsigned short wallGetThumbHighlightGradientShadowColorBlue (CompDisplay *d); -+unsigned short wallGetThumbHighlightGradientShadowColorAlpha (CompDisplay *d); -+CompOption * wallGetThumbHighlightGradientShadowColorOption (CompDisplay *d); -+void wallSetThumbHighlightGradientShadowColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+unsigned short * wallGetArrowBaseColor (CompDisplay *d); -+unsigned short wallGetArrowBaseColorRed (CompDisplay *d); -+unsigned short wallGetArrowBaseColorGreen (CompDisplay *d); -+unsigned short wallGetArrowBaseColorBlue (CompDisplay *d); -+unsigned short wallGetArrowBaseColorAlpha (CompDisplay *d); -+CompOption * wallGetArrowBaseColorOption (CompDisplay *d); -+void wallSetArrowBaseColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+unsigned short * wallGetArrowShadowColor (CompDisplay *d); -+unsigned short wallGetArrowShadowColorRed (CompDisplay *d); -+unsigned short wallGetArrowShadowColorGreen (CompDisplay *d); -+unsigned short wallGetArrowShadowColorBlue (CompDisplay *d); -+unsigned short wallGetArrowShadowColorAlpha (CompDisplay *d); -+CompOption * wallGetArrowShadowColorOption (CompDisplay *d); -+void wallSetArrowShadowColorNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+Bool wallGetAllowWraparound (CompDisplay *d); -+CompOption * wallGetAllowWraparoundOption (CompDisplay *d); -+void wallSetAllowWraparoundNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+float wallGetSlideDuration (CompDisplay *d); -+CompOption * wallGetSlideDurationOption (CompDisplay *d); -+void wallSetSlideDurationNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompMatch * wallGetNoSlideMatch (CompDisplay *d); -+CompOption * wallGetNoSlideMatchOption (CompDisplay *d); -+void wallSetNoSlideMatchNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetLeftKey (CompDisplay *d); -+void wallSetLeftKeyInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetLeftKeyTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetLeftKeyOption (CompDisplay *d); -+void wallSetLeftKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetLeftButton (CompDisplay *d); -+void wallSetLeftButtonInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetLeftButtonTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetLeftButtonOption (CompDisplay *d); -+void wallSetLeftButtonNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetRightKey (CompDisplay *d); -+void wallSetRightKeyInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetRightKeyTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetRightKeyOption (CompDisplay *d); -+void wallSetRightKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetRightButton (CompDisplay *d); -+void wallSetRightButtonInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetRightButtonTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetRightButtonOption (CompDisplay *d); -+void wallSetRightButtonNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetUpKey (CompDisplay *d); -+void wallSetUpKeyInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetUpKeyTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetUpKeyOption (CompDisplay *d); -+void wallSetUpKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetUpButton (CompDisplay *d); -+void wallSetUpButtonInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetUpButtonTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetUpButtonOption (CompDisplay *d); -+void wallSetUpButtonNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetDownKey (CompDisplay *d); -+void wallSetDownKeyInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetDownKeyTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetDownKeyOption (CompDisplay *d); -+void wallSetDownKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetDownButton (CompDisplay *d); -+void wallSetDownButtonInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetDownButtonTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetDownButtonOption (CompDisplay *d); -+void wallSetDownButtonNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetNextKey (CompDisplay *d); -+void wallSetNextKeyInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetNextKeyTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetNextKeyOption (CompDisplay *d); -+void wallSetNextKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetNextButton (CompDisplay *d); -+void wallSetNextButtonInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetNextButtonTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetNextButtonOption (CompDisplay *d); -+void wallSetNextButtonNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetPrevKey (CompDisplay *d); -+void wallSetPrevKeyInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetPrevKeyTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetPrevKeyOption (CompDisplay *d); -+void wallSetPrevKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetPrevButton (CompDisplay *d); -+void wallSetPrevButtonInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetPrevButtonTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetPrevButtonOption (CompDisplay *d); -+void wallSetPrevButtonNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetLeftWindowKey (CompDisplay *d); -+void wallSetLeftWindowKeyInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetLeftWindowKeyTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetLeftWindowKeyOption (CompDisplay *d); -+void wallSetLeftWindowKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetRightWindowKey (CompDisplay *d); -+void wallSetRightWindowKeyInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetRightWindowKeyTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetRightWindowKeyOption (CompDisplay *d); -+void wallSetRightWindowKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetUpWindowKey (CompDisplay *d); -+void wallSetUpWindowKeyInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetUpWindowKeyTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetUpWindowKeyOption (CompDisplay *d); -+void wallSetUpWindowKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetDownWindowKey (CompDisplay *d); -+void wallSetDownWindowKeyInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetDownWindowKeyTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetDownWindowKeyOption (CompDisplay *d); -+void wallSetDownWindowKeyNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetFlipLeftEdge (CompDisplay *d); -+void wallSetFlipLeftEdgeInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetFlipLeftEdgeTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetFlipLeftEdgeOption (CompDisplay *d); -+void wallSetFlipLeftEdgeNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetFlipRightEdge (CompDisplay *d); -+void wallSetFlipRightEdgeInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetFlipRightEdgeTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetFlipRightEdgeOption (CompDisplay *d); -+void wallSetFlipRightEdgeNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetFlipUpEdge (CompDisplay *d); -+void wallSetFlipUpEdgeInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetFlipUpEdgeTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetFlipUpEdgeOption (CompDisplay *d); -+void wallSetFlipUpEdgeNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+CompAction * wallGetFlipDownEdge (CompDisplay *d); -+void wallSetFlipDownEdgeInitiate (CompDisplay *d, CompActionCallBackProc init); -+void wallSetFlipDownEdgeTerminate (CompDisplay *d, CompActionCallBackProc term); -+CompOption * wallGetFlipDownEdgeOption (CompDisplay *d); -+void wallSetFlipDownEdgeNotify (CompDisplay *d, wallDisplayOptionChangeNotifyProc notify); -+ -+int wallGetMmmode (CompScreen *s); -+CompOption * wallGetMmmodeOption (CompScreen *s); -+void wallSetMmmodeNotify (CompScreen *s, wallScreenOptionChangeNotifyProc notify); -+ -+Bool wallGetEdgeflipPointer (CompScreen *s); -+CompOption * wallGetEdgeflipPointerOption (CompScreen *s); -+void wallSetEdgeflipPointerNotify (CompScreen *s, wallScreenOptionChangeNotifyProc notify); -+ -+Bool wallGetEdgeflipMove (CompScreen *s); -+CompOption * wallGetEdgeflipMoveOption (CompScreen *s); -+void wallSetEdgeflipMoveNotify (CompScreen *s, wallScreenOptionChangeNotifyProc notify); -+ -+Bool wallGetEdgeflipDnd (CompScreen *s); -+CompOption * wallGetEdgeflipDndOption (CompScreen *s); -+void wallSetEdgeflipDndNotify (CompScreen *s, wallScreenOptionChangeNotifyProc notify); -+ -+#ifndef GENERIC_PRIVATE_DEFINES -+#define GENERIC_PRIVATE_DEFINES -+ -+#define GET_PLUGIN_CORE(object, plugin) \ -+ ((plugin##Core *) (object)->base.privates[plugin##CorePrivateIndex].ptr) -+#define PLUGIN_CORE(object, plugin, prefix) \ -+ plugin##Core * prefix##c = GET_PLUGIN_CORE (object, plugin) -+ -+#define GET_PLUGIN_DISPLAY(object, plugin) \ -+ ((plugin##Display *) \ -+ (object)->base.privates[plugin##DisplayPrivateIndex].ptr) -+#define PLUGIN_DISPLAY(object, plugin, prefix) \ -+ plugin##Display * prefix##d = GET_PLUGIN_DISPLAY (object, plugin) -+ -+#define GET_PLUGIN_SCREEN(object, parent, plugin) \ -+ ((plugin##Screen *) \ -+ (object)->base.privates[(parent)->screenPrivateIndex].ptr) -+#define PLUGIN_SCREEN(object, plugin, prefix) \ -+ plugin##Screen * prefix##s = \ -+ GET_PLUGIN_SCREEN (object, \ -+ GET_PLUGIN_DISPLAY ((object)->display, plugin), plugin) -+ -+#define GET_PLUGIN_WINDOW(object, parent, plugin) \ -+ ((plugin##Window *) \ -+ (object)->base.privates[(parent)->windowPrivateIndex].ptr) -+#define PLUGIN_WINDOW(object, plugin, prefix) \ -+ plugin##Window * prefix##w = \ -+ GET_PLUGIN_WINDOW (object, \ -+ GET_PLUGIN_SCREEN ((object)->screen, \ -+ GET_PLUGIN_DISPLAY ((object)->screen->display, plugin), plugin), plugin) -+ -+#endif -+ -+COMPIZ_END_DECLS -+ -+#endif diff --git a/compiz-0.9-fedora-logo.patch b/compiz-0.9-fedora-logo.patch deleted file mode 100644 index 2ca609a..0000000 --- a/compiz-0.9-fedora-logo.patch +++ /dev/null @@ -1,60 +0,0 @@ ---- compiz-with-glib-mainloop/plugins/cube/cube.xml.in 2011-01-15 13:20:16.396170197 +0000 -+++ compiz-with-glib-mainloop/plugins/cube/cube.xml.in.new 2011-01-15 14:14:24.005435105 +0000 -@@ -86,18 +86,18 @@ - <_short>Top - <_long>Color of top face of the cube - -- 0xffff -- 0xffff -- 0xffff -+ 0x0000 -+ 0x1919 -+ 0x4a4a - - - - -@@ -112,6 +112,7 @@ - <_short>Skydome Image - <_long>Image to use as texture for the skydome - file;image; -+ /usr/share/pixmaps/fedora-logo - - - - diff --git a/compiz-0.9-redhat-logo.patch b/compiz-0.9-redhat-logo.patch deleted file mode 100644 index 579cec7..0000000 --- a/compiz-0.9-redhat-logo.patch +++ /dev/null @@ -1,60 +0,0 @@ ---- compiz-with-glib-mainloop/plugins/cube/cube.xml.in 2011-01-15 13:20:16.396170197 +0000 -+++ compiz-with-glib-mainloop/plugins/cube/cube.xml.in.new 2011-01-15 14:14:24.005435105 +0000 -@@ -86,18 +86,18 @@ - <_short>Top - <_long>Color of top face of the cube - -- 0xffff -- 0xffff -- 0xffff -+ 0x8888 -+ 0x0000 -+ 0x0000 - - - - -@@ -112,6 +112,7 @@ - <_short>Skydome Image - <_long>Image to use as texture for the skydome - file;image; -+ /usr/share/pixmaps/redhat/shadowman-transparent - - - - diff --git a/compiz-0.9.2.1-keybindings.patch b/compiz-0.9.2.1-keybindings.patch deleted file mode 100644 index 9a0915f..0000000 --- a/compiz-0.9.2.1-keybindings.patch +++ /dev/null @@ -1,59 +0,0 @@ ---- compiz-with-glib-mainloop/gtk/gnome/CMakeLists.txt 2011-01-15 13:20:16.375170002 +0000 -+++ compiz-with-glib-mainloop/gtk/gnome/CMakeLists.txt.new 2011-01-16 00:57:18.129161249 +0000 -@@ -1,3 +1,26 @@ -+if (USE_GNOME_KEYBINDINGS) -+ compiz_translate_xml ( -+ ${CMAKE_CURRENT_SOURCE_DIR}/50-compiz-desktop-key.xml.in -+ ${CMAKE_CURRENT_BINARY_DIR}/50-compiz-desktop-key.xml -+ ) -+ compiz_translate_xml ( -+ ${CMAKE_CURRENT_SOURCE_DIR}/50-compiz-key.xml.in -+ ${CMAKE_CURRENT_BINARY_DIR}/50-compiz-key.xml -+ ) -+ set (key_xml -+ ${CMAKE_CURRENT_BINARY_DIR}/50-compiz-desktop-key.xml -+ ${CMAKE_CURRENT_BINARY_DIR}/50-compiz-key.xml -+ ) -+ compiz_opt_install_file ( -+ ${CMAKE_CURRENT_BINARY_DIR}/50-compiz-desktop-key.xml -+ ${keybindingsdir}/50-compiz-desktop-key.xml -+ ) -+ compiz_opt_install_file ( -+ ${CMAKE_CURRENT_BINARY_DIR}/50-compiz-key.xml -+ ${keybindingsdir}/50-compiz-key.xml -+ ) -+endif (USE_GNOME_KEYBINDINGS) -+ - if (USE_GNOME) - - include_directories ( -@@ -36,29 +59,6 @@ - ) - - -- if (USE_GNOME_KEYBINDINGS) -- compiz_translate_xml ( -- ${CMAKE_CURRENT_SOURCE_DIR}/50-compiz-desktop-key.xml.in -- ${CMAKE_CURRENT_BINARY_DIR}/50-compiz-desktop-key.xml -- ) -- compiz_translate_xml ( -- ${CMAKE_CURRENT_SOURCE_DIR}/50-compiz-key.xml.in -- ${CMAKE_CURRENT_BINARY_DIR}/50-compiz-key.xml -- ) -- set (key_xml -- ${CMAKE_CURRENT_BINARY_DIR}/50-compiz-desktop-key.xml -- ${CMAKE_CURRENT_BINARY_DIR}/50-compiz-key.xml -- ) -- compiz_opt_install_file ( -- ${CMAKE_CURRENT_BINARY_DIR}/50-compiz-desktop-key.xml -- ${keybindingsdir}/50-compiz-desktop-key.xml -- ) -- compiz_opt_install_file ( -- ${CMAKE_CURRENT_BINARY_DIR}/50-compiz-key.xml -- ${keybindingsdir}/50-compiz-key.xml -- ) -- endif (USE_GNOME_KEYBINDINGS) -- - add_library (gnome-compiz MODULE - compiz-window-manager.c - compiz-window-manager.h diff --git a/compiz-gnome.desktop b/compiz-gnome.desktop deleted file mode 100644 index 65e07c7..0000000 --- a/compiz-gnome.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Name=Classic GNOME with Compiz -Comment=This session logs you into the classic GNOME desktop (panel, not shell) with Compiz -Exec=/usr/bin/gnome-session --session=compiz-gnome -# no icon yet, only the top three are currently used -Icon= -Type=XSession diff --git a/compiz-gnome.session b/compiz-gnome.session deleted file mode 100644 index 7a06072..0000000 --- a/compiz-gnome.session +++ /dev/null @@ -1,6 +0,0 @@ -[GNOME Session] -Name=Classic GNOME with Compiz -RequiredComponents=gnome-panel;gnome-settings-daemon; -RequiredProviders=windowmanager;notifications; -DefaultProvider-windowmanager=compiz-gtk -DefaultProvider-notifications=notification-daemon diff --git a/compiz-gtk b/compiz-gtk deleted file mode 100644 index 844a289..0000000 --- a/compiz-gtk +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -function runCompiz() { - gtk-window-decorator & - exec compiz ccp $@ -} - -ISSW=`glxinfo | grep "Software Rasterizer" -c` - -# Try with direct rendering -HAVETFP=`glxinfo | grep texture_from_pixmap -c` - -if ( [ $ISSW == 0 ] && [ $HAVETFP -gt 2 ] ); then - runCompiz $@ -fi - -# Try again with indirect rendering -export LIBGL_ALWAYS_INDIRECT=1 - -HAVETFP=`glxinfo | grep texture_from_pixmap -c` - -if ( [ $ISSW == 0 ] && [ $HAVETFP -gt 2 ] ); then - runCompiz $@ -fi - -# Fall back to metacity -exec metacity $@ diff --git a/compiz-gtk.desktop b/compiz-gtk.desktop deleted file mode 100644 index c99c113..0000000 --- a/compiz-gtk.desktop +++ /dev/null @@ -1,7 +0,0 @@ -[Desktop Entry] -Type=Application -Encoding=UTF-8 -Name=Compiz -TryExec=compiz-gtk -Exec=compiz-gtk -NoDisplay=true diff --git a/compiz.spec b/compiz.spec deleted file mode 100644 index 18d12db..0000000 --- a/compiz.spec +++ /dev/null @@ -1,1033 +0,0 @@ -%global core_plugins blur clone commands compiztoolbox composite copytex cube dbus decor fade imgpng imgsvg ini inotify move obs opengl place regex resize rotate scale screenshot switcher water wobbly zoom - -%global gtk_plugins annotate gnomecompat - -%global obsolete_plugins decoration fs gconf glib kconfig minimize png svg video - -%global plugins_compiz %(echo %{core_plugins} %{gtk_plugins} | sed -e 's/\\ 0.9 -# For the GNOME keybindings files (doesn't introduce any major deps) -Requires: control-center-filesystem -Requires(post): desktop-file-utils -Requires(pre): GConf2 -Requires(post): GConf2 -Requires(preun): GConf2 -Obsoletes: compiz < 0.5.2-8 -Conflicts: compiz-gnome < 0.9.2.2-0.6.git619abc05b1 -Obsoletes: emerald < 0.8.5-0.5.git90c9604441 -Obsoletes: emerald-devel < 0.8.5-0.5.git90c9604441 -Obsoletes: emerald-themes < 0.5.2-7 - -%description gtk -The compiz-gtk package contains gtk-window-decorator, -and other GTK+ integration related stuff. - -%package gnome -Summary: Compiz GNOME session -Group: User Interface/Desktops -Requires: compiz-gtk = %{version}-%{release} -Requires: metacity -Requires: gnome-panel -# For now, this is using the ini backend due to a bug when using gconf -# but it should be switched to gconf backend (in libcompizconfig) and -# these requires activated once that's fixed -#Requires: compiz-gconf = %{version}-%{release} -#Requires: compizconfig-backend-gconf > 0.9 - -%description gnome -The compiz-gnome package contains a session definition which will make -display managers provide a session named 'Classic GNOME with Compiz' -that you can log in to. This session will start a GNOME 2-style desktop -(with gnome-panel, not GNOME Shell) with Compiz as the window manager. -This method is the recommended replacement for the old method of using -desktop-effects to select Compiz as the window manager for a GNOME -session. - -%package gconf -Summary: GConf schemas for %{name} -Group: User Interface/Desktops -Requires: %{name} = %{version}-%{release} -Requires(pre): GConf2 -Requires(post): GConf2 -Requires(preun): GConf2 - -%description gconf -This package contains the GConf schemas for plugins in the %{name} -package. Only install it if you wish to use the deprecated GConf -configuration storage scheme for Compiz. Typically you should not -install this. - -%package kde -Summary: Compiz KDE integration bits -Group: User Interface/Desktops -Requires: %{name} = %{version}-%{release} -Requires: compiz-manager -Requires: compizconfig-backend-kconfig4 -Requires: compiz-plugins-main > 0.9 - -%description kde -The compiz-kde package contains kde4-window-decorator, -and other kde integration related stuff. - - -%prep -%setup -q -n core - -%if 0%{?fedora} -%patch105 -p1 -b .fedora-logo -%else -%patch106 -p1 -b .redhat-logo -%endif -%patch122 -p1 -b .keybindings - -%build -rm -rf $RPM_BUILD_ROOT -mkdir build -pushd build -%cmake -DCOMPIZ_DEFAULT_PLUGINS="%{default_plugins}" -DCOMPIZ_PACKAGING_ENABLED=ON -DBUILD_GNOME_KEYBINDINGS=OFF -DCOMPIZ_BUILD_WITH_RPATH=OFF -DCOMPIZ_DISABLE_SCHEMAS_INSTALL=ON -DCOMPIZ_INSTALL_GCONF_SCHEMA_DIR=%{_sysconfdir}/gconf/schemas .. -# Parallel build with -j16 on the cluster failed, though with -j4 on -# dual-core, dual-thread it worked -make VERBOSE=1 -popd - -%install -pushd build -rm -rf $RPM_BUILD_ROOT -make DESTDIR=$RPM_BUILD_ROOT install || exit 1 - -# This should work, but is buggy upstream: -# make DESTDIR=$RPM_BUILD_ROOT findcompiz_install -# So we do this instead: -mkdir -p $RPM_BUILD_ROOT%{_datadir}/cmake/Modules -%__cmake -E copy ../cmake/FindCompiz.cmake $RPM_BUILD_ROOT%{_datadir}/cmake/Modules - -popd - -install %SOURCE1 $RPM_BUILD_ROOT/%{_bindir} - -# set up an X session -mkdir -p $RPM_BUILD_ROOT%{_datadir}/xsessions -install %SOURCE3 $RPM_BUILD_ROOT/%{_datadir}/xsessions -mkdir -p $RPM_BUILD_ROOT%{_datadir}/gnome-session/sessions -install %SOURCE4 $RPM_BUILD_ROOT/%{_datadir}/gnome-session/sessions - -# create compiz keybindings file based on the metacity ones -# lifted straight from Ubuntu, as long as installation of the upstream -# ones is broken at least (I've reported this upstream) -mkdir -p $RPM_BUILD_ROOT/%{_datadir}/gnome-control-center/keybindings - sed 's/wm_name=\"Metacity\" package=\"metacity\"/wm_name=\"Compiz\" package=\"compiz\"/' /usr/share/gnome-control-center/keybindings/50-metacity-launchers.xml > $RPM_BUILD_ROOT/%{_datadir}/gnome-control-center/keybindings/50-compiz-launchers.xml - sed 's/wm_name=\"Metacity\" package=\"metacity\"/wm_name=\"Compiz\" package=\"compiz\"/' /usr/share/gnome-control-center/keybindings/50-metacity-navigation.xml > $RPM_BUILD_ROOT/%{_datadir}/gnome-control-center/keybindings/50-compiz-navigation.xml - sed 's/wm_name=\"Metacity\" package=\"metacity\"/wm_name=\"Compiz\" package=\"compiz\"/' /usr/share/gnome-control-center/keybindings/50-metacity-screenshot.xml > $RPM_BUILD_ROOT/%{_datadir}/gnome-control-center/keybindings/50-compiz-screenshot.xml - sed 's/wm_name=\"Metacity\" package=\"metacity\"/wm_name=\"Compiz\" package=\"compiz\"/' /usr/share/gnome-control-center/keybindings/50-metacity-system.xml > $RPM_BUILD_ROOT/%{_datadir}/gnome-control-center/keybindings/50-compiz-system.xml - sed 's/wm_name=\"Metacity\" package=\"metacity\"/wm_name=\"Compiz\" package=\"compiz\"/' /usr/share/gnome-control-center/keybindings/50-metacity-windows.xml > $RPM_BUILD_ROOT/%{_datadir}/gnome-control-center/keybindings/50-compiz-windows.xml - sed -i 's#key=\"/apps/metacity/general/num_workspaces\" comparison=\"gt\"##g' $RPM_BUILD_ROOT/%{_datadir}/gnome-control-center/keybindings/50-compiz-navigation.xml - sed -i 's#key=\"/apps/metacity/general/num_workspaces\" comparison=\"gt\"##g' $RPM_BUILD_ROOT/%{_datadir}/gnome-control-center/keybindings/50-compiz-windows.xml - -desktop-file-install --vendor="" \ - --dir $RPM_BUILD_ROOT%{_datadir}/applications \ - %SOURCE2 - - -find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';' -find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';' - - -%find_lang compiz - -cat compiz.lang > core-files.txt - -for f in %{core_plugins}; do - echo %{_libdir}/compiz/lib$f.so - echo %{_datadir}/compiz/$f.xml -done >> core-files.txt - -for f in %{gtk_plugins}; do - echo %{_libdir}/compiz/lib$f.so - echo %{_datadir}/compiz/$f.xml -done >> gtk-files.txt - -for f in %{core_plugins} %{gtk_plugins}; do - echo %{_sysconfdir}/gconf/schemas/compiz-$f.schemas -done >> gconf-files.txt - -# I don't care how crazy you are, I'm not letting you store your -# compiz-kde configuration in GConf -rm -f $RPM_BUILD_ROOT/%{_sysconfdir}/gconf/schemas/compiz-kde.schemas - -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig - -%post gtk -update-desktop-database -q %{_datadir}/applications -%gconf_schema_upgrade gwd - -%post gconf -%gconf_schema_upgrade %{plugins_compiz} - -%pre gconf -%gconf_schema_prepare %{plugins_compiz} -%gconf_schema_obsolete %{obsolete_plugins_compiz} - -%pre gtk -%gconf_schema_prepare gwd - -%preun gconf -%gconf_schema_remove %{plugins_compiz} - -%preun gtk -%gconf_schema_remove gwd - -%post kde -update-desktop-database -q %{_datadir}/applications/kde -touch --no-create %{_datadir}/icons/hicolor - -%postun kde -touch --no-create %{_datadir}/icons/hicolor - - -%clean -rm -rf $RPM_BUILD_ROOT - - -%files -f core-files.txt -%defattr(-, root, root) -%doc AUTHORS ChangeLog COPYING* README TODO -%{_bindir}/compiz -%{_libdir}/libdecoration.so.* -%dir %{_libdir}/compiz -%dir %{_datadir}/compiz -%{_datadir}/compiz/cube/images -%{_datadir}/compiz/core.xml -%{_datadir}/compiz/icon.png - -%files gtk -f gtk-files.txt -%defattr(-, root, root) -%{_bindir}/compiz-gtk -%{_bindir}/gtk-window-decorator -%{_datadir}/gnome-control-center/keybindings/50-compiz-*.xml -%{_datadir}/applications/compiz-gtk.desktop -# gtk-window-decorator only stores config in gconf at present -%{_sysconfdir}/gconf/schemas/gwd.schemas -#%exclude %{_datadir}/applications/compiz.desktop - -%files gnome -%defattr(-, root, root) -%{_datadir}/xsessions/compiz-gnome.desktop -%{_datadir}/gnome-session/sessions/compiz-gnome.session - -%files gconf -f gconf-files.txt -%defattr(-, root, root) -%{_sysconfdir}/gconf/schemas/compiz-core.schemas - -%files kde -%defattr(-, root, root) -%{_bindir}/kde4-window-decorator -%{_libdir}/compiz/libkde.so -%{_datadir}/compiz/kde.xml - -%files devel -%defattr(-, root, root) -%{_libdir}/pkgconfig/compiz.pc -%{_libdir}/pkgconfig/libdecoration.pc -%{_libdir}/pkgconfig/compiz-compiztoolbox.pc -%{_libdir}/pkgconfig/compiz-composite.pc -%{_libdir}/pkgconfig/compiz-cube.pc -%{_libdir}/pkgconfig/compiz-opengl.pc -%{_libdir}/pkgconfig/compiz-scale.pc -%{_datadir}/compiz/xslt -%{_datadir}/compiz/cmake -%{_datadir}/cmake/Modules/FindCompiz.cmake -%{_includedir}/compiz -%{_libdir}/libdecoration.so - - -%changelog -* Thu Jan 12 2012 Fedora Release Engineering - 0.9.5.92.1-0.3.gite676f1b12eb8db3a76978eed5bfc7c2cf9a0b6ce -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Tue Dec 06 2011 Adam Jackson - 0.9.5.92.1-0.2.gite676f1b12eb8db3a76978eed5bfc7c2cf9a0b6ce -- Rebuild for new libpng - -* Mon Oct 17 2011 Leigh Scott - 0.9.5.92.1-0.1.git%{git_snapshot} -- start using git snapshots as the releases suck - -* Sat Sep 17 2011 Leigh Scott - 0.9.5.0-4 -- more changes for emerald's retirement - -* Sat Sep 17 2011 Leigh Scott - 0.9.5.0-3 -- add changes for emerald's retirement - -* Thu Jul 21 2011 Leigh Scott - 0.9.5.0-2 -- rebuild against boost 1.47.0 - -* Fri Jul 15 2011 Leigh Scott - 0.9.5.0-1 -- new release 0.9.5.0 - -* Thu Apr 07 2011 Leigh Scott - 0.9.4-3 -- rebuilt against boost 1.46.1 - -* Mon Mar 28 2011 Adam Williamson - 0.9.4-2 -- fix up the GNOME session stuff so it actually works - -* Mon Mar 14 2011 Adam Williamson - 0.9.4-1 -- new release 0.9.4 - -* Tue Feb 08 2011 Fedora Release Engineering - 0.9.2.2-0.13.git619abc05b1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Sun Feb 06 2011 Leigh Scott - 0.9.2.2-0.12.git619abc05b1 -- rebuilt for boost - -* Sun Jan 23 2011 Adam Williamson - 0.9.2.2-0.11.git619abc05b1 -- cflags.patch: don't overwrite passed-in CFLAGS - -* Wed Jan 19 2011 Adam Williamson - 0.9.2.2-0.10.git619abc05b1 -- adjust GNOME and KDE package requirements - -* Tue Jan 18 2011 Adam Williamson - 0.9.2.2-0.9.git619abc05b1 -- drop desktop-effects dependency - -* Mon Jan 17 2011 Adam Williamson - 0.9.2.2-0.8.git619abc05b1 -- drop rotate from the default plugin list (it goes with cube) -- tighten up dependencies and fix compiz-kde deps - -* Mon Jan 17 2011 Adam Williamson - 0.9.2.2-0.7.git619abc05b1 -- move gwd.schemas into compiz-gtk: seems that gtk-window-decorator is - only able to store its config in gconf for now so we must include this - -* Mon Jan 17 2011 Adam Williamson - 0.9.2.2-0.6.git619abc05b1 -- add a compiz-gnome package back again: this one provides a session - definition so you can log into a classic GNOME plus Compiz session - from the login manager - -* Sun Jan 16 2011 Adam Williamson - 0.9.2.2-0.5.git619abc05b1 -- drop imgpng from default plugins list (somehow this causes compiz-gtk - to crash on start) -- generally simplify the default plugin set a bit - -* Sun Jan 16 2011 Adam Williamson - 0.9.2.2-0.4.git619abc05b1 -- move core gconf schema file to gconf subpackage - -* Sun Jan 16 2011 Adam Williamson - 0.9.2.2-0.3.git619abc05b1 -- move the GConf schemas to a separate subpackage so you can not - install them unless you really want them -- rename the -gnome subpackage to -gtk as it's not really GNOME - specific now - -* Sun Jan 16 2011 Adam Williamson - 0.9.2.2-0.2.git619abc05b1 -- drop the BR of metacity as we already BR metacity-devel -- don't load imgsvg by default, do load imgpng -- put all the GConf schemas in the GNOME subpackage, no point having - them in main and weighing it down with dependencies -- drop the ancient beryl obsoletes -- drop --ignore-desktop-hints from compiz-gtk (no longer valid) - -* Sat Jan 15 2011 Adam Williamson - 0.9.2.2-0.1.git619abc05b1 -- bump to 0.9 git: - + drop several patches now upstreamed - + keybindings.patch replaces no-more-gnome-wm-settings.patch -- switch to new cmake buildsystem -- use gconf macros not snippets -- fix up compiz-gtk to just always launch with ccm, the test for gconf - was done exactly the wrong way around and anyway using the gconf - backend is a bad idea -- depend on new compiz-plugins-main as lots of vital plugins are in it - -* Fri Dec 10 2010 leigh scott - 0.8.6-9 -- remove the dupe BR dbus-devel and add BR dbus-glib-devel - -* Wed Dec 08 2010 Adel Gadllah - 0.8.6-8 -- BR dbus-devel - -* Tue Nov 30 2010 leigh scott - 0.8.6-7 -- add more upstream gdk fixes - -* Wed Nov 17 2010 Adel Gadllah - 0.8.6-6 -- Backport fix for corruption bug (RH #614542) - -* Thu Oct 14 2010 leigh scott - 0.8.6-5 -- Don't rely on deprecated gdk symbol gdk_display. -- Add Br libxslt-devel - -* Wed Oct 06 2010 Kevin Kofler - 0.8.6-4 -- Remove kde-desktop-effects.sh ("Compiz Switcher"), use System Settings instead - -* Fri Jul 30 2010 Adel Gadllah - 0.8.6-3 -- Some backports from upstream - -* Thu Jul 15 2010 Adel Gadllah - 0.8.6-2 -- gnome-window-manager-settings is no more ... - -* Tue Mar 30 2010 Adel Gadllah - 0.8.6-1 -- Update to 0.8.6 -- Drop upstreamed patches -- Forward port crashfix from F-12 - -* Sun Feb 21 2010 Adel Gadllah - 0.8.4-6 -- Use ccp if present (RH #532229) - -* Sat Feb 13 2010 Adel Gadllah - 0.8.4-5 -- Fix FTBFS (RH #555429) - -* Mon Feb 08 2010 Leigh Scott - 0.8.4-4 -- rebuilt for new kde api -- drop kde4_decorator_build patch -- add kde44-api patch -- drop build requires dbus-qt-devel as it is deprecated in F13 - -* Mon Jan 18 2010 Matthias Clasen - 0.8.4-3 -- Rebuild against new gnome-desktop - -* Sat Jan 16 2010 Leigh Scott - 0.8.4-2 -- add patch to fix kde decorator build error -- fix source url - -* Sat Jan 16 2010 Leigh Scott - 0.8.4-1 -- update to 0.8.4 -- update compiz-0.8.2-wall patch -- drop upstream patches - -* Tue Nov 24 2009 Kevin Kofler - 0.8.2-21 -- Rebuild for Qt 4.6.0 RC1 in F13 (was built against Beta 1 with unstable ABI) - -* Sun Nov 08 2009 Adel Gadllah - 0.8.2-20 -- Remove some other unneeded provides / requires - -* Sun Nov 08 2009 Adel Gadllah - 0.8.2-19 -- Remove outdated Conflicts/Requires, RH #528267 - -* Mon Oct 26 2009 Matthias Clasen - 0.8.2-18 -- Better fix for keybindings - -* Mon Oct 26 2009 Adel Gadllah - 0.8.2-17 -- Fix was wrong - revert it - -* Mon Oct 26 2009 Adel Gadllah - 0.8.2-16 -- Don't ship broken keybindings files RH #530603 - -* Mon Sep 21 2009 Adel Gadllah - 0.8.2-15 -- Revert pageflip patch - -* Mon Aug 24 2009 Adel Gadllah - 0.8.2-14 -- Fix build - -* Mon Aug 24 2009 Adel Gadllah - 0.8.2-13 -- Drop desktop-effects -- Make compiz-gnome require desktop-effects -- Drop now redundant requires -- Update kde desktop effects to 0.0.6 (includes its own icon) - -* Sat Aug 22 2009 Adel Gadllah - 0.8.2-12 -- Fix build - -* Sat Aug 22 2009 Adel Gadllah - 0.8.2-11 -- Fix up the compiz-gtk script - -* Fri Aug 07 2009 Adel Gadllah - 0.8.2-10 -- Enable direct rendering and always-swap by default -- Tearing free compiz for INTEL cards ;) - -* Sat Aug 01 2009 Adel Gadllah - 0.8.2-9 -- Fix build - -* Fri Jul 31 2009 Kristian Høgsberg - 0.8.2-8 -- Add patch to add option to always use glXSwapBuffers. - -* Fri Jul 24 2009 Fedora Release Engineering - 0.8.2-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Sat Jul 11 2009 Adel Gadllah - 0.8.2-6 -- Fix build - -* Fri Jul 10 2009 Adel Gadllah - 0.8.2-5 -- Move wall plugin from fusion to the main compiz package -- Drop requires on compiz-fusion-gnome - -* Fri Jul 10 2009 Adel Gadllah - 0.8.2-4 -- Replace compiz-0.8.2-pin-initial-plugins with a fixed up one - by Philippe Troin (RH #473896) - -* Mon Jun 8 2009 Matthias Clasen - 0.8.2-3 -- Fix handling of --replace in compiz-gtk, _again_ - -* Tue May 26 2009 Adel Gadllah - 0.8.2-2 -- Add commands plugin -- Fix build - -* Mon May 25 2009 Adel Gadllah - 0.8.2-1 -- Update to 0.8.2 -- Drop upstreamed patches - -* Sun Apr 05 2009 Adel Gadllah - 0.7.8-18 -- Direct rendering does not mean that we have hw 3D - -* Mon Mar 16 2009 Adel Gadllah - 0.7.8-17 -- Fix compiz-gtk script RH #490383 - -* Sun Mar 15 2009 Adel Gadllah - 0.7.8-16 -- Revert to always using indirect rendering - -* Sun Mar 15 2009 Adel Gadllah - 0.7.8-15 -- Improved tfp check, fixes "white screen of death" -- Use direct rendering if the driver supports it (DRI2) - -* Sat Feb 28 2009 Adel Gadllah - 0.7.8-14 -- Backport gwd fix from upstream, should fix RH #484056 - -* Tue Feb 24 2009 Fedora Release Engineering - 0.7.8-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Wed Jan 28 2009 Adel Gadllah - 0.7.8-12 -- Backport some KDE-4.2 fixes from upstream - -* Tue Jan 27 2009 Adel Gadllah - 0.7.8-11 -- Make the terminal keybinding work (RH #439665) - -* Thu Dec 18 2008 Matthias Clasen - 0.7.8-10 -- Rebuild against new gnome-desktop - -* Mon Dec 08 2008 Adel Gadllah - 0.7.8-9 -- Remove direct rendering check for now - -* Sun Dec 07 2008 Adel Gadllah - 0.7.8-8 -- Add 'obs' to default plugin list -- Improve glx_tfp check - -* Fri Dec 05 2008 Adel Gadllah - 0.7.8-7 -- Readd compiz-0.7.6-utility-windows.patch -- Fix memory leaks - -* Thu Dec 04 2008 Adel Gadllah - 0.7.8-6 -- Bugfixes from git head: - compiz-0.7.8-decoration-placement.patch (RH #218561) - compiz-0.7.8-fullscreen-top.patch -- Fall back to metacity if GLX_tfp is not present (RH #457816) -- Don't allow command line passed (config) plugins to be unloaded - -* Mon Dec 01 2008 Kevin Kofler - 0.7.8-5 -- Patch and rebuild for new libplasma, BR plasma-devel - -* Wed Nov 26 2008 Adel Gadllah - 0.7.8-4 -- Rebuild against new gnome-desktop - -* Sat Nov 08 2008 Adel Gadllah - 0.7.8-3 -- Add obs plugin - -* Sat Nov 08 2008 Adel Gadllah - 0.7.8-2 -- Fix sources file - -* Sat Nov 08 2008 Adel Gadllah - 0.7.8-1 -- Update to 0.7.8 -- Dropped patches: - compiz-0.7.6-decoration-size.patch - compiz-0.7.6-metacity-spacer.patch - compiz-0.7.6-utility-windows.patch - compiz-0.7.6-multi-screen-fix.patch - -* Mon Oct 27 2008 Matthias Clasen - 0.7.6-17 -- Update some translations for the desktop-effects capplet - -* Wed Oct 22 2008 Adel Gadllah - 0.7.6-15 -- Fix handling of utility windows (RH #466622) -- Handle sync alarm events on all screens - -* Wed Oct 22 2008 Adel Gadllah - 0.7.6-14 -- Add missing bits to the patch (RH #446457) - -* Fri Oct 17 2008 Adel Gadllah - 0.7.6-13 -- Patch configure rather than configure.ac - -* Wed Oct 15 2008 Adel Gadllah - 0.7.6-12 -- Backport upstream patch to fix RH #446457 - -* Thu Sep 25 2008 Jon McCann - 0.7.6-11 -- Add compiz-gtk driver script and desktop file -- New desktop effects release - -* Tue Aug 26 2008 Adam Jackson 0.7.6-10 -- Fixed Requires: Xorg >= foo to Conflicts: Xorg < foo. - -* Tue Jul 15 2008 Tom "spot" Callaway - 0.7.6-9 -- fix license tag - -* Tue Jul 15 2008 Nikolay Vladimirov - 0.7.6-8 -- Rebuild for ppc64 - -* Mon Jun 23 2008 Adel Gadllah - 0.7.6-7 -- Speed up gconf schema installation - -* Fri Jun 13 2008 Adel Gadllah - 0.7.6-6 -- Don't use desktops and viewports at the same time - -* Wed Jun 11 2008 Adel Gadllah - 0.7.6-5 -- Revert to old gconf schmema install script - -* Tue Jun 10 2008 Adel Gadllah - 0.7.6-4 -- Disable kde3 to fix local builds (RH #449123) - -* Thu Jun 05 2008 Adel Gadllah - 0.7.6-3 -- Only move placed windows on decoration size changes - -* Thu Jun 05 2008 Adel Gadllah - 0.7.6-2 -- Don't require compiz-fusion in the main package - -* Thu Jun 05 2008 Adel Gadllah - 0.7.6-1 -- Update to 0.7.6 -- Install all gconf schemas at once -- Drop unneeded patches -- Use wall instead of plane - -* Thu Jun 05 2008 Caolán McNamara - 0.7.2-6 -- rebuild for dependancies - -* Tue May 27 2008 Kevin Kofler - 0.7.2-5 -- Rebuild for KDE 4.0.80 - -* Wed May 07 2008 Kevin Kofler - 0.7.2-4 -- Backport upstream patch to port kde4-window-decorator to KDE 4.1 libplasma - -* Thu Mar 27 2008 Adel Gadllah - 0.7.2-3 -- Fix gconf plugin loop RH #438794, patch based on - older one from Guillaume Seguin -- Add core to default plugin list - -* Wed Mar 26 2008 Kevin Kofler - 0.7.2-2 -- Reword kde-desktop-effects messages to mention Compiz by name (#438883) - -* Mon Mar 24 2008 Adel Gadllah - 0.7.2-1 -- Update to 0.7.2 - -* Tue Feb 19 2008 Fedora Release Engineering - 0.6.2-7 -- Autorebuild for GCC 4.3 - -* Thu Jan 17 2008 Kristian Høgsberg - 0.6.2-6 -- Update to desktop-effects version 0.7.17 which include more - translations and move desktop-effects translations to compiz-gnome. -- Fix spelling in beryl-core obsoletes. - -* Mon Jan 07 2008 Adel Gadllah - 0.6.2-5 -- Update buildrequires (kwd uses the kde3 api) - -* Tue Nov 6 2007 Stepan Kasal - 0.6.2-4 -- Fix a typo in description of the main package. -- All descriptions should end with a dot (unlike the summary line) - -* Thu Oct 25 2007 Sebastian Vahl - 0.6.2-3 -- Include kde-desktop-effects in kde subpackage - -* Tue Oct 23 2007 Adel Gadllah - 0.6.2-2 -- Obsolete berly-core - -* Mon Oct 22 2007 Warren Togami - 0.6.2-1 -- 0.6.2 - -* Fri Oct 12 2007 Kristian Høgsberg - 0.6.0-2 -- Disable scale corner initiate and install a GNOME key config entry. - -* Wed Oct 10 2007 Warren Togami - 0.6.0-1 -- 0.6.0 final -- always-restack-windows-on-map - -* Tue Oct 9 2007 Warren Togami - 0.5.2-14 -- Make compiz behave with gnome-terminal (#304051) - -* Fri Oct 5 2007 Matthias Clasen - 0.5.2-13 -- Also install gwd.schemas (#319621) - -* Thu Sep 20 2007 Kristian Høgsberg - 0.5.2-12 -- Update to more recent 0.6 branch snapshot (fixes #253575). - -* Fri Sep 14 2007 Warren Togami - 0.5.2-11 -- compiz-gnome: install core schema so it actually works -- remove unnecessary gconf stuff from %%install - -* Tue Aug 28 2007 Kristian Høgsberg - 0.5.2-9 -- Make compiz-gnome Obsolete the older compiz package so yum/anaconda - will pull it in (thans to Adel Gadllah). - -* Wed Aug 22 2007 Kristian Høgsberg - 0.5.2-8 -- Bump to desktop-effects 0.7.7 to avoid kill decorator when popping - up dialog. -- Fix broken gconf install and uninstall rules. -- Pick up shadowman logo for RHEL builds (#232398). - -* Tue Aug 21 2007 Kristian Høgsberg - 0.5.2-7.0ec3ec -- Add more-sm-junk.patch so we set SM restart style to - SmRestartIfRunning on exit (#247163, #245971). -- Add Requires to compiz-devel (#253407). -- Update to desktop-effects 0.7.6, which terminates decorator when - switching to metacity or on compiz failure (#215247, #215032). - -* Fri Aug 17 2007 Adel Gadllah 0.5.2-6.0ec3ec -- Split into gnome and kde subpackages -- Minor cleanups - -* Wed Aug 15 2007 Kristian Høgsberg - 0.5.2-5.0ec3ec -- Reorder plugin list to avoid 'place' getting removed on startup. -- Add run-command-key.patch to put the run command key in the GNOME - keyboard shortcut dialog (#213576). -- Drop a bunch of obsolete patches. -- Bump mesa-libGL and X server requires to fix TFP bugs for - power-of-two textures (#251935). -- Rebase fedora-logo and composite-cube-logo patch. - -* Tue Aug 14 2007 Kristian Høgsberg - 0.5.2-4.0ec3ec -- Build with desktop-effects so we don't pick up metacity work spaces. - Fixes #250568. - -* Tue Aug 14 2007 Kristian Høgsberg - 0.5.2-3.0ec3ec -- Build git snapshot from fedora branch at - git://people.freedesktop.org/~krh/compiz, brances from 0.6 upstream - branch. -- Fixes #237486. - -* Fri Aug 10 2007 Kristian Høgsberg - 0.5.2-3 -- Require desktop-effects 0.7.3 and gnome-session 2.19.6-5 which pass - 'glib' on the command line too. - -* Fri Aug 10 2007 Kristian Høgsberg - 0.5.2-2 -- Move xml meta data files to main package. - -* Thu Aug 9 2007 Kristian Høgsberg - 0.5.2-1 -- Update to 0.5.2. -- Require at least gnome-session 2.19.6-2 so gnome-wm starts compiz - with LIBGL_ALWAYS_INDIRECT set. - -* Wed Jun 27 2007 Kristian Høgsberg - 0.5.0-1 -- Update to 0.5.0 - -* Tue Jun 5 2007 Matthias Clasen - 0.4.0-1 -- Update to 0.4.0 - -* Mon Jun 4 2007 Matthias Clasen - 0.3.6-10 -- Rebuild against new libwnck - -* Sat Apr 21 2007 Matthias Clasen - 0.3.6-9 -- Don't install INSTALL - -* Mon Apr 16 2007 Kristian Høgsberg - 0.3.6-8 -- Update metacity build requires to metacity-devel. - -* Wed Apr 4 2007 Kristian Høgsberg - 0.3.6-7 -- Fix typo in ./configure option. - -* Wed Apr 4 2007 Kristian Høgsberg - 0.3.6-6 -- Add place and clone plugins to default plugin list. - -* Wed Mar 28 2007 Kristian Høgsberg - 0.3.6-5 -- Update URL (#208214). -- Require at least metacity 2.18 (#232831). -- Add close-session.patch to deregister from SM when replaced (#229113). - -* Tue Mar 27 2007 Kristian Høgsberg 0.3.6-4 -- Explicitly disable KDE parts (#234128). - -* Mon Mar 26 2007 Matthias Clasen 0.3.6-3 -- Fix some directory ownership issues (#233825) -- Small spec cleanups - -* Tue Feb 6 2007 Kristian Høgsberg 0.3.6 -- Require gnome-session > 2.16 so it starts gtk-window-decorator. -- Update to desktop-effects 0.7.1 that doesn't refuse to work with Xinerama. - -* Tue Jan 16 2007 Kristian Høgsberg - 0.3.6-1 -- Update to 0.3.6, update patches. -- Drop autotool build requires. -- Drop glfinish.patch, cow.patch, resize-offset.patch and icon-menu-patch. -- Add libdecoration.so -- Update to desktop-effects-0.7.0, which spawns the right decorator - and plays nicely with unknown plugins. - -* Sat Nov 25 2006 Matthias Clasen - 0.3.4-2 -- Update the fedora logo patch (#217224) - -* Thu Nov 23 2006 Matthias Clasen - 0.3.4-1 -- Update to 0.3.4 - -* Wed Nov 15 2006 Matthias Clasen - 0.3.2-2 -- Use cow by default, bug 208044 - -* Fri Nov 10 2006 Matthias Clasen - 0.3.2-1 -- Update to 0.3.2 -- Drop upstreamed patches -- Work with new metacity theme api - -* Mon Oct 2 2006 Soren Sandmann - 0.0.13-0.32.20060818git.fc6 -- Install the .desktop file with desktop-file-install. Add X-Red-Hat-Base to make it appear in "Preferences", rather than "More Preferences". - -* Sat Sep 30 2006 Soren Sandmann - 0.0.13-0.31.20060818git.fc6 -- Add buildrequires on intltool - -* Sat Sep 30 2006 Soren Sandmann - 0.0.13-0.31.20060818git.fc6 -- Build - -* Fri Sep 29 2006 Soren Sandmann -- Update to desktop-effects-0.6.163, which has translation enabled. (Bug 208257) - -* Thu Sep 28 2006 Soren Sandmann - 0.0.13-0.30.20060817git.fc6 -- Add patch to terminate keyboard moves when a mouse buttons is pressed. (Bug 207792). - -* Thu Sep 28 2006 Soren Sandmann -- Change default plugin list to not include the plane plugin. (Bug 208448). -- Change default keybinding for shrink to be Pause (Bug 206187). - -* Wed Sep 27 2006 Soren Sandmann -- Add patch to show a menu when the window icon is clicked. (Bug 201629). - -* Tue Sep 26 2006 Soren Sandmann - 0.0.13-0.29.20060817git.fc6 -- Add restart.patch to make compiz ask the session manager to restart it - if it crashes (bug 200280). - -* Mon Sep 25 2006 Soren Sandmann - 0.0.13-0.28.20060817git.fc6 -- Change plane.patch to not do cyclical window movement in dimensions - where the desktop has size 1 (bug 207263). - -* Thu Sep 21 2006 Soren Sandmann -- Add patch to fix resizing smaller than minimum size (resize-offset.patch, bug 201623). - -* Tue Sep 19 2006 Soren Sandmann - 0.0.13-0.27.20060817git.fc6 -- Change .plane patch to - (a) not set the background color to pink in the plane plugin. - (b) allow workspaces with horizontal sizes less then 4. - -* Mon Sep 18 2006 Soren Sandmann - 0.0.13-0.26.20060817git.fc6 -- Change plane patch to correctly initialize the screen size to the - defaults (bug 206088). - -* Mon Sep 18 2006 Soren Sandmann -- Run update-desktop-database and gtk-update-icon-cache in post. Add icons - to list of packaged files. Also bump to 0.6.137 of dialog (which just makes - directories before attempting to install to them). - -* Mon Sep 18 2006 Soren Sandmann -- Upgrade to 0.6.107 of the desktop-effects dialog box. Only change is - that the new version has icons. - -* Fri Sep 15 2006 Soren Sandmann -- Add patch to fix mispositioning of window decorator event windows (bug 201624) - -* Fri Sep 15 2006 Soren Sandmann -- Upgrade to version 0.6.83 of desktop-effects. (bug 206500) - -* Fri Sep 15 2006 Soren Sandmann -- Add patch to only accept button 1 for close/minimize/maximize (bug 201628) - -* Fri Sep 15 2006 Soren Sandmann -- Add patch to fix thumbnail sorting (bug 201605) - -* Thu Sep 14 2006 Soren Sandmann -- Add patch to fix double clicking (bug 201783). - -* Tue Sep 12 2006 Soren Sandmann -- Don't attempt to move the viewport when dx = dy = 0.(last bit of 206088). - -* Tue Sep 12 2006 Soren Sandmann -- Fix plane.patch to draw correctly when no timeout is running. (206088). - -* Wed Sep 6 2006 Kristian Høgsberg -- Update fbconfig-depth-fix.patch to also skip fbconfigs without - corresponding visuals. - -* Tue Sep 5 2006 Soren Sandmann - 0.0.13-0.25.20060817git.fc6 -- Make number of vertical size configurable - -* Tue Sep 5 2006 Soren Sandmann - 0.0.13-0.24.20060817git.fc6 -- Fix vertical viewport support in the plane patch. - -* Fri Sep 1 2006 Soren Sandmann - 0.0.13-0.23.20060817git.fc6 -- Upgrade to 0.6.61 of the dialog - -* Fri Sep 1 2006 Soren Sandmann - 0.0.13-0.22.20060817git.fc6 -- Add libtool to BuildRequires - -* Fri Sep 1 2006 Soren Sandmann - 0.0.13-0.22.20060817git.fc6 -- Add automake and autoconf to BuildRequires - -* Fri Sep 1 2006 Soren Sandmann - 0.0.13-0.22.20060817git.fc6 -- Add a patch to put viewports on a plane. - -* Wed Aug 30 2006 Kristian Høgsberg - 0.0.13-0.21.20060817git.fc6 -- Drop gl-include-inferiors.patch now that compiz uses COW and the X - server evicts offscreen pixmaps automatically on - GLX_EXT_texture_from_pixmap usage. - -* Tue Aug 29 2006 Kristian Høgsberg - 0.0.13-0.20.20060817git.fc6 -- Add cow.patch to make compiz use the composite overlay window. - -* Fri Aug 25 2006 Soren Sandmann - 0.0.13-0.19-20060817git.fc6 -- Rebase to desktop-effects 0.6.41 - -* Fri Aug 25 2006 Kristian Høgsberg - 0.0.13-0.18.20060817git.fc6 -- Rebase to desktop-effects 0.6.19 and drop - desktop-effects-0.6.1-delete-session.patch - -* Tue Aug 22 2006 Kristian Høgsberg - 0.0.13-0.17.20060817git.fc6 -- Add patch from upstream to also use sync protocol for override - redirect windows (sync-override-redirect-windows.patch). - -* Thu Aug 17 2006 Kristian Høgsberg - 0.0.13-0.16.20060817git.fc6 -- Rebase to latest upstream changes which has the rest of the bindings - rewrite. Add resize-move-keybindings.patch to make move and resize - bindings work like metacity. -- Add back scale plugin. - -* Thu Aug 10 2006 Ray Strode 0.0.13-0.15.20060721git.fc5.aiglx -- Add Requires: gnome-session 2.15.90-2.fc6 (bug 201473) -- unlink session file on changing wms (bug 201473) - -* Thu Aug 3 2006 Soren Sandmann 0.0.13-0.14.20060721git.fc5.aiglx -- Add Requires: gnome-session 2.15.4-3 - -* Wed Aug 3 2006 Soren Sandmann 0.0.13-0.13.20060721git.fc5.aiglx -- New version of dialog box. Macro the version number. - -* Wed Aug 2 2006 Soren Sandmann 0.0.13-0.13.20060721git.fc5.aiglx -- Add 'desktop effects' dialog box. - -* Mon Jul 31 2006 Kristian Høgsberg 0.0.13-0.12.20060721git.fc5.aiglx -- Add libwnck requires. - -* Wed Jul 26 2006 Kristian Høgsberg - 0.0.13-0.11.20060721git.fc5.aiglx -- Bump and build for fc5 AIGLX repo. - -* Wed Jul 26 2006 Kristian Høgsberg - 0.0.13-0.12.20060721git -- Fix gconf hooks. - -* Tue Jul 25 2006 Kristian Høgsberg -- Require system-logos instead. - -* Mon Jul 24 2006 Kristian Høgsberg - 0.0.13-0.10.20060721git -- Bump version to work around tagging weirdness. - -* Mon Jul 24 2006 Kristian Høgsberg - 0.0.13-0.9.20060721git -- Add devel package and require redhat-logos instead of fedora-logos (#199757). - -* Fri Jul 21 2006 Kristian Høgsberg - 0.0.13-0.8.20060720git -- Add workaround for AIGLX throttling problem. - -* Thu Jul 20 2006 Kristian Høgsberg - 0.0.13-0.7.20060720git -- Drop scale plugin from snapshot. - -* Tue Jul 18 2006 Matthias Clasen - 0.0.13-0.6.20060717git -- Don't build on s390 - -* Mon Jul 17 2006 Matthias Clasen - 0.0.13-0.5.20060717git -- Do some changes forced upon us by package review - -* Thu Jul 13 2006 Kristian Høgsberg - 0.0.13-5.1 -- Use sane numbering scheme. - -* Fri Jul 7 2006 Kristian Høgsberg - 0.0.13.fedora1-4 -- Drop the fullscreen hardcode patch and require X server that has - GLX_MESA_copy_sub_buffer. - -* Tue Jun 27 2006 Kristian Høgsberg - 0.0.13.fedora1-3 -- Unbreak --replace. - -* Thu Jun 15 2006 Kristian Høgsberg - 0.0.13.fedora1-2 -- Add Requires, fix start-compiz.sh. - -* Wed Jun 14 2006 Kristian Høgsberg - 0.0.13.fedora1-1 -- Spec file for compiz, borrowing bits and pieces from Alphonse Van - Assches spec file (#192432). diff --git a/composite-cube-logo.patch b/composite-cube-logo.patch deleted file mode 100644 index 0ac0f80..0000000 --- a/composite-cube-logo.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff -up compiz-0ec3ec/plugins/cube.c~ compiz-0ec3ec/plugins/cube.c ---- compiz-0ec3ec/plugins/cube.c~ 2007-07-23 16:20:42.000000000 -0400 -+++ compiz-0ec3ec/plugins/cube.c 2007-08-15 17:45:18.000000000 -0400 -@@ -1272,11 +1272,27 @@ cubePaintTop (CompScreen *s, - - if (cs->invert == 1 && size == 4 && cs->texture.name) - { -+ glTexEnvf (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_COMBINE); -+ -+ glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_RGB, GL_INTERPOLATE); -+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_RGB, GL_TEXTURE0); -+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE1_RGB, GL_PRIMARY_COLOR); -+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE2_RGB, GL_TEXTURE0); -+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND0_RGB, GL_SRC_COLOR); -+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND1_RGB, GL_SRC_COLOR); -+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND2_RGB, GL_SRC_ALPHA); -+ -+ glTexEnvf (GL_TEXTURE_ENV, GL_COMBINE_ALPHA, GL_REPLACE); -+ glTexEnvf (GL_TEXTURE_ENV, GL_SOURCE0_ALPHA, GL_PREVIOUS); -+ glTexEnvf (GL_TEXTURE_ENV, GL_OPERAND0_ALPHA, GL_SRC_ALPHA); -+ - enableTexture (s, &cs->texture, COMP_TEXTURE_FILTER_GOOD); - glTexCoordPointer (2, GL_FLOAT, 0, cs->tc); - glDrawArrays (GL_TRIANGLE_FAN, 0, cs->nVertices >> 1); - disableTexture (s, &cs->texture); - glDisableClientState (GL_TEXTURE_COORD_ARRAY); -+ -+ glTexEnvi (GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); - } - else - { diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..b8c7442 --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +This package was retired on 2012-02-06 due to lack of a maintainer. diff --git a/fedora-logo.patch b/fedora-logo.patch deleted file mode 100644 index 37b1390..0000000 --- a/fedora-logo.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -upNr compiz-0.8.2.orign/metadata/cube.xml.in compiz-0.8.2/metadata/cube.xml.in ---- compiz-0.8.2.orign/metadata/cube.xml.in 2009-02-15 10:10:23.000000000 +0100 -+++ compiz-0.8.2/metadata/cube.xml.in 2009-05-25 22:54:03.060114649 +0200 -@@ -92,9 +92,9 @@ - <_short>Cube Color - <_long>Color of top and bottom sides of the cube - -- 0xfefe -- 0xffff -- 0xc7c7 -+ 0x0000 -+ 0x1919 -+ 0x4a4a - - - -@@ -110,7 +110,7 @@ - string - file;image; - -- freedesktop -+ /usr/share/pixmaps/fedora-logo - - - - - -