do some major changes

- disable mateconf and use libini text file configuration backend
- remove mateconf from scriptlet section
- move glib annotate svg plugins to core package
- disable gtk-windows-decorator
- drop compiz-mate-gtk compiz session script
- disable gtk-windows-decorator patches
- disable marco/metacity
- disable mate/gnome
- disable mate/gnome keybindings
- insert compiz-mate-emerald compiz session script
- insert compiz-xfce-emerald compiz session script
- insert compiz-lxde-emerald compiz session script
- add emerald as require
- add matecompat icon
- add icon cache scriptlets
This commit is contained in:
raveit 2012-12-25 19:33:43 +01:00
parent d658e0f879
commit 85a4272321
24 changed files with 1029 additions and 308 deletions

View File

@ -1,82 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<KeyListEntries wm_name="Marco" package="marco" group="system" name="Navigation">
<KeyListEntry value="1" name="/apps/marco/window_keybindings/move_to_workspace_1" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="1" name="/apps/marco/window_keybindings/move_to_workspace_2" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="2" name="/apps/marco/window_keybindings/move_to_workspace_3" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="3" name="/apps/marco/window_keybindings/move_to_workspace_4" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="4" name="/apps/marco/window_keybindings/move_to_workspace_5" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="5" name="/apps/marco/window_keybindings/move_to_workspace_6" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="6" name="/apps/marco/window_keybindings/move_to_workspace_7" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="7" name="/apps/marco/window_keybindings/move_to_workspace_8" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="8" name="/apps/marco/window_keybindings/move_to_workspace_9" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="9" name="/apps/marco/window_keybindings/move_to_workspace_10" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="10" name="/apps/marco/window_keybindings/move_to_workspace_11" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="11" name="/apps/marco/window_keybindings/move_to_workspace_12" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="1" name="/apps/marco/window_keybindings/move_to_workspace_left" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="1" name="/apps/marco/window_keybindings/move_to_workspace_right" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="1" name="/apps/marco/window_keybindings/move_to_workspace_up" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="1" name="/apps/marco/window_keybindings/move_to_workspace_down" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry name="/apps/marco/global_keybindings/switch_windows"/>
<KeyListEntry name="/apps/marco/global_keybindings/switch_group"/>
<KeyListEntry name="/apps/marco/global_keybindings/switch_panels"/>
<KeyListEntry name="/apps/marco/global_keybindings/cycle_windows"/>
<KeyListEntry name="/apps/marco/global_keybindings/cycle_group"/>
<KeyListEntry name="/apps/marco/global_keybindings/cycle_panels"/>
<KeyListEntry name="/apps/marco/global_keybindings/show_desktop"/>
<KeyListEntry value="1" name="/apps/marco/global_keybindings/switch_to_workspace_1" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="1" name="/apps/marco/global_keybindings/switch_to_workspace_2" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="2" name="/apps/marco/global_keybindings/switch_to_workspace_3" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="3" name="/apps/marco/global_keybindings/switch_to_workspace_4" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="4" name="/apps/marco/global_keybindings/switch_to_workspace_5" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="5" name="/apps/marco/global_keybindings/switch_to_workspace_6" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="6" name="/apps/marco/global_keybindings/switch_to_workspace_7" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="7" name="/apps/marco/global_keybindings/switch_to_workspace_8" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="8" name="/apps/marco/global_keybindings/switch_to_workspace_9" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="9" name="/apps/marco/global_keybindings/switch_to_workspace_10" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="10" name="/apps/marco/global_keybindings/switch_to_workspace_11" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="11" name="/apps/marco/global_keybindings/switch_to_workspace_12" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="1" name="/apps/marco/global_keybindings/switch_to_workspace_left" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="1" name="/apps/marco/global_keybindings/switch_to_workspace_right" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="1" name="/apps/marco/global_keybindings/switch_to_workspace_up" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry value="1" name="/apps/marco/global_keybindings/switch_to_workspace_down" key="/apps/marco/general/num_workspaces" comparison="gt"/>
</KeyListEntries>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<KeyListEntries wm_name="Marco" package="marco" group="system" name="System">
<KeyListEntry name="/apps/marco/global_keybindings/panel_run_dialog"/>
<KeyListEntry name="/apps/marco/global_keybindings/panel_main_menu"/>
</KeyListEntries>

View File

@ -1,36 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<KeyListEntries wm_name="Marco" package="marco" group="system" name="Windows">
<KeyListEntry name="/apps/marco/window_keybindings/activate_window_menu"/>
<KeyListEntry name="/apps/marco/window_keybindings/toggle_fullscreen"/>
<KeyListEntry name="/apps/marco/window_keybindings/toggle_maximized"/>
<KeyListEntry name="/apps/marco/window_keybindings/maximize"/>
<KeyListEntry name="/apps/marco/window_keybindings/unmaximize"/>
<KeyListEntry name="/apps/marco/window_keybindings/toggle_shaded"/>
<KeyListEntry name="/apps/marco/window_keybindings/close"/>
<KeyListEntry name="/apps/marco/window_keybindings/minimize"/>
<KeyListEntry name="/apps/marco/window_keybindings/begin_move"/>
<KeyListEntry name="/apps/marco/window_keybindings/begin_resize"/>
<KeyListEntry value="1" name="/apps/marco/window_keybindings/toggle_on_all_workspaces" key="/apps/marco/general/num_workspaces" comparison="gt"/>
<KeyListEntry name="/apps/marco/window_keybindings/raise_or_lower"/>
<KeyListEntry name="/apps/marco/window_keybindings/raise"/>
<KeyListEntry name="/apps/marco/window_keybindings/lower"/>
<KeyListEntry name="/apps/marco/window_keybindings/maximize_vertically"/>
<KeyListEntry name="/apps/marco/window_keybindings/maximize_horizontally"/>
</KeyListEntries>

View File

@ -0,0 +1,257 @@
Author: Sebastien Bacher <seb128@canonical.com>
Description: add cursor theme and size support
Origin: vendor, ubuntu (1:0.3.6-1ubuntu4)
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/86184
Author: Jasmine Hassan <jasmine.aura@gmail.com>
Description: Updated to migrate to Mate Desktop
Origin: <other>, build for LMDE/Debian Testing
Last-Updated: 2012-10-09
--- a/configure.ac
+++ b/configure.ac
@@ -125,6 +125,7 @@ COMPIZ_REQUIRES="x11 \
xdamage \
xrandr \
xinerama \
+ xcursor \
ice \
sm \
libxml-2.0 \
@@ -301,6 +302,7 @@ AC_ARG_ENABLE(mate-keybindings,
if test "x$use_gtk" = "xyes"; then
PKG_CHECK_MODULES(GTK_WINDOW_DECORATOR,
xrender >= 0.8.4 \
+ xcursor \
gtk+-2.0 >= 2.8.0 \
libwnck-1.0 \
pangocairo,
--- a/gtk/window-decorator/gtk-window-decorator.c
+++ b/gtk/window-decorator/gtk-window-decorator.c
@@ -30,6 +30,7 @@
#include <X11/cursorfont.h>
#include <X11/extensions/Xrender.h>
#include <X11/Xregion.h>
+#include <X11/Xcursor/Xcursor.h>
#ifndef GDK_DISABLE_DEPRECATED
#define GDK_DISABLE_DEPRECATED
@@ -75,6 +76,14 @@
#include <marco-private/theme.h>
#endif
+#define MATE_MOUSE_DIR "/desktop/mate/peripherals/mouse"
+
+#define MATE_CURSOR_THEME_KEY \
+ MATE_MOUSE_DIR "/cursor_theme"
+
+#define MATE_CURSOR_SIZE_KEY \
+ MATE_MOUSE_DIR "/cursor_size"
+
#define MARCO_MATECONF_DIR "/apps/marco/general"
#define COMPIZ_USE_SYSTEM_FONT_KEY \
@@ -138,6 +147,13 @@
#define WHEEL_ACTION_KEY \
MATECONF_DIR "/mouse_wheel_action"
+#define COMPIZ_MATECONF_DIR2 "/apps/compiz/general/allscreens/options"
+#define COMPIZ_CURSOR_THEME_KEY \
+ COMPIZ_MATECONF_DIR2 "/cursor_theme"
+
+#define COMPIZ_CURSOR_SIZE_KEY \
+ COMPIZ_MATECONF_DIR2 "/cursor_size"
+
#define DBUS_DEST "org.freedesktop.compiz"
#define DBUS_PATH "/org/freedesktop/compiz/decoration/allscreens"
#define DBUS_INTERFACE "org.freedesktop.compiz"
@@ -6462,6 +6478,44 @@ button_layout_changed (MateConfClient *c
}
static void
+cursor_theme_changed (MateConfClient *client)
+{
+ gchar *theme;
+ gint size;
+
+ theme = mateconf_client_get_string(client, MATE_CURSOR_THEME_KEY, NULL);
+ size = mateconf_client_get_int(client, MATE_CURSOR_SIZE_KEY, NULL);
+
+ mateconf_client_set_string(client, COMPIZ_CURSOR_THEME_KEY, theme, NULL);
+
+ mateconf_client_set_int(client, COMPIZ_CURSOR_SIZE_KEY, size, NULL);
+
+ if (theme && strlen(theme))
+ {
+ gint i, j;
+ GdkDisplay *gdkdisplay = gdk_display_get_default ();
+ Display *xdisplay = gdk_x11_display_get_xdisplay (gdkdisplay);
+
+
+ XcursorSetTheme (xdisplay, theme);
+ XcursorSetDefaultSize (xdisplay, size);
+
+ for (i = 0; i < 3; i++)
+ {
+ for (j = 0; j < 3; j++)
+ {
+ if (cursor[i][j].shape != XC_left_ptr)
+ {
+ XFreeCursor (xdisplay, cursor[i][j].cursor);
+ cursor[i][j].cursor =
+ XCreateFontCursor (xdisplay, cursor[i][j].shape);
+ }
+ }
+ }
+ }
+}
+
+static void
value_changed (MateConfClient *client,
const gchar *key,
MateConfValue *value,
@@ -6539,6 +6593,11 @@ value_changed (MateConfClient *client,
if (theme_opacity_changed (client))
changed = TRUE;
}
+ else if (strcmp (key, MATE_CURSOR_THEME_KEY) == 0 ||
+ strcmp (key, MATE_CURSOR_SIZE_KEY) == 0)
+ {
+ cursor_theme_changed (client);
+ }
if (changed)
decorations_changed (data);
@@ -6702,6 +6761,11 @@ init_settings (WnckScreen *screen)
NULL);
mateconf_client_add_dir (mateconf,
+ MATE_MOUSE_DIR,
+ MATECONF_CLIENT_PRELOAD_ONELEVEL,
+ NULL);
+
+ mateconf_client_add_dir (mateconf,
COMPIZ_MATECONF_DIR1,
MATECONF_CLIENT_PRELOAD_ONELEVEL,
NULL);
@@ -6710,6 +6774,9 @@ init_settings (WnckScreen *screen)
"value_changed",
G_CALLBACK (value_changed),
screen);
+
+ cursor_theme_changed(mateconf);
+
#elif USE_DBUS_GLIB
DBusConnection *connection;
DBusMessage *reply;
--- a/metadata/core.xml.in.in
+++ b/metadata/core.xml.in.in
@@ -35,6 +35,18 @@
<min>0</min>
<max>10000</max>
</option>
+ <option name="cursor_theme" type="string">
+ <_short>Cursor theme</_short>
+ <_long>Cursor theme name</_long>
+ <default></default>
+ </option>
+ <option name="cursor_size" type="int">
+ <_short>Cursor size</_short>
+ <_long>Size of the cursor</_long>
+ <default>18</default>
+ <min>8</min>
+ <max>128</max>
+ </option>
<option name="ping_delay" type="int">
<_short>Ping Delay</_short>
<_long>Interval between ping messages</_long>
--- a/src/display.c
+++ b/src/display.c
@@ -41,6 +41,8 @@
#include <X11/extensions/Xcomposite.h>
#include <X11/extensions/Xrandr.h>
#include <X11/extensions/shape.h>
+#include <X11/Xcursor/Xcursor.h>
+#include <X11/cursorfont.h>
#include <compiz-core.h>
@@ -474,6 +476,32 @@ shade (CompDisplay *d,
return TRUE;
}
+static void
+compDisplaySetCursorTheme (CompDisplay *display)
+{
+ char *theme = display->opt[COMP_DISPLAY_OPTION_CURSOR_THEME].value.s;
+ int size = display->opt[COMP_DISPLAY_OPTION_CURSOR_SIZE].value.i;
+
+ if (theme && strlen(theme))
+ {
+ CompScreen *s;
+
+ XcursorSetTheme (display->display, theme);
+ XcursorSetDefaultSize (display->display, size);
+ for (s = display->screens; s; s = s->next)
+ {
+ XFreeCursor (display->display, s->normalCursor);
+ s->busyCursor = XCreateFontCursor (display->display, XC_watch);
+ XFlush (display->display);
+
+ XFreeCursor (display->display, s->normalCursor);
+ s->normalCursor = XCreateFontCursor (display->display, XC_left_ptr);
+ XDefineCursor (display->display, s->root, s->normalCursor);
+ XFlush (display->display);
+ }
+ }
+}
+
const CompMetadataOptionInfo coreDisplayOptionInfo[COMP_DISPLAY_OPTION_NUM] = {
{ "abi", "int", 0, 0, 0 },
{ "active_plugins", "list", "<type>string</type>", 0, 0 },
@@ -510,7 +538,9 @@ const CompMetadataOptionInfo coreDisplay
{ "toggle_window_shaded_key", "key", 0, shade, 0 },
{ "ignore_hints_when_maximized", "bool", 0, 0, 0 },
{ "ping_delay", "int", "<min>1000</min>", 0, 0 },
- { "edge_delay", "int", "<min>0</min>", 0, 0 }
+ { "edge_delay", "int", "<min>0</min>", 0, 0 },
+ { "cursor_theme", "string", 0, 0, 0 },
+ { "cursor_size", "int", 0, 0, 0 }
};
CompOption *
@@ -661,6 +691,20 @@ setDisplayOption (CompPlugin *plugin,
return TRUE;
}
break;
+ case COMP_DISPLAY_OPTION_CURSOR_THEME:
+ if (compSetStringOption(o, value))
+ {
+ compDisplaySetCursorTheme(display);
+ return TRUE;
+ }
+ break;
+ case COMP_DISPLAY_OPTION_CURSOR_SIZE:
+ if (compSetIntOption(o, value))
+ {
+ compDisplaySetCursorTheme(display);
+ return TRUE;
+ }
+ break;
default:
if (compSetDisplayOption (display, o, value))
return TRUE;
--- a/include/compiz-core.h
+++ b/include/compiz-core.h
@@ -776,7 +776,10 @@ removeFileWatch (CompFileWatchHandle han
#define COMP_DISPLAY_OPTION_IGNORE_HINTS_WHEN_MAXIMIZED 31
#define COMP_DISPLAY_OPTION_PING_DELAY 32
#define COMP_DISPLAY_OPTION_EDGE_DELAY 33
-#define COMP_DISPLAY_OPTION_NUM 34
+#define COMP_DISPLAY_OPTION_CURSOR_THEME 34
+#define COMP_DISPLAY_OPTION_CURSOR_SIZE 35
+#define COMP_DISPLAY_OPTION_NUM 36
+
typedef void (*HandleEventProc) (CompDisplay *display,
XEvent *event);

View File

@ -0,0 +1,43 @@
Author: Matthew Garrett <mjg59@srcf.ucam.org>
Description: Disable clipping of child windows
* This patch was modified to apply cleanly in 0.8.4-1
Last-Modified: Thu, 11 Feb 2010 20:06:12 +0100
Origin: vendor, ubuntu (1:0.3.6-1ubuntu10)
--- a/src/display.c
+++ b/src/display.c
@@ -2234,6 +2234,23 @@ addDisplay (const char *name)
lastScreen = ScreenCount (dpy) - 1;
}
+ {
+ XSetWindowAttributes attr;
+ Atom atom;
+
+ attr.override_redirect = TRUE;
+ d->glIncludeInferiorsOwner =
+ XCreateWindow (dpy, XRootWindow (dpy, 0),
+ -100, -100, 1, 1, 0,
+ CopyFromParent, CopyFromParent,
+ CopyFromParent,
+ CWOverrideRedirect,
+ &attr);
+
+ atom = XInternAtom (dpy, "_COMPIZ_GL_INCLUDE_INFERIORS", False);
+ XSetSelectionOwner(dpy, atom, d->glIncludeInferiorsOwner, CurrentTime);
+ }
+
for (i = firstScreen; i <= lastScreen; i++)
{
Window newWmSnOwner = None, newCmSnOwner = None;
--- a/include/compiz-core.h
+++ b/include/compiz-core.h
@@ -1028,6 +1028,8 @@ struct _CompDisplay {
GLenum textureFilter;
+ Window glIncludeInferiorsOwner;
+
Window activeWindow;
Window nextActiveWindow;

32
compiz-lxde-emerald Normal file
View File

@ -0,0 +1,32 @@
#!/bin/bash
function runCompiz() {
if ( [ -e /usr/lib/compizconfig/backends/libini.so ] || [ -e /usr/lib64/compizconfig/backends/libini.so ] )
then
exec compiz --replace --sm-disable --ignore-desktop-hints ccp &&
emerald --replace $@
else
exec compiz --replace --sm-disable --ignore-desktop-hints ccp glib ini $@
fi
}
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 openbox-lxde
exec openbox-lxde $@

View File

@ -0,0 +1,8 @@
[Desktop Entry]
Type=Application
Name=Compiz
TryExec=compiz-lxde-emerald
Exec=compiz-lxde-emerald
NoDisplay=true
Name[de_DE]=compiz-lxde-emerald.desktop
X-Desktop-File-Install-Version=0.21

View File

@ -1,12 +1,12 @@
#!/bin/bash
function runCompiz() {
gtk-window-decorator &
if ( [ -e /usr/lib/compizconfig/backends/libmateconf.so ] || [ -e /usr/lib64/compizconfig/backends/libmateconf.so ] )
if ( [ -e /usr/lib/compizconfig/backends/libini.so ] || [ -e /usr/lib64/compizconfig/backends/libini.so ] )
then
exec compiz --ignore-desktop-hints ccp $@
exec compiz --replace --sm-disable --ignore-desktop-hints ccp &&
emerald --replace $@
else
exec compiz --ignore-desktop-hints glib mateconf matecompat $@
exec compiz --replace --sm-disable --ignore-desktop-hints glib ini matecompat $@
fi
}

View File

@ -0,0 +1,7 @@
[Desktop Entry]
Type=Application
Name=Compiz
TryExec=compiz-mate-emerald
Exec=compiz-mate-emerald
NoDisplay=true
Name[de_DE]=compiz-mate-emerald.desktop

View File

@ -1,8 +0,0 @@
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Compiz
TryExec=compiz-mate-gtk
Exec=compiz-mate-gtk
NoDisplay=true

View File

@ -0,0 +1,134 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg3315"
version="1.1"
inkscape:version="0.48.1 r9760"
width="48"
height="48"
sodipodi:docname="mate.png">
<metadata
id="metadata3321">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3319" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="640"
inkscape:window-height="480"
id="namedview3317"
showgrid="false"
inkscape:zoom="5.9375"
inkscape:cx="24"
inkscape:cy="24"
inkscape:window-x="587"
inkscape:window-y="157"
inkscape:window-maximized="0"
inkscape:current-layer="svg3315" />
<image
width="48"
height="48"
xlink:href="data:image/png;base64,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
"
id="image3323"
x="0"
y="0" />
</svg>

After

Width:  |  Height:  |  Size: 7.2 KiB

32
compiz-xfce-emerald Normal file
View File

@ -0,0 +1,32 @@
#!/bin/bash
function runCompiz() {
if ( [ -e /usr/lib/compizconfig/backends/libini.so ] || [ -e /usr/lib64/compizconfig/backends/libini.so ] )
then
exec compiz --replace --sm-disable --ignore-desktop-hints ccp &&
emerald --replace $@
else
exec compiz --replace --sm-disable --ignore-desktop-hints ccp glib ini $@
fi
}
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 xfwm4
exec xfwm4 $@

View File

@ -0,0 +1,8 @@
[Desktop Entry]
Type=Application
Name=Compiz
TryExec=compiz-xfce-emerald
Exec=compiz-xfce-emerald
NoDisplay=true
Name[de_DE]=compiz-xfce-emerald.desktop
X-Desktop-File-Install-Version=0.21

View File

@ -1,27 +1,29 @@
%global core_plugins blur clone cube dbus decoration fade ini inotify minimize move place png regex resize rotate scale screenshot switcher video water wobbly zoom fs obs commands wall
%global mate_plugins annotate mateconf glib svg matecompat
%global core_plugins blur clone cube dbus decoration fade ini inotify minimize move place png regex resize rotate scale screenshot switcher video water wobbly zoom fs obs commands wall glib annotate svg
%global mate_plugins matecompat
# List of plugins passed to ./configure. The order is important
%global plugins core,glib,dbus,png,svg,video,screenshot,decoration,clone,place,fade,minimize,move,resize,switcher,scale,wall,obs
%global plugins core,glib,mateconf,dbus,png,svg,video,screenshot,decoration,clone,place,fade,minimize,move,resize,switcher,scale,wall,obs
Name: compiz
URL: http://www.compiz.org
License: GPLv2+ and LGPLv2+ and MIT
Group: User Interface/Desktops
Version: 0.8.8
Release: 7%{?dist}
Release: 11%{?dist}
Epoch: 1
Summary: OpenGL window and compositing manager
# libdrm is not available on these arches
ExcludeArch: s390 s390x
Requires: system-logos
Requires: glx-utils
Requires(post): desktop-file-utils
# this is an inverse require which is needed for build without gtk-windows-decorator
Requires: emerald
BuildRequires: libX11-devel
BuildRequires: libdrm-devel
BuildRequires: libwnck-devel
@ -35,8 +37,6 @@ BuildRequires: libXt-devel
BuildRequires: libSM-devel
BuildRequires: libICE-devel
BuildRequires: libXmu-devel
BuildRequires: mate-desktop-devel
BuildRequires: mate-control-center-devel
BuildRequires: mate-conf-devel
BuildRequires: desktop-file-utils
BuildRequires: intltool
@ -44,25 +44,27 @@ BuildRequires: gettext
BuildRequires: dbus-devel
BuildRequires: dbus-glib-devel
BuildRequires: librsvg2-devel
BuildRequires: mate-window-manager-devel
BuildRequires: mesa-libGLU-devel
BuildRequires: fuse-devel
BuildRequires: cairo-devel
BuildRequires: libtool
BuildRequires: libxslt-devel
Source0: http://releases.compiz.org/%{version}/%{name}-%{version}.tar.bz2
Source2: compiz-mate-gtk
Source3: compiz-mate-gtk.desktop
Source4: 50-marco-navigation.xml
Source5: 50-marco-system.xml
Source6: 50-marco-windows.xml
Source2: compiz-mate-emerald
Source3: compiz-mate-emerald.desktop
Source4: compiz-xfce-emerald
Source5: compiz-xfce-emerald.desktop
Source6: compiz-lxde-emerald
Source7: compiz-lxde-emerald.desktop
Source8: compiz-plugins-main_plugin-matecompat.svg
# fork gnome to mate
Patch0: comiz_mate_fork.patch
# fix http://forums.mate-desktop.org/viewtopic.php?f=8&t=818
Patch1: compiz_gtk_window_decoration_button_placement.patch
Patch2: compiz_windows-decorator.patch
#Patch1: compiz_gtk_window_decoration_button_placement.patch
#Patch2: compiz_windows-decorator.patch
# Patches that are not upstream
Patch3: composite-cube-logo.patch
Patch4: fedora-logo.patch
@ -71,7 +73,20 @@ Patch6: compiz-0.8.6-wall.patch
Patch7: compiz-0.8.6-unloadpluginfix.patch
Patch8: no-more-mate-wm-settings.patch
Patch9: compiz-0.88_incorrect-fsf-address.patch
Patch10: compiz-disable-child-window-clipping.patch
Patch11: compiz-add-cursor-theme-support.patch
#Patch12: compiz-fix-gtk-window-decorator-no-argb-crash.patch
Patch13: compiz_fix-no-border-window-shadow.patch
Patch14: compiz_draw_dock_shadows_on_desktop.patch
Patch15: compiz_optional-fbo.patch
Patch16: compiz_call_glxwaitx_before_drawing.patch
Patch17: compiz_always_unredirect_screensaver_on_nvidia.patch
#Patch18: compiz_hide_tooltip_on_decorator.patch
Patch19: compiz_fullscreen_stacking_fixes.patch
Patch20: compiz_damage-report-non-empty.patch
Patch21: compiz_stacking.patch
%description
Compiz is one of the first OpenGL-accelerated compositing window
managers for the X Window System. The integration allows it to perform
@ -79,7 +94,7 @@ compositing effects in window management, such as a minimization
effect and a cube work space. Compiz is an OpenGL compositing manager
that use Compiz use EXT_texture_from_pixmap OpenGL extension for
binding redirected top-level windows to texture objects.
%package devel
Summary: Development packages for compiz
Group: Development/Libraries
@ -88,32 +103,47 @@ Requires: pkgconfig
Requires: libXcomposite-devel libXfixes-devel libXdamage-devel libXrandr-devel
Requires: libXinerama-devel libICE-devel libSM-devel libxml2-devel
Requires: libxslt-devel startup-notification-devel
%description devel
The compiz-devel package includes the header files,
and developer docs for the compiz package.
Install compiz-devel if you want to develop plugins for the compiz
windows and compositing manager.
%package mate
Summary: Compiz mate integration bits
Group: User Interface/Desktops
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
Requires(pre): mate-conf
Requires(post): mate-conf
Requires(preun): mate-conf
%description mate
The compiz-mate package contains gtk-window-decorator,
and other mate integration related stuff.
The compiz-mate package contains matecompat plugin
and a compiz start script for mate.
%package xfce
Summary: Compiz mate integration bits
Group: User Interface/Desktops
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
%description xfce
The compiz-xfce package contains a compiz start script
for xfce.
%package lxde
Summary: Compiz mate integration bits
Group: User Interface/Desktops
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
%description lxde
The compiz-lxde package contains a compiz start script
for lxde.
%prep
%setup -q
%patch0 -p1 -b .comiz_mate_fork
%patch1 -p1 -b .compiz_gtk_window_decoration_button
%patch2 -p1 -b .compiz_windows-decorator
#%patch1 -p1 -b .compiz_gtk_window_decoration_button
#%patch2 -p1 -b .compiz_windows-decorator
%patch3 -p1 -b .composite-cube-logo
%if 0%{?fedora}
%patch4 -p1 -b .fedora-logo
@ -124,89 +154,113 @@ and other mate integration related stuff.
%patch7 -p1 -b .unloadfix
%patch8 -p1 -b .mate-wm-settings
%patch9 -p1 -b .incorrect-fsf-address
%patch11 -p1 -b .cursor-theme-support
#%patch12 -p1 -b .gtk-window-decorator-no-argb-crash
%patch13 -p1 -b .no-border-window-shadow
%patch14 -p1 -b .draw_dock_shadows
%patch15 -p1 -b .fbo
%patch16 -p1 -b .glxwaitx_before_drawing
%patch17 -p1 -b .always_unredirect_screensaver
#%patch18 -p1 -b .tooltip_on_decorator
%patch19 -p1 -b .fullscreen_stacking
%patch20 -p1 -b .damage-report
%patch21 -p1 -b .stacking
%build
libtoolize
aclocal
autoconf
automake
%configure \
--enable-mateconf \
--disable-mateconf \
--enable-dbus \
--enable-librsvg \
--enable-gtk \
--enable-marco \
--disable-gtk \
--disable-marco \
--enable-mate \
--with-default-plugins=%{plugins} \
--enable-mate-keybindings \
--disable-mate-keybindings \
--disable-kde \
--disable-kde4 \
--disable-kconfig
make %{?_smp_mflags} imagedir=%{_datadir}/pixmaps
%install
export MATECONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
make DESTDIR=$RPM_BUILD_ROOT install || exit 1
unset MATECONF_DISABLE_MAKEFILE_SCHEMA_INSTALL
install %SOURCE2 $RPM_BUILD_ROOT%{_bindir}
install %SOURCE4 $RPM_BUILD_ROOT%{_bindir}
install %SOURCE6 $RPM_BUILD_ROOT%{_bindir}
desktop-file-install --vendor="" \
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
%SOURCE3
desktop-file-install --vendor="" \
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
%SOURCE5
desktop-file-install --vendor="" \
--dir $RPM_BUILD_ROOT%{_datadir}/applications \
%SOURCE7
# matecompat icon
mkdir -p $RPM_BUILD_ROOT%{_datadir}/ccsm/icons/hicolor/scalable/apps
cp -f %SOURCE8 $RPM_BUILD_ROOT%{_datadir}/ccsm/icons/hicolor/scalable/apps/plugin-matecompat.svg
rm $RPM_BUILD_ROOT%{_datadir}/compiz/kconfig.xml
rm $RPM_BUILD_ROOT%{_sysconfdir}/mateconf/schemas/compiz-kconfig.schemas
rm $RPM_BUILD_ROOT%{_datadir}/compiz/mateconf.xml
rm $RPM_BUILD_ROOT%{_datadir}/applications/compiz.desktop
find $RPM_BUILD_ROOT -name '*.la' -exec rm -f {} ';'
find $RPM_BUILD_ROOT -name '*.a' -exec rm -f {} ';'
# create compiz keybindings file based on the marco 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}/mate-control-center/keybindings
sed 's/wm_name=\"Marco\" package=\"marco\"/wm_name=\"Compiz\" package=\"compiz\"/' /usr/share/mate-control-center/keybindings/50-marco-desktop-key.xml > $RPM_BUILD_ROOT/%{_datadir}/mate-control-center/keybindings/50-compiz-desktop-key.xml
sed 's/wm_name=\"Marco\" package=\"marco\"/wm_name=\"Compiz\" package=\"compiz\"/' /usr/share/mate-control-center/keybindings/50-marco-key.xml > $RPM_BUILD_ROOT/%{_datadir}/mate-control-center/keybindings/50-compiz-key.xml
cp %SOURCE4 $RPM_BUILD_ROOT%{_datadir}/mate-control-center/keybindings/50-compiz-navigation.xml
cp %SOURCE5 $RPM_BUILD_ROOT%{_datadir}/mate-control-center/keybindings/50-compiz-system.xml
cp %SOURCE6 $RPM_BUILD_ROOT%{_datadir}/mate-control-center/keybindings/50-compiz-windows.xml
sed -i 's#key=\"/apps/marco/general/num_workspaces\" comparison=\"gt\"##g' $RPM_BUILD_ROOT/%{_datadir}/mate-control-center/keybindings/50-compiz-desktop-key.xml
sed -i 's#key=\"/apps/marco/general/num_workspaces\" comparison=\"gt\"##g' $RPM_BUILD_ROOT/%{_datadir}/mate-control-center/keybindings/50-compiz-key.xml
%find_lang compiz
cat compiz.lang > core-files.txt
%find_lang %{name}
cat %{name}.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 %{mate_plugins}; do
echo %{_libdir}/compiz/lib$f.so
echo %{_datadir}/compiz/$f.xml
done >> mate-files.txt
%check
desktop-file-validate $RPM_BUILD_ROOT/%{_datadir}/applications/compiz-mate-emerald.desktop
desktop-file-validate $RPM_BUILD_ROOT/%{_datadir}/applications/compiz-xfce-emerald.desktop
desktop-file-validate $RPM_BUILD_ROOT/%{_datadir}/applications/compiz-lxde-emerald.desktop
%post
/sbin/ldconfig
/bin/touch --no-create %{_datadir}/compiz &>/dev/null || :
/bin/touch --no-create %{_datadir}/ccsm/icons/hicolor/scalable/apps &>/dev/null || :
%postun
/sbin/ldconfig
if [ $1 -eq 0 ] ; then
/bin/touch --no-create %{_datadir}/compiz &>/dev/null
/usr/bin/gtk-update-icon-cache %{_datadir}/compiz &>/dev/null || :
fi
if [ $1 -eq 0 ] ; then
/bin/touch --no-create %{_datadir}/ccsm/icons/hicolor/scalable/apps &>/dev/null
/usr/bin/gtk-update-icon-cache %{_datadir}/ccsm/icons/hicolor/scalable/apps &>/dev/null || :
fi
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%post mate
%mateconf_schema_upgrade compiz-annotate compiz-blur compiz-clone compiz-commands compiz-core compiz-cube compiz-dbus compiz-decoration compiz-fade compiz-fs compiz-glib compiz-ini compiz-inotify compiz-matecompat compiz-mateconf compiz-minimize compiz-move compiz-obs compiz-place compiz-png compiz-regex compiz-resize compiz-rotate compiz-scale compiz-screenshot compiz-svg compiz-switcher compiz-video compiz-wall compiz-water compiz-wobbly compiz-zoom gwd
%pre mate
%mateconf_schema_prepare compiz-annotate compiz-blur compiz-clone compiz-commands compiz-core compiz-cube compiz-dbus compiz-decoration compiz-fade compiz-fs compiz-glib compiz-ini compiz-inotify compiz-matecompat compiz-mateconf compiz-minimize compiz-move compiz-obs compiz-place compiz-png compiz-regex compiz-resize compiz-rotate compiz-scale compiz-screenshot compiz-svg compiz-switcher compiz-video compiz-wall compiz-water compiz-wobbly compiz-zoom gwd
%gconf_schema_obsolete compiz-kconfig
%preun mate
%mateconf_schema_remove compiz-annotate compiz-blur compiz-clone compiz-commands compiz-core compiz-cube compiz-dbus compiz-decoration compiz-fade compiz-fs compiz-glib compiz-ini compiz-inotify compiz-matecompat compiz-mateconf compiz-minimize compiz-move compiz-obs compiz-place compiz-png compiz-regex compiz-resize compiz-rotate compiz-scale compiz-screenshot compiz-svg compiz-switcher compiz-video compiz-wall compiz-water compiz-wobbly compiz-zoom gwd
%posttrans
/usr/bin/gtk-update-icon-cache %{_datadir}/compiz &>/dev/null || :
/usr/bin/gtk-update-icon-cache %{_datadir}/ccsm/icons/hicolor/scalable/apps &>/dev/null || :
%files -f core-files.txt
%doc AUTHORS ChangeLog COPYING.GPL COPYING.LGPL README TODO NEWS
%{_bindir}/compiz
@ -215,33 +269,64 @@ done >> mate-files.txt
%dir %{_datadir}/compiz
%{_datadir}/compiz/*.png
%{_datadir}/compiz/core.xml
%files mate -f mate-files.txt
%{_bindir}/compiz-mate-gtk
%{_bindir}/gtk-window-decorator
%{_datadir}/mate-control-center/keybindings/50-compiz-desktop-key.xml
%{_datadir}/mate-control-center/keybindings/50-compiz-key.xml
%{_datadir}/mate-control-center/keybindings/50-compiz-navigation.xml
%{_datadir}/mate-control-center/keybindings/50-compiz-system.xml
%{_datadir}/mate-control-center/keybindings/50-compiz-windows.xml
%{_datadir}/applications/compiz-mate-gtk.desktop
%exclude %{_datadir}/applications/compiz.desktop
%config(noreplace) %{_sysconfdir}/mateconf/schemas/*.schemas
%{_bindir}/compiz-mate-emerald
%{_datadir}/applications/compiz-mate-emerald.desktop
%{_datadir}/ccsm/icons/hicolor/scalable/apps/plugin-matecompat.svg
%files xfce
%{_bindir}/compiz-xfce-emerald
%{_datadir}/applications/compiz-xfce-emerald.desktop
%files lxde
%{_bindir}/compiz-lxde-emerald
%{_datadir}/applications/compiz-lxde-emerald.desktop
%files devel
%{_libdir}/pkgconfig/compiz.pc
%{_libdir}/pkgconfig/libdecoration.pc
%{_libdir}/pkgconfig/compiz-cube.pc
%{_libdir}/pkgconfig/compiz-mateconf.pc
%{_libdir}/pkgconfig/compiz-scale.pc
%{_datadir}/compiz/schemas.xslt
%{_includedir}/compiz/
%{_libdir}/libdecoration.so
%changelog
* Sat Dec 22 2012 Wolfgang Ulbrich <chat-to-me@raveit.de> - 1:0.8.8-11
- do some major changes
- disable mateconf and use libini text file configuration backend
- remove mateconf from scriptlet section
- move glib annotate svg plugins to core package
- disable gtk-windows-decorator
- drop compiz-mate-gtk compiz session script
- disable gtk-windows-decorator patches
- disable marco/metacity
- disable mate/gnome
- disable mate/gnome keybindings
- insert compiz-mate-emerald compiz session script
- insert compiz-xfce-emerald compiz session script
- insert compiz-lxde-emerald compiz session script
- add emerald as require
- add matecompat icon
- add icon cache scriptlets
* Sun Dec 02 2012 Wolfgang Ulbrich <chat-to-me@raveit.de> - 1:0.8.8-10
- add %%global plugins_schemas again
* Sun Dec 02 2012 Wolfgang Ulbrich <chat-to-me@raveit.de> - 1:0.8.8-9
- revert scriptlet change
* Sun Dec 02 2012 Wolfgang Ulbrich <chat-to-me@raveit.de> - 1:0.8.8-8
- add %%global plugins_schemas
- change mateconf scriptlets
- remove (Requires(post): desktop-file-utils)
- add some patches from Jasmine Hassan jasmine.aura@gmail.com
- remove (noreplace) from mateconf schema directory
- add desktop-file-validate
- disable mate keybindings for the moment
* Fri Oct 05 2012 Leigh Scott <leigh123linux@googlemail.com> - 1:0.8.8-7
- remove and obsolete compiz-kconfig schema

View File

@ -0,0 +1,32 @@
Author: Travis Watkins <amaranth@ubuntu.com>
Description: Always unredirect mate-screensaver when using nvidia
Workaround for LP #160264 while still disabling unredirect fullscreen
windows for nvidia users
Origin: vendor, ubuntu (1:0.8.3+git20090917-0ubuntu4)
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/160264
--- a/src/paint.c
+++ b/src/paint.c
@@ -262,6 +262,7 @@ paintOutputRegion (CompScreen *sc
CompTransform vTransform;
int offX, offY;
Region clip = region;
+ int dontcare;
if (!tmpRegion)
{
@@ -341,8 +342,14 @@ paintOutputRegion (CompScreen *sc
XSubtractRegion (tmpRegion, w->region, tmpRegion);
/* unredirect top most fullscreen windows. */
+ /* if the fullscreen window is mate-screensaver and we're
+ on nvidia we want to always unredirect even if this
+ option is disabled to work around LP #160264 */
if (count == 0 &&
- screen->opt[COMP_SCREEN_OPTION_UNREDIRECT_FS].value.b)
+ (screen->opt[COMP_SCREEN_OPTION_UNREDIRECT_FS].value.b ||
+ (w->resName && !strcmp(w->resName, "mate-screensaver") &&
+ XQueryExtension (screen->display->display, "NV-GLX",
+ &dontcare, &dontcare, &dontcare))))
{
if (XEqualRegion (w->region, &screen->region) &&
!REGION_NOT_EMPTY (tmpRegion))

View File

@ -0,0 +1,17 @@
Author: Travis Watkins <amaranth@ubuntu.com>
Description: Call glXWaitX before we start drawing
Call glXWaitX before we start drawing to make sure X is done
handling rendering calls. Suggested by Michel Dänzer to ensure
we don't have any rendering glitches.
Origin: vendor, ubuntu (1:0.8.3+git20090917-0ubuntu3)
--- a/src/display.c
+++ b/src/display.c
@@ -1537,6 +1537,8 @@ eventLoop (void)
timeDiff = 0;
makeScreenCurrent (s);
+ /* make sure X is ready for us to draw */
+ glXWaitX ();
if (s->slowAnimations)
{

View File

@ -0,0 +1,83 @@
Author: Michael Vogt <michael.vogt@ubuntu.com>
Description: Workaround for problems with damage extension and refresh
Add workaround patch by Aaron Plattner to fix problems with the damage
extension and refresh (LP: #269904)
Origin: vendor, ubuntu (1:0.7.8-0ubuntu4)
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/269904
--- a/src/event.c
+++ b/src/event.c
@@ -2315,32 +2315,50 @@ handleEvent (CompDisplay *d,
if (w)
{
+ XserverRegion parts = XFixesCreateRegion(de->display, NULL, 0);
+ XRectangle *rects;
+ int nRects;
+
w->texture->oldMipmaps = TRUE;
+ // Get the damage region
+ XDamageSubtract(de->display, de->damage, None, parts);
+ rects = XFixesFetchRegion(de->display, parts, &nRects);
+ XFixesDestroyRegion(de->display, parts);
+
if (w->syncWait)
{
- if (w->nDamage == w->sizeDamage)
+ int i;
+
+ if (w->nDamage + nRects - 1 >= w->sizeDamage)
{
w->damageRects = realloc (w->damageRects,
- (w->sizeDamage + 1) *
+ (w->sizeDamage + nRects) *
sizeof (XRectangle));
- w->sizeDamage += 1;
+ w->sizeDamage += nRects;
}
- w->damageRects[w->nDamage].x = de->area.x;
- w->damageRects[w->nDamage].y = de->area.y;
- w->damageRects[w->nDamage].width = de->area.width;
- w->damageRects[w->nDamage].height = de->area.height;
- w->nDamage++;
+ for (i = 0; i < nRects; i++)
+ {
+ w->damageRects[w->nDamage] = rects[i];
+ w->nDamage++;
+ }
}
else
{
- handleWindowDamageRect (w,
- de->area.x,
- de->area.y,
- de->area.width,
- de->area.height);
+ int i;
+
+ for (i = 0; i < nRects; i++)
+ {
+ handleWindowDamageRect (w,
+ rects[i].x,
+ rects[i].y,
+ rects[i].width,
+ rects[i].height);
+ }
}
+
+ XFree(rects);
}
}
else if (d->shapeExtension &&
--- a/src/window.c
+++ b/src/window.c
@@ -2207,7 +2207,7 @@ addWindow (CompScreen *screen,
XUnionRegion (&rect, w->region, w->region);
w->damage = XDamageCreate (d->display, id,
- XDamageReportRawRectangles);
+ XDamageReportNonEmpty);
/* need to check for DisplayModal state on all windows */
w->state = getWindowState (d, w->id);

View File

@ -0,0 +1,85 @@
Author: Travis Watkins <amaranth@ubuntu.com>
Description: Change decoration plugin dock shadow drawing behavior
change decoration plugin to draw dock shadows only on the
desktop window instead of on top of all other windows
Origin: vendor, ubuntu (1:0.8.2-0ubuntu16)
--- a/plugins/decoration.c
+++ b/plugins/decoration.c
@@ -190,6 +190,11 @@ decorDrawWindow (CompWindow *w,
status = (*w->screen->drawWindow) (w, transform, attrib, region, mask);
WRAP (ds, w->screen, drawWindow, decorDrawWindow);
+ /* we wait to draw dock shadows until we get to the lowest
+ desktop window in the stack */
+ if (w->type & CompWindowTypeDockMask)
+ return status;
+
if (mask & PAINT_WINDOW_TRANSFORMED_MASK)
region = &infiniteRegion;
@@ -226,6 +231,65 @@ decorDrawWindow (CompWindow *w,
attrib, mask);
}
+ if (w->type & CompWindowTypeDesktopMask)
+ {
+ /* we only want to draw on the lowest desktop window, find it and see
+ if we the window we have is it */
+ CompWindow *window = w->screen->windows;
+ for (window = w->screen->windows; window; window = window->next)
+ {
+ if (window->type & CompWindowTypeDesktopMask)
+ {
+ if (window == w)
+ break;
+ else
+ return status;
+ }
+ }
+
+ /* drawing dock shadows now */
+ for (window = w->screen->windows; window; window = window->next)
+ {
+ if (window->type & CompWindowTypeDockMask && !window->destroyed && !window->invisible)
+ {
+ DECOR_WINDOW (window);
+
+ if (dw->wd && region->numRects)
+ {
+ WindowDecoration *wd = dw->wd;
+ REGION box;
+ int i;
+
+ mask |= PAINT_WINDOW_BLEND_MASK;
+
+ box.rects = &box.extents;
+ box.numRects = 1;
+
+ window->vCount = window->indexCount = 0;
+
+ for (i = 0; i < wd->nQuad; i++)
+ {
+ box.extents = wd->quad[i].box;
+
+ if (box.extents.x1 < box.extents.x2 &&
+ box.extents.y1 < box.extents.y2)
+ {
+ (*window->screen->addWindowGeometry) (window,
+ &wd->quad[i].matrix, 1,
+ &box,
+ region);
+ }
+ }
+
+ if (window->vCount)
+ (*window->screen->drawWindowTexture) (window,
+ &wd->decor->texture->texture,
+ attrib, mask);
+ }
+ }
+ }
+ }
+
return status;
}

View File

@ -0,0 +1,21 @@
From abf9d0b9c431f56e3fe88cb5a22b2f5e7b41e92e Mon Sep 17 00:00:00 2001
From: Nicolas Bruguier <gandalfn@mithrandir.(none)>
Date: Tue, 12 Dec 2006 22:59:22 +0100
Subject: [PATCH] Fix no border window shadow
---
libdecoration/decoration.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
--- a/libdecoration/decoration.c
+++ b/libdecoration/decoration.c
@@ -1243,7 +1243,9 @@ decor_shadow_create (Display *xdisp
}
/* create pixmap for temporary decorations */
- d_pixmap = XCreatePixmap (xdisplay, xroot, d_width, d_height, 32);
+ d_pixmap = XCreatePixmap (xdisplay, xroot,
+ (d_width % 32) ? d_width : d_width + 1,
+ d_height, 32);
if (!d_pixmap)
{
XFreePixmap (xdisplay, pixmap);

View File

@ -0,0 +1,17 @@
Author: Travis Watkins <amaranth@ubuntu.com>
Description: keep window on top of fullscreen windows during move
Origin: vendor, ubuntu (1:0.7.2-0ubuntu2)
--- a/plugins/move.c
+++ b/plugins/move.c
@@ -124,6 +124,11 @@ moveInitiate (CompDisplay *d,
xid = getIntOptionNamed (option, nOption, "window", 0);
w = findWindowAtDisplay (d, xid);
+
+ /* make window stay above fullscreen windows while moving */
+ if (w)
+ updateWindowAttributes (w, CompStackingUpdateModeAboveFullscreen);
+
if (w && (w->actions & CompWindowActionMoveMask))
{
XRectangle workArea;

View File

@ -1,42 +0,0 @@
diff -upr compiz-0.8.8-orig/configure.ac compiz-0.8.8/configure.ac
--- compiz-0.8.8-orig/configure.ac 2012-09-16 10:04:18.000000000 +0200
+++ compiz-0.8.8/configure.ac 2012-09-16 10:10:26.095872922 +0200
@@ -323,12 +323,12 @@ if test "x$use_gtk" = "xyes"; then
if test "x$use_marco" = "xyes"; then
PKG_CHECK_MODULES(MARCO, libmarco-private,
[use_marco=yes], [use_marco=no])
- PKG_CHECK_EXISTS(libmarco-private >= 2.15.21,
+ PKG_CHECK_EXISTS(libmarco-private >= 1.2.0,
[have_marco_2_15_21=yes], [have_marco_2_15_21=no])
- PKG_CHECK_EXISTS(libmarco-private >= 2.17.0,
+ PKG_CHECK_EXISTS(libmarco-private >= 1.2.0,
[have_marco_2_17_0=yes], [have_marco_2_17_0=no])
PKG_CHECK_EXISTS(libmarco-private >= 1.2.0,
- [have_marco_2_23_2=yes], [have_marco_1_2_0=no])
+ [have_marco_2_23_2=yes], [have_marco_2_23_2=no])
fi
if test "x$use_mate" = "xyes"; then
@@ -382,8 +382,8 @@ if test "$use_marco" = yes; then
AC_DEFINE(HAVE_MARCO_2_17_0, 1,
[Define to 1 if marco version >= 2.17.0])
fi
- if test "$have_marco_1_2_0" = yes; then
- AC_DEFINE(HAVE_MARCO_1_2_0, 1,
+ if test "$have_marco_2_23_2" = yes; then
+ AC_DEFINE(HAVE_MARCO_2_23_2, 1,
[Define to 1 if marco version >= 1.2.0])
fi
fi
diff -upr compiz-0.8.8-orig/gtk/mate/compiz-window-manager.c compiz-0.8.8/gtk/mate/compiz-window-manager.c
--- compiz-0.8.8-orig/gtk/mate/compiz-window-manager.c 2012-09-16 10:04:18.000000000 +0200
+++ compiz-0.8.8/gtk/mate/compiz-window-manager.c 2012-09-16 10:12:15.613373978 +0200
@@ -370,7 +370,7 @@ add_themes_from_dir (GList *current_list
{
theme_file_path =
g_build_filename (path, entry->d_name,
- "marco-1/marco-theme-1.xml", NULL);
+ "metacity-1/metacity-theme-1.xml", NULL);
if (g_file_test (theme_file_path, G_FILE_TEST_EXISTS))
{

55
compiz_optional-fbo.patch Normal file
View File

@ -0,0 +1,55 @@
Author: David Nusinow <dnusinow@debian.org>
Description: Add a command-line option for disabling the use of FBOs
This is to work around buggy drivers. Add the --no-fbo option to
command-line to compiz.
Origin: vendor, debian (0.3.6-1)
--- a/include/compiz-core.h
+++ b/include/compiz-core.h
@@ -219,6 +219,7 @@ extern Bool useCow;
extern Bool noDetection;
extern Bool useDesktopHints;
extern Bool onlyCurrentScreen;
+extern Bool noFBO;
extern char **initialPlugins;
extern int nInitialPlugins;
--- a/src/main.c
+++ b/src/main.c
@@ -66,6 +66,7 @@ Bool strictBinding = TRUE;
Bool noDetection = FALSE;
Bool useDesktopHints = FALSE;
Bool onlyCurrentScreen = FALSE;
+Bool noFBO = FALSE;
static Bool debugOutput = FALSE;
#ifdef USE_COW
@@ -87,6 +88,7 @@ usage (void)
"[--keep-desktop-hints] "
"[--loose-binding] "
"[--replace]\n "
+ "[--no-fbo] "
"[--sm-disable] "
"[--sm-client-id ID] "
"[--only-current-screen]\n "
@@ -346,6 +348,10 @@ main (int argc, char **argv)
{
onlyCurrentScreen = TRUE;
}
+ else if (!strcmp (argv[i], "--no-fbo"))
+ {
+ noFBO = TRUE;
+ }
#ifdef USE_COW
else if (!strcmp (argv[i], "--use-root-window"))
--- a/src/screen.c
+++ b/src/screen.c
@@ -2183,7 +2183,7 @@ addScreen (CompDisplay *display,
s->generateMipmap = NULL;
s->fbo = 0;
- if (strstr (glExtensions, "GL_EXT_framebuffer_object"))
+ if (!noFBO && strstr (glExtensions, "GL_EXT_framebuffer_object"))
{
s->genFramebuffers = (GLGenFramebuffersProc)
getProcAddress (s, "glGenFramebuffersEXT");

16
compiz_stacking.patch Normal file
View File

@ -0,0 +1,16 @@
Author: Michael Vogt <michael.vogt@ubuntu.com>
Description: map windows with focus_on_map=FALSE in the background
map windows with focus_on_map=FALSE in the background (just like metacity)
Origin: vendor, ubuntu (1:0.8.2-0ubuntu6)
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/333284
--- a/src/event.c
+++ b/src/event.c
@@ -2075,7 +2075,7 @@ handleEvent (CompDisplay *d,
focus = allowWindowFocus (w, NO_FOCUS_MASK,
w->screen->x, w->screen->y, 0);
- if (focus == CompFocusDenied)
+ if ((focus == CompFocusDenied || focus == CompFocusPrevent) && (w->type & ~NO_FOCUS_MASK))
stackingMode = CompStackingUpdateModeInitialMapDeniedFocus;
else
stackingMode = CompStackingUpdateModeInitialMap;

View File

@ -1,35 +0,0 @@
diff -upr compiz-0.8.8-orig/gtk/window-decorator/gtk-window-decorator.c compiz-0.8.8/gtk/window-decorator/gtk-window-decorator.c
--- compiz-0.8.8-orig/gtk/window-decorator/gtk-window-decorator.c 2012-05-16 12:40:35.000000000 +0200
+++ compiz-0.8.8/gtk/window-decorator/gtk-window-decorator.c 2012-05-16 13:55:44.000000000 +0200
@@ -1318,7 +1318,7 @@ draw_window_decoration (decor_t *d)
}
}
-#ifdef USE_MARCO
+
static void
decor_update_meta_window_property (decor_t *d,
MetaTheme *theme,
@@ -1405,17 +1405,16 @@ meta_get_corner_radius (const MetaFrameG
int *bottom_right_radius)
{
-#ifdef HAVE_MARCO_2_17_0
+#ifdef HAVE_MARCO_1_2_0
*top_left_radius = fgeom->top_left_corner_rounded_radius;
*top_right_radius = fgeom->top_right_corner_rounded_radius;
*bottom_left_radius = fgeom->bottom_left_corner_rounded_radius;
*bottom_right_radius = fgeom->bottom_right_corner_rounded_radius;
#else
- *top_left_radius = fgeom->top_left_corner_rounded ? 5 : 0;
- *top_right_radius = fgeom->top_right_corner_rounded ? 5 : 0;
- *bottom_left_radius = fgeom->bottom_left_corner_rounded ? 5 : 0;
- *bottom_right_radius = fgeom->bottom_right_corner_rounded ? 5 : 0;
-#endif
+ *top_left_radius = fgeom->top_left_corner_rounded_radius;
+ *top_right_radius = fgeom->top_right_corner_rounded_radius;
+ *bottom_left_radius = fgeom->bottom_left_corner_rounded_radius;
+ *bottom_right_radius = fgeom->bottom_right_corner_rounded_radius;
}