add compiz and apropriate ebuilds with package.unmask file

This commit is contained in:
2012-01-25 22:04:41 +04:00
parent 2c8d5e4c01
commit 829d8ef4df
50 changed files with 2500 additions and 0 deletions

View File

@ -0,0 +1 @@
EBUILD compiz-fusion-0.8.6-r9999.ebuild 949 RMD160 4add77884ee9a1748380fea43a006e65673dce92 SHA1 010a6adc9efc137416183da723bb940787605cd9 SHA256 5c6efe9ec0ac7a25371bd2b7bc244a572749f5938bbfa2de37c718b5e5d7179b

View File

@ -0,0 +1,29 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-wm/compiz-fusion/compiz-fusion-0.8.6.ebuild,v 1.1 2010/04/03 06:13:26 jmbsvicetto Exp $
DESCRIPTION="Compiz Fusion (meta)"
HOMEPAGE="http://www.compiz.org/"
SRC_URI=""
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
IUSE="emerald gnome kde unsupported"
MY_PV=0.8.4
RDEPEND="
>=x11-wm/compiz-${PV}
>=x11-plugins/compiz-plugins-main-${PV}
>=x11-plugins/compiz-plugins-extra-${PV}
unsupported? ( >=x11-plugins/compiz-plugins-unsupported-${MY_PV} )
>=x11-apps/ccsm-${MY_PV}
emerald? ( >=x11-wm/emerald-${MY_PV} )
gnome? ( >=x11-libs/compizconfig-backend-gconf-${MY_PV} )
kde? ( >=x11-libs/compizconfig-backend-kconfig4-${MY_PV} )"
pkg_postinst() {
ewarn "If you want to try out simple-ccsm, you'll need to emerge it"
ewarn "If you want to use emerald, set the emerald use flag"
}

17
x11-wm/compiz/Manifest Normal file
View File

@ -0,0 +1,17 @@
AUX 0.3.6/compiz-start 1122 RMD160 6e2e0db666a9fd7648e894d9f778dcb1c59bb6c0 SHA1 f710dcfbd6274ff7bed3f264d284a4dcecb27254 SHA256 04a944e8e39ef1a6226b350027a5865bb56b45230aa59eae9574cd6c75529fa4
AUX compiz-0.6.2-CVE-2007-3920.patch 1019 RMD160 024316c8213df5c68ceb39c404da4227cdfbf21f SHA1 adf6c10f0fa3de040704cd208d09d93b402667b8 SHA256 63b7dd520b4659f8124e3122ffeb0577c07d90539211f8383037eef744c0e5ee
AUX compiz-0.7.8-framesvg.patch 3119 RMD160 315aeb6b97db26af1bc48a2fb66228b402a07823 SHA1 5706c35119691c7b466e4c3b6dc39dd5a463cddf SHA256 9d323dd2ff10848d3c2cac93b00b67cca878f77942443a96f16b82c649535a21
AUX compiz-0.8.2-gtk-gnome-missing-gconf-flags.patch 1118 RMD160 cc6920723b29f89da29c7ca5df89770cf70d94a8 SHA1 5b0e790e0a0cc304b2510de53dee7648e0ca67c1 SHA256 071a9a8032a21cd560cb68eb172b2557bb997cffc750ba8212c2fd88443d9519
AUX compiz-0.8.4-crash-on-opening-windows.patch 2018 RMD160 b663a4ee0c6e01f140f6883910f275fb9b8c9255 SHA1 3ce56bd0fc7dba1eb936b9b30f76a5c426c06f8b SHA256 49e7c74ea45a247b203167b9761b977e6faa37e63ccde552823cb6f2df87379c
AUX compiz-0.8.4-gtk+-2.20-build.patch 428 RMD160 b85b46cf463b1f3004378623ef353eb4d8e8885e SHA1 efdf24a2b035b1da7b959fb4e2c68bb504cf4666 SHA256 e53dab667b7cae6815f53bbabd8e45ecdc84bf2e0378ed1036825f0658d27c1b
AUX compiz-0.8.4-kde44.patch 5885 RMD160 6474717141c71f53770ffa4896444d0b653e7b41 SHA1 8aa8fa2430e5ce4696dc1fabac0eb714b5571d3a SHA256 e40e670ce80d6fd6bff933bd235e4f6ad0382d1b29b8e56a2648980824761366
AUX compiz-0.8.4-libpng14.patch 1079 RMD160 4aa191610f53742919332542ff6fb18923648ceb SHA1 c671db1d210a366b635da7288aeb35fae56e0eca SHA256 ff335ba40869d5ac11f3f59b0617092581d0032cb2124d0336cac5d962b95dc2
AUX compiz-0.8.4-place-plugin.patch 3674 RMD160 b99a356b19a2e1df4346ce5f8b49522d2c7df1a5 SHA1 3feed76f30616d61d2baab103191fe0d93289757 SHA256 1e6a8b945b20909cb492755fd7732252e506c2ba2136b5253cde5dc59d5375f0
AUX compiz-0.8.4-window-region-calculation.patch 1197 RMD160 6c58f5dc4d7c22c257e8489f7fee69c26d688da2 SHA1 b288a10f2fb783584188414102e314997ccf3cb5 SHA256 b9c64eba865445f4209f6073d1a96ddd110bb012ba9d2701501901d6c791ecfc
AUX compiz-0.8.6-gdk-display-deprecated.patch 3392 RMD160 4bb482661724774ec96a6a64351353182765603c SHA1 e37a393786d9051eb5c9a9e079bd01a723f86de5 SHA256 a8038d6a80abe7f44f433f6ab0dd0cf39945850564b5da33244b88a099b4efb8
AUX compiz-0.8.6-r2-fontcorruption.patch 676 RMD160 0e6da6560eed5ac90f9cbe2fb824a8f7124d5291 SHA1 6fc671dcf5dced7cb7ff9157c8d005d11ef8b913 SHA256 2c4c42a251c1583a8e7fe468c1868aa42b1318db5ee95189e23ae9be8061cd43
AUX compiz-manager 9835 RMD160 0c579ebd41c22b4f33edb2d2d5b1e41ac30720ac SHA1 ff39aa8abf43e42895aec6696c3659773f927fd2 SHA256 e387ff9f01b84c572f31643316ed2ce2eacd11a92488e745ebcfd659945c6f1d
AUX compiz-no-gconf.patch 630 RMD160 32b6990dff7baf7f3cb04f728ab04d1523f29c46 SHA1 ad1c0a38dcb83c4768031f0b87db4748b2c24b92 SHA256 87467fbe5d4e0d0bb8952f2d5b74d21046d92d49772543aeda137266e055aa67
AUX compiz.desktop 273 RMD160 704f0e631cd41d810af323b5fabbbf7eac5a943b SHA1 e244587cc28613ab92568846754e91bb193f0e85 SHA256 28a5459148c7733cdd82e3ecc1f584231d2619c7305b8bf71060db331bf081fb
DIST compiz-0.8.6.tar.bz2 1162334 RMD160 7a5476a21143e29ac2e35465c49e8a52b629a864 SHA1 8d5998cb18418283cbd367f126a65dde4062ad00 SHA256 c4df69b59b5660a37462de9ff0212af024ccf9c8038651bfda3557c955ab4f8c
EBUILD compiz-0.8.6-r9999.ebuild 4035 RMD160 794d59ba44892aca9d335e4c2d70184a8925b90a SHA1 1ab759f6767873cdee8bacddd483e59b9e8d1c8f SHA256 e5d7add1f1bff6a09baf3e68376dd9f59b5762b83241d439823cd0604db56dce

View File

@ -0,0 +1,168 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-wm/compiz/compiz-0.8.6-r3.ebuild,v 1.3 2011/11/11 22:54:51 ssuominen Exp $
EAPI="2"
inherit autotools eutils gnome2-utils
DESCRIPTION="OpenGL window and compositing manager"
HOMEPAGE="http://www.compiz.org/"
SRC_URI="http://releases.compiz.org/${PV}/${P}.tar.bz2"
LICENSE="GPL-2 LGPL-2.1 MIT"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
# dbus has been disabled because of bug 365121
IUSE="+cairo fuse gnome gconf gtk kde +svg" # dbus
COMMONDEPEND="
dev-libs/glib:2
dev-libs/libxml2:2
dev-libs/libxslt
media-libs/libpng
>=media-libs/mesa-6.5.1-r1
>=x11-base/xorg-server-1.1.1-r1
>=x11-libs/libX11-1.4
x11-libs/libxcb
x11-libs/libXcomposite
x11-libs/libXdamage
x11-libs/libXinerama
x11-libs/libXrandr
x11-libs/libICE
x11-libs/libSM
>=x11-libs/libXrender-0.8.4
>=x11-libs/startup-notification-0.7
cairo? (
x11-libs/cairo[X]
)
fuse? ( sys-fs/fuse )
gnome? (
>=gnome-base/gnome-control-center-2.16.1:2
gnome-base/gnome-desktop:2
gconf? ( gnome-base/gconf:2 )
)
gtk? (
>=x11-libs/gtk+-2.8.0:2
>=x11-libs/libwnck-2.18.3:1
x11-libs/pango
)
kde? (
|| (
>=kde-base/kwin-4.2.0
kde-base/kwin:live
)
)
svg? (
>=gnome-base/librsvg-2.14.0:2
>=x11-libs/cairo-1.0
)
"
# dbus? ( >=sys-apps/dbus-1.0 )
DEPEND="${COMMONDEPEND}
dev-util/pkgconfig
x11-proto/damageproto
x11-proto/xineramaproto
"
RDEPEND="${COMMONDEPEND}
x11-apps/mesa-progs
x11-apps/xvinfo
"
src_prepare() {
echo "gtk/gnome/compiz-wm.desktop.in" >> "${S}/po/POTFILES.skip"
echo "metadata/core.xml.in" >> "${S}/po/POTFILES.skip"
# fix cont corruption, bug #343861
epatch "${FILESDIR}"/${P}-r2-fontcorruption.patch
epatch "${FILESDIR}"/${P}-gdk-display-deprecated.patch
if ! use gnome || ! use gconf; then
epatch "${FILESDIR}"/${PN}-no-gconf.patch
fi
eautoreconf
}
src_configure() {
local myconf=
# We make gconf optional by itself, but only if gnome is also
# enabled, otherwise we simply disable it.
if use gnome; then
myconf="${myconf} $(use_enable gconf)"
else
myconf="${myconf} --disable-gconf"
fi
econf \
--disable-dependency-tracking \
--enable-fast-install \
--disable-static \
--disable-gnome-keybindings \
--with-default-plugins \
$(use_enable svg librsvg) \
$(use_enable cairo annotate) \
--disable-dbus \
--disable-dbus-glib \
$(use_enable fuse) \
$(use_enable gnome) \
$(use_enable gnome metacity) \
$(use_enable gtk) \
$(use_enable kde kde4) \
--disable-kde \
${myconf}
# $(use_enable dbus)
# $(use_enable dbus dbus-glib)
}
src_install() {
emake DESTDIR="${D}" install || die "emake install failed"
find "${D}" -name '*.la' -delete || die
# Install compiz-manager
dobin "${FILESDIR}/compiz-manager" || die "dobin failed"
# Add the full-path to lspci
sed -i "s#lspci#/usr/sbin/lspci#" "${D}/usr/bin/compiz-manager" || die "sed 1 failed"
# Fix the hardcoded lib paths
sed -i "s#/lib/#/$(get_libdir)/#g" "${D}/usr/bin/compiz-manager" || die "sed 2 failed"
# Create gentoo's config file
dodir /etc/xdg/compiz || die "dodir failed"
cat <<- EOF > "${D}/etc/xdg/compiz/compiz-manager"
COMPIZ_BIN_PATH="/usr/bin/"
PLUGIN_PATH="/usr/$(get_libdir)/compiz/"
LIBGL_NVIDIA="/usr/$(get_libdir)/opengl/xorg-x11/lib/libGL.so.1.2"
LIBGL_FGLRX="/usr/$(get_libdir)/opengl/xorg-x11/lib/libGL.so.1.2"
KWIN="$(type -p kwin)"
METACITY="$(type -p metacity)"
SKIP_CHECKS="yes"
EOF
dodoc AUTHORS ChangeLog NEWS README TODO || die "dodoc failed"
insinto "/usr/share/applications"
doins "${FILESDIR}/compiz.desktop" || die "Failed to install compiz.desktop"
}
pkg_preinst() {
use gnome && use gconf && gnome2_gconf_savelist
}
pkg_postinst() {
use gnome && use gconf && gnome2_gconf_install
ewarn "If you update to x11-wm/metacity-2.24 after you install ${P},"
ewarn "gtk-window-decorator will crash until you reinstall ${PN} again."
}
pkg_prerm() {
use gnome && gnome2_gconf_uninstall
}

View File

@ -0,0 +1,41 @@
# compiz-start script
#
# hacky autodetection of neccessary options for XGL/AIGLX/NVIDIA
#
# Hanno Boeck, http://www.hboeck.de/
#
# Licensed under the same conditions as compiz itself (MIT or GPL)
if [ ! -x /usr/bin/glxinfo ]; then
echo "glxinfo not found, please install mesa-progs."
exit -1
fi
GLX_WITH_DIRECT=`glxinfo|grep -c GLX_EXT_texture_from_pixmap`
GLX_WITH_INDIRECT=`LIBGL_ALWAYS_INDIRECT=1 glxinfo|grep -c GLX_EXT_texture_from_pixmap`
GLX_RENDER=`glxinfo|grep -c "OpenGL renderer string: Mesa GLX Indirect"`
COMPIZ_OPTIONS="--replace"
if [ $GLX_WITH_DIRECT -eq 3 ]; then
if [ $GLX_RENDER -eq 0 ]; then
echo NVIDA detected
export __GL_YIELD="NOTHING"
else
echo XGL detected
fi
elif [ $GLX_WITH_INDIRECT -eq 3 ]; then
echo AIGLX detected
export LIBGL_ALWAYS_INDIRECT=1
fi
if [ ! -z $KDE_FULL_SESSION ] && [ -x /usr/bin/kde-window-decorator ]; then
echo Using KDE decorator
kde-window-decorator --replace &
else
echo Using GTK decorator
gtk-window-decorator --replace &
fi
compiz $COMPIZ_OPTIONS gconf move resize minimize place decoration wobbly fade cube rotate scale switcher zoom dbus

View File

@ -0,0 +1,29 @@
Index: compiz-0.6.2/src/screen.c
===================================================================
--- compiz-0.6.2.orig/src/screen.c
+++ compiz-0.6.2/src/screen.c
@@ -2244,7 +2244,8 @@ findTopLevelWindowAtScreen (CompScreen *
for (w = s->windows; w; w = w->next)
if (w->frame == id)
return w;
- }
+ } else if (w->resName && strstr(w->resName,"screensaver"))
+ return w;
return NULL;
}
Index: compiz-0.6.2/src/paint.c
===================================================================
--- compiz-0.6.2.orig/src/paint.c
+++ compiz-0.6.2/src/paint.c
@@ -211,7 +211,9 @@ paintOutputRegion (CompScreen *sc
if (count == 0 &&
!REGION_NOT_EMPTY (tmpRegion) &&
screen->opt[COMP_SCREEN_OPTION_UNREDIRECT_FS].value.b &&
- XEqualRegion (w->region, &screen->region))
+ XEqualRegion (w->region, &screen->region) &&
+ !(w->resName && strcmp(w->resName, "gnome-screensaver") == 0)
+ )
{
unredirectWindow (w);
fullscreenWindow = w;

View File

@ -0,0 +1,77 @@
diff -p -up compiz-0.7.8/configure.ac.framesvg compiz-0.7.8/configure.ac
--- compiz-0.7.8/configure.ac.framesvg 2008-11-20 15:58:43.000000000 +0100
+++ compiz-0.7.8/configure.ac 2008-11-20 16:34:25.000000000 +0100
@@ -487,7 +487,7 @@ if test "x$use_kde4" = "xyes"; then
kde4libs=`kde4-config --install lib --expandvars 2>/dev/null`
kde4incs=`kde4-config --install include --expandvars 2>/dev/null`
- kde4_test_includes="kdecoration.h kcommondecoration.h kdecorationbridge.h plasma/panelsvg.h"
+ kde4_test_includes="kdecoration.h kcommondecoration.h kdecorationbridge.h plasma/framesvg.h"
dnl Check for KWin headers
AC_MSG_CHECKING([for KWin headers])
diff -p -up compiz-0.7.8/kde/window-decorator-kde4/switcher.cpp.framesvg compiz-0.7.8/kde/window-decorator-kde4/switcher.cpp
--- compiz-0.7.8/kde/window-decorator-kde4/switcher.cpp.framesvg 2008-08-08 13:20:31.000000000 +0200
+++ compiz-0.7.8/kde/window-decorator-kde4/switcher.cpp 2008-11-20 16:38:10.000000000 +0100
@@ -30,7 +30,7 @@
#include <fixx11h.h>
-#include <KDE/Plasma/PanelSvg>
+#include <KDE/Plasma/FrameSvg>
#include <KDE/Plasma/Theme>
#include <kwindowsystem.h>
@@ -46,9 +46,9 @@ mId (id)
QColor color;
color = Plasma::Theme::defaultTheme ()->color (Plasma::Theme::TextColor);
- mBackground = new Plasma::PanelSvg();
+ mBackground = new Plasma::FrameSvg();
mBackground->setImagePath ("dialogs/background");
- mBackground->setEnabledBorders(Plasma::PanelSvg::AllBorders);
+ mBackground->setEnabledBorders(Plasma::FrameSvg::AllBorders);
mBorder.left = mBackground->marginSize(Plasma::LeftMargin);
mBorder.right = mBackground->marginSize(Plasma::RightMargin);
@@ -131,8 +131,8 @@ KWD::Switcher::redrawPixmap ()
p.setCompositionMode (QPainter::CompositionMode_Source);
p.setRenderHint (QPainter::SmoothPixmapTransform);
- mBackground->resizePanel (QSizeF (contentWidth, contentHeight));
- mBackground->paintPanel (&p, QRect (0, 0, contentWidth,
+ mBackground->resizeFrame (QSizeF (contentWidth, contentHeight));
+ mBackground->paintFrame (&p, QRect (0, 0, contentWidth,
contentHeight));
mBackgroundPixmap = mPixmap.copy (mBorder.left, mBorder.top,
@@ -168,7 +168,7 @@ KWD::Switcher::update ()
p.setCompositionMode (QPainter::CompositionMode_Source);
- mBackground->paintPanel (&p, QRect (mBorder.left, mBorder.top +
+ mBackground->paintFrame (&p, QRect (mBorder.left, mBorder.top +
mGeometry.height () + 5, mGeometry.width (),
fm.height ()));
diff -p -up compiz-0.7.8/kde/window-decorator-kde4/switcher.h.framesvg compiz-0.7.8/kde/window-decorator-kde4/switcher.h
--- compiz-0.7.8/kde/window-decorator-kde4/switcher.h.framesvg 2008-08-08 13:20:31.000000000 +0200
+++ compiz-0.7.8/kde/window-decorator-kde4/switcher.h 2008-11-20 16:36:22.000000000 +0100
@@ -30,7 +30,7 @@
namespace Plasma
{
-class PanelSvg;
+class FrameSvg;
}
class QSpacerItem;
@@ -70,7 +70,7 @@ class Switcher
QRect mGeometry;
- Plasma::PanelSvg *mBackground;
+ Plasma::FrameSvg *mBackground;
QPixmap mPixmap;
QPixmap mBackgroundPixmap;

View File

@ -0,0 +1,33 @@
Author: Romain Perier <mrpouet@gentoo.org>
Subject: Missing gconf flags for gnome plugin, fix bug #282807
Date: 2009-08-29 12:25
---
gtk/gnome/Makefile.am | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/gtk/gnome/Makefile.am b/gtk/gnome/Makefile.am
index 208318a..d0a7c54 100644
--- a/gtk/gnome/Makefile.am
+++ b/gtk/gnome/Makefile.am
@@ -2,7 +2,7 @@ moduledir = $(DESTDIR)$(windowsettingslibdir)/window-manager-settings
if USE_GNOME
libcompiz_la_LDFLAGS = -export-dynamic -avoid-version -rpath $(moduledir)
-libcompiz_la_LIBADD = @GNOME_WINDOW_SETTINGS_LIBS@
+libcompiz_la_LIBADD = @GNOME_WINDOW_SETTINGS_LIBS@ @GCONF_LIBS@
libcompiz_la_SOURCES = \
compiz-window-manager.c \
compiz-window-manager.h
@@ -76,8 +76,9 @@ if USE_GNOME_KEYBINDINGS
endif
endif
-INCLUDES = @GNOME_WINDOW_SETTINGS_CFLAGS@ \
- -DMETACITY_THEME_DIR=\""$(windowsettingsdatadir)/themes"\" \
+INCLUDES = @GNOME_WINDOW_SETTINGS_CFLAGS@ \
+ @GCONF_CFLAGS@ \
+ -DMETACITY_THEME_DIR=\""$(windowsettingsdatadir)/themes"\" \
-DLOCALEDIR="\"@datadir@/locale"\"
noinst_LTLIBRARIES = \

View File

@ -0,0 +1,82 @@
From 43c269a377e7b446fb1bb70732835b7395ce9524 Mon Sep 17 00:00:00 2001
From: Danny Baumann <dannybaumann@web.de>
Date: Mon, 25 Jan 2010 06:28:34 +0000
Subject: Fix crash on opening windows.
We must defer match evaluation until window initialization has finished
for all plugins as match evaluation means wrapped function calls.
---
diff --git a/plugins/obs.c b/plugins/obs.c
index a8d67f1..0f5b9d0 100644
--- a/plugins/obs.c
+++ b/plugins/obs.c
@@ -88,6 +88,8 @@ typedef struct _ObsWindow
{
int customFactor[MODIFIER_COUNT];
int matchFactor[MODIFIER_COUNT];
+
+ CompTimeoutHandle updateHandle;
} ObsWindow;
#define GET_OBS_DISPLAY(d) \
@@ -323,6 +325,22 @@ obsMatchPropertyChanged (CompDisplay *d,
WRAP (od, d, matchPropertyChanged, obsMatchPropertyChanged);
}
+static Bool
+obsUpdateWindow (void *closure)
+{
+ CompWindow *w = (CompWindow *) closure;
+ int i;
+
+ OBS_WINDOW (w);
+
+ for (i = 0; i < MODIFIER_COUNT; i++)
+ updatePaintModifier (w, i);
+
+ ow->updateHandle = 0;
+
+ return FALSE;
+}
+
static CompOption *
obsGetDisplayOptions (CompPlugin *p,
CompDisplay *display,
@@ -628,8 +646,8 @@ static CompBool
obsInitWindow (CompPlugin *p,
CompWindow *w)
{
- ObsWindow *ow;
- int i;
+ ObsWindow *ow;
+ int i;
OBS_SCREEN (w->screen);
@@ -643,10 +661,11 @@ obsInitWindow (CompPlugin *p,
ow->matchFactor[i] = 100;
}
- w->base.privates[os->windowPrivateIndex].ptr = ow;
+ /* defer initializing the factors from window matches as match evalution
+ means wrapped function calls */
+ ow->updateHandle = compAddTimeout (0, 0, obsUpdateWindow, w);
- for (i = 0; i < MODIFIER_COUNT; i++)
- updatePaintModifier (w, i);
+ w->base.privates[os->windowPrivateIndex].ptr = ow;
return TRUE;
}
@@ -657,6 +676,9 @@ obsFiniWindow (CompPlugin *p,
{
OBS_WINDOW (w);
+ if (ow->updateHandle)
+ compRemoveTimeout (ow->updateHandle);
+
free (ow);
}
--
cgit v0.8.2

View File

@ -0,0 +1,11 @@
--- compiz-0.8.4/gtk/window-decorator/gtk-window-decorator.c.old 2010-03-28 13:01:58.639940630 +0200
+++ compiz-0.8.4/gtk/window-decorator/gtk-window-decorator.c 2010-03-28 13:02:30.580354171 +0200
@@ -4233,7 +4233,7 @@
static void
hide_tooltip (void)
{
- if (GTK_WIDGET_VISIBLE (tip_window))
+ if (gtk_widget_get_visible (tip_window))
g_get_current_time (&tooltip_last_popdown);
gtk_widget_hide (tip_window);

View File

@ -0,0 +1,225 @@
From 04c6a44893a00088c63acd3ba327022f8aa551cc Mon Sep 17 00:00:00 2001
From: Dennis Kasprzyk <onestone@compiz-fusion.org>
Date: Fri, 12 Feb 2010 20:07:41 +0000
Subject: Kde 4.4 support.
---
diff --git a/kde/window-decorator-kde4/window.cpp b/kde/window-decorator-kde4/window.cpp
index a7cd2d4..99c502d 100644
--- a/kde/window-decorator-kde4/window.cpp
+++ b/kde/window-decorator-kde4/window.cpp
@@ -486,31 +486,39 @@ KWD::Window::showWindowMenu (const QRect &pos)
showWindowMenu (pos.bottomLeft ());
}
-void
-KWD::Window::processMousePressEvent (QMouseEvent *qme)
+KWD::Options::MouseCommand
+KWD::Window::buttonToCommand (Qt::MouseButtons button)
{
Options::MouseCommand com = Options::MouseNothing;
- bool active = isActive ();
+ bool active = isActive ();
if (!mSupportTakeFocus)
- active = TRUE;
+ active = true;
- switch (qme->button ()) {
+ switch (button) {
case Qt::LeftButton:
com = active ? Decorator::options ()->commandActiveTitlebar1 () :
- Decorator::options()->commandInactiveTitlebar1 ();
+ Decorator::options()->commandInactiveTitlebar1 ();
break;
case Qt::MidButton:
com = active ? Decorator::options ()->commandActiveTitlebar2 () :
- Decorator::options()->commandInactiveTitlebar2 ();
+ Decorator::options()->commandInactiveTitlebar2 ();
break;
case Qt::RightButton:
com = active ? Decorator::options ()->commandActiveTitlebar3 () :
- Decorator::options()->commandInactiveTitlebar3 ();
+ Decorator::options()->commandInactiveTitlebar3 ();
default:
break;
}
+ return com;
+}
+
+void
+KWD::Window::processMousePressEvent (QMouseEvent *qme)
+{
+ Options::MouseCommand com = buttonToCommand (qme->button ());
+
if (qme->button () == Qt::LeftButton)
{
// actions where it's not possible to get the matching release event
@@ -752,6 +760,96 @@ KWD::Window::compositingActive (void) const
return true;
}
+#if KDE_IS_VERSION(4,3,90)
+
+QRect
+KWD::Window::transparentRect () const
+{
+ return QRect ();
+}
+
+bool
+KWD::Window::isClientGroupActive ()
+{
+ return false;
+}
+
+QList<ClientGroupItem>
+KWD::Window::clientGroupItems () const
+{
+ QList<ClientGroupItem> items;
+
+ QIcon icon (mIcon);
+ icon.addPixmap (mMiniIcon);
+
+ items.append (ClientGroupItem (mName, icon));
+
+ return items;
+}
+
+long
+KWD::Window::itemId (int index)
+{
+ return (long) mClientId;
+}
+
+int
+KWD::Window::visibleClientGroupItem ()
+{
+ return 0;
+}
+
+void
+KWD::Window::setVisibleClientGroupItem (int index)
+{
+}
+
+void
+KWD::Window::moveItemInClientGroup (int index, int before)
+{
+}
+
+void
+KWD::Window::moveItemToClientGroup (long itemId, int before)
+{
+}
+
+void
+KWD::Window::removeFromClientGroup (int index, const QRect& newGeom)
+{
+}
+
+void
+KWD::Window::closeClientGroupItem (int index)
+{
+ closeWindow ();
+}
+
+void
+KWD::Window::closeAllInClientGroup ()
+{
+ closeWindow ();
+}
+
+void
+KWD::Window::displayClientMenu (int index, const QPoint& pos)
+{
+ showWindowMenu (pos);
+}
+
+KDecorationDefines::WindowOperation
+KWD::Window::buttonToWindowOperation(Qt::MouseButtons button)
+{
+ Options::MouseCommand com = buttonToCommand (button);
+
+ if (com == Options::MouseOperationsMenu)
+ return KDecorationDefines::OperationsOp;
+
+ return KDecorationDefines::NoOp;
+}
+
+#endif
+
void
KWD::Window::createDecoration (void)
{
@@ -1466,7 +1564,7 @@ KWD::Window::moveWindow (QMouseEvent *qme)
NET::Direction direction;
direction = positionToDirection (mDecor->mousePosition (qme->pos ()));
-
+
QPoint p (mGeometry.x () - mExtents.left, mGeometry.y () - mExtents.top);
p += qme->pos ();
@@ -1476,7 +1574,7 @@ KWD::Window::moveWindow (QMouseEvent *qme)
Decorator::rootInfo ()->restackRequest (mClientId, NET::FromApplication,
None, Above,
QX11Info::appTime());
-
+
Decorator::rootInfo ()->moveResizeRequest (mClientId,
p.x (),
p.y (),
diff --git a/kde/window-decorator-kde4/window.h b/kde/window-decorator-kde4/window.h
index 40a5076..c2b274b 100644
--- a/kde/window-decorator-kde4/window.h
+++ b/kde/window-decorator-kde4/window.h
@@ -26,6 +26,7 @@
#include <kdecorationbridge.h>
#include <KDE/KActionCollection>
+#include <kdeversion.h>
#include <qpixmap.h>
#include <qwidget.h>
@@ -111,7 +112,24 @@ class Window: public QObject, public KDecorationBridgeUnstable {
/* unstable API */
virtual bool compositingActive () const;
-
+#if KDE_IS_VERSION(4,3,90)
+ virtual QRect transparentRect () const;
+
+ virtual bool isClientGroupActive ();
+ virtual QList<ClientGroupItem> clientGroupItems () const;
+ virtual long itemId (int index);
+ virtual int visibleClientGroupItem ();
+ virtual void setVisibleClientGroupItem (int index);
+ virtual void moveItemInClientGroup (int index, int before);
+ virtual void moveItemToClientGroup (long itemId, int before);
+ virtual void removeFromClientGroup (int index, const QRect& newGeom);
+ virtual void closeClientGroupItem (int index);
+ virtual void closeAllInClientGroup ();
+ virtual void displayClientMenu (int index, const QPoint& pos);
+
+ virtual WindowOperation
+ buttonToWindowOperation(Qt::MouseButtons button);
+#endif
virtual bool eventFilter (QObject* o, QEvent* e);
void handleActiveChange (void);
@@ -191,8 +209,10 @@ class Window: public QObject, public KDecorationBridgeUnstable {
int rightOffset);
void updateProperty (void);
void getWindowProtocols (void);
+
+ Options::MouseCommand buttonToCommand (Qt::MouseButtons button);
void performMouseCommand (KWD::Options::MouseCommand command,
- QMouseEvent *qme);
+ QMouseEvent *qme);
NET::Direction positionToDirection (int pos);
Cursor positionToCursor (QPoint pos);
--
cgit v0.8.2

View File

@ -0,0 +1,30 @@
diff -uNr compiz-0.8.4.old/plugins/png.c compiz-0.8.4/plugins/png.c
--- compiz-0.8.4.old/plugins/png.c 2009-09-01 07:38:22.000000000 +0200
+++ compiz-0.8.4/plugins/png.c 2010-02-15 22:16:30.000000000 +0100
@@ -102,7 +102,7 @@
/* expand gray bit depth if needed */
if (color_type == PNG_COLOR_TYPE_GRAY && depth < 8)
- png_set_gray_1_2_4_to_8 (png);
+ png_set_expand_gray_1_2_4_to_8 (png);
/* transform transparency to alpha */
if (png_get_valid(png, info, PNG_INFO_tRNS))
@@ -167,7 +167,7 @@
Bool status;
sig_bytes = fread (png_sig, 1, PNG_SIG_SIZE, file);
- if (png_check_sig (png_sig, sig_bytes) == 0)
+ if (png_sig_cmp (png_sig, 0, sig_bytes) != 0)
return FALSE;
png = png_create_read_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
@@ -218,7 +218,7 @@
Bool status;
memcpy (png_sig, buffer, PNG_SIG_SIZE);
- if (png_check_sig (png_sig, PNG_SIG_SIZE) == 0)
+ if (png_sig_cmp (png_sig, 0, PNG_SIG_SIZE) != 0)
return FALSE;
png = png_create_read_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);

View File

@ -0,0 +1,103 @@
From db88fb6f3f6c0fa3c81bc04a2a3468252d49f098 Mon Sep 17 00:00:00 2001
From: Danny Baumann <dannybaumann@web.de>
Date: Sun, 31 Jan 2010 12:36:42 +0000
Subject: Fix handling of windows that have a server border set.
Also handle windows that have a server border set properly in pointer
(placement mode)
---
diff --git a/plugins/place.c b/plugins/place.c
index d59de33..a54e60a 100644
--- a/plugins/place.c
+++ b/plugins/place.c
@@ -131,12 +131,15 @@ typedef enum {
/* helper macros to get the full dimensions of a window,
including decorations */
+#define BORDER_WIDTH(w) ((w)->input.left + (w)->input.right + \
+ 2 * (w)->serverBorderWidth)
+#define BORDER_HEIGHT(w) ((w)->input.top + (w)->input.bottom + \
+ 2 * (w)->serverBorderWidth)
+
#define WIN_FULL_X(w) ((w)->serverX - (w)->input.left)
#define WIN_FULL_Y(w) ((w)->serverY - (w)->input.top)
-#define WIN_FULL_W(w) ((w)->serverWidth + 2 * (w)->serverBorderWidth + \
- (w)->input.left + (w)->input.right)
-#define WIN_FULL_H(w) ((w)->serverHeight + 2 * (w)->serverBorderWidth + \
- (w)->input.top + (w)->input.bottom)
+#define WIN_FULL_W(w) ((w)->serverWidth + BORDER_WIDTH (w))
+#define WIN_FULL_H(w) ((w)->serverHeight + BORDER_HEIGHT (w))
static Bool
placeMatchXYValue (CompWindow *w,
@@ -1216,8 +1219,8 @@ placeConstrainToWorkarea (CompWindow *w,
extents.left = *x - w->input.left;
extents.top = *y - w->input.top;
- extents.right = *x + w->serverWidth + w->input.right;
- extents.bottom = *y + w->serverHeight + w->input.bottom;
+ extents.right = extents.left + WIN_FULL_W (w);
+ extents.bottom = extents.top + WIN_FULL_H (w);
delta = workArea->x + workArea->width - extents.right;
if (delta < 0)
@@ -1419,9 +1422,9 @@ placeDoValidateWindowResizeRequest (CompWindow *w,
}
left = x - w->input.left;
- right = x + xwc->width + w->input.right;
+ right = left + xwc->width + BORDER_WIDTH (w);
top = y - w->input.top;
- bottom = y + xwc->height + w->input.bottom;
+ bottom = top + xwc->height + BORDER_HEIGHT (w);
output = outputDeviceForGeometry (s,
xwc->x, xwc->y,
@@ -1484,9 +1487,9 @@ placeDoValidateWindowResizeRequest (CompWindow *w,
/* bring left/right/top/bottom to actual window coordinates */
left += w->input.left;
- right -= w->input.right;
+ right -= w->input.right + 2 * w->serverBorderWidth;
top += w->input.top;
- bottom -= w->input.bottom;
+ bottom -= w->input.bottom + 2 * w->serverBorderWidth;
if ((right - left) != xwc->width)
{
@@ -1886,17 +1889,13 @@ placeDoHandleScreenSizeChange (CompScreen *s,
{
mask |= CWX | CWWidth;
xwc.x = vpX * s->width + workArea.x + w->input.left;
- xwc.width = workArea.width -
- (2 * w->serverBorderWidth +
- w->input.left + w->input.right);
+ xwc.width = workArea.width - BORDER_WIDTH (w);
}
if (w->state & CompWindowStateMaximizedVertMask)
{
mask |= CWY | CWHeight;
xwc.y = vpY * s->height + workArea.y + w->input.top;
- xwc.height = workArea.height -
- (2 * w->serverBorderWidth +
- w->input.top + w->input.bottom);
+ xwc.height = workArea.height - BORDER_HEIGHT (w);
}
}
}
--- a/plugins/place.c
+++ b/plugins/place.c
@@ -847,8 +847,8 @@ placePointer (CompWindow *w,
if (placeGetPointerPosition (w->screen, &xPointer, &yPointer))
{
- *x = xPointer - (w->serverWidth / 2);
- *y = yPointer - (w->serverHeight / 2);
+ *x = xPointer - (w->serverWidth / 2) - w->serverBorderWidth;
+ *y = yPointer - (w->serverHeight / 2) - w->serverBorderWidth;
}
else
{
--
cgit v0.8.2

View File

@ -0,0 +1,36 @@
From 79a275b240a98d9f64c8dd1e799e5d469ec8f204 Mon Sep 17 00:00:00 2001
From: Danny Baumann <dannybaumann@web.de>
Date: Wed, 20 Jan 2010 14:05:10 +0000
Subject: Fix window region calculation for windows that have border width set.
---
diff --git a/src/window.c b/src/window.c
index 90922d1..e7bb987 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1701,8 +1701,8 @@ updateWindowRegion (CompWindow *w)
{
r.x = -w->attrib.border_width;
r.y = -w->attrib.border_width;
- r.width = w->width;
- r.height = w->height;
+ r.width = w->attrib.width + w->attrib.border_width;
+ r.height = w->attrib.height + w->attrib.border_width;
rects = &r;
n = 1;
@@ -1719,8 +1719,10 @@ updateWindowRegion (CompWindow *w)
{
rect.extents.x1 = rects[i].x + w->attrib.border_width;
rect.extents.y1 = rects[i].y + w->attrib.border_width;
- rect.extents.x2 = rect.extents.x1 + rects[i].width;
- rect.extents.y2 = rect.extents.y1 + rects[i].height;
+ rect.extents.x2 = rect.extents.x1 + rects[i].width +
+ w->attrib.border_width;
+ rect.extents.y2 = rect.extents.y1 + rects[i].height +
+ w->attrib.border_width;
if (rect.extents.x1 < 0)
rect.extents.x1 = 0;
--
cgit v0.8.2

View File

@ -0,0 +1,101 @@
diff --git a/gtk/window-decorator/gtk-window-decorator.c b/gtk/window-decorator/gtk-window-decorator.c
index 18b907e..566da0f 100644
--- a/gtk/window-decorator/gtk-window-decorator.c
+++ b/gtk/window-decorator/gtk-window-decorator.c
@@ -31,6 +31,11 @@
#include <X11/extensions/Xrender.h>
#include <X11/Xregion.h>
+/* This must be included before the GDK_DISABLE_DEPRECATED definition
+ * in order to avoid QA issues on amd64 arch (see Gentoo bug 344293).
+ */
+#include <gdk/gdkgc.h>
+
#ifndef GDK_DISABLE_DEPRECATED
#define GDK_DISABLE_DEPRECATED
#endif
@@ -2659,6 +2664,7 @@ get_window_prop (Window xwindow,
Atom atom,
Window *val)
{
+ Display *dpy = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
Atom type;
int format;
gulong nitems;
@@ -2671,7 +2677,7 @@ get_window_prop (Window xwindow,
gdk_error_trap_push ();
type = None;
- result = XGetWindowProperty (gdk_display,
+ result = XGetWindowProperty (dpy,
xwindow,
atom,
0, G_MAXLONG,
@@ -4966,7 +4972,7 @@ force_quit_dialog_realize (GtkWidget *dialog,
WnckWindow *win = data;
gdk_error_trap_push ();
- XSetTransientForHint (gdk_display,
+ XSetTransientForHint (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
GDK_WINDOW_XID (dialog->window),
wnck_window_get_xid (win));
gdk_display_sync (gdk_display_get_default ());
@@ -4976,17 +4982,18 @@ force_quit_dialog_realize (GtkWidget *dialog,
static char *
get_client_machine (Window xwindow)
{
- Atom atom, type;
- gulong nitems, bytes_after;
- guchar *str = NULL;
- int format, result;
- char *retval;
+ Display *xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+ Atom atom, type;
+ gulong nitems, bytes_after;
+ guchar *str = NULL;
+ int format, result;
+ char *retval;
- atom = XInternAtom (gdk_display, "WM_CLIENT_MACHINE", FALSE);
+ atom = XInternAtom (xdisplay, "WM_CLIENT_MACHINE", FALSE);
gdk_error_trap_push ();
- result = XGetWindowProperty (gdk_display,
+ result = XGetWindowProperty (xdisplay,
xwindow, atom,
0, G_MAXLONG,
FALSE, XA_STRING, &type, &format, &nitems,
@@ -5013,6 +5020,8 @@ get_client_machine (Window xwindow)
static void
kill_window (WnckWindow *win)
{
+ GdkDisplay *gdk_display = gdk_display_get_default ();
+ Display *xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display);
WnckApplication *app;
app = wnck_window_get_application (win);
@@ -5038,8 +5047,8 @@ kill_window (WnckWindow *win)
}
gdk_error_trap_push ();
- XKillClient (gdk_display, wnck_window_get_xid (win));
- gdk_display_sync (gdk_display_get_default ());
+ XKillClient (xdisplay, wnck_window_get_xid (win));
+ gdk_display_sync (gdk_display);
gdk_error_trap_pop ();
}
@@ -5623,9 +5632,9 @@ static int
update_shadow (void)
{
decor_shadow_options_t opt;
- Display *xdisplay = gdk_display;
- GdkDisplay *display = gdk_display_get_default ();
- GdkScreen *screen = gdk_display_get_default_screen (display);
+ GdkDisplay *display = gdk_display_get_default ();
+ Display *xdisplay = GDK_DISPLAY_XDISPLAY (display);
+ GdkScreen *screen = gdk_display_get_default_screen (display);
opt.shadow_radius = shadow_radius;
opt.shadow_opacity = shadow_opacity;

View File

@ -0,0 +1,23 @@
From 0f95c41a0aa175ddf7947ba18b01f746c95594a9 Mon Sep 17 00:00:00 2001
From: Paul Donohue <compiz@paulsd.com>
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

View File

@ -0,0 +1,384 @@
#!/bin/sh
# Compiz Manager wrapper script
#
# Copyright (c) 2007 Kristian Lyngstøl <kristian@bohemians.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
#
# Contributions by: Treviño (3v1n0) <trevi55@gmail.com>, Ubuntu Packages
#
# Much of this code is based on Beryl code, also licensed under the GPL.
# This script will detect what options we need to pass to compiz to get it
# started, and start a default plugin and possibly window decorator.
#
COMPIZ_BIN_PATH="/usr/bin/" # For window decorators and compiz
PLUGIN_PATH="/usr/lib/compiz/"
GLXINFO="/usr/bin/glxinfo"
KWIN="/usr/bin/kwin"
METACITY="/usr/bin/metacity"
COMPIZ_NAME="compiz" # Final name for compiz (compiz.real)
# For Xgl LD_PRELOAD
LIBGL_NVIDIA="/usr/lib/nvidia/libGL.so.1.2.xlibmesa"
LIBGL_FGLRX="/usr/lib/fglrx/libGL.so.1.2.xlibmesa"
# Minimum amount of memory (in kilo bytes) that nVidia cards need
# to be allowed to start
# Set to 262144 to require 256MB
NVIDIA_MEMORY="65536" # 64MB
NVIDIA_SETTINGS="nvidia-settings" # Assume it's in the path by default
# For detecting what driver is in use, the + is for one or more /'s
XORG_DRIVER_PATH="/usr/lib/xorg/modules/drivers/+"
FALLBACKWM="${METACITY}"
FALLBACKWM_OPTIONS="--replace $@"
# Driver whitelist
WHITELIST="nvidia intel ati radeon i810"
# blacklist based on the pci ids
# See http://wiki.compiz-fusion.org/Hardware/Blacklist for details
T=" 1002:5954 1002:5854 1002:5955" # ati rs480
T="$T 1002:4153" # ATI Rv350
T="$T 8086:2982 8086:2992 8086:29a2 8086:2a02 8086:2a12" # intel 965
BLACKLIST_PCIIDS="$T"
unset T
COMPIZ_OPTIONS="--ignore-desktop-hints --replace"
COMPIZ_PLUGINS=""
ENV=""
# Use emerald by default if it exist
USE_EMERALD="yes"
# No indirect by default
INDIRECT="no"
# Default X.org log if xset q doesn't reveal it
XORG_DEFAULT_LOG="/var/log/Xorg.0.log"
# Set to yes to enable verbose
VERBOSE="yes"
# Echos the arguments if verbose
verbose()
{
if [ "x$VERBOSE" = "xyes" ]; then
printf "$*"
fi
}
# abort script and run fallback windowmanager
abort_with_fallback_wm()
{
if [ "x$SKIP_CHECKS" = "xyes" ]; then
verbose "SKIP_CHECKS is yes, so continuing despite problems.\n"
return 0;
fi
verbose "aborting and using fallback: $FALLBACKWM \n"
if [ -x $FALLBACKWM ]; then
exec $FALLBACKWM $FALLBACKWM_OPTIONS
else
printf "no $FALLBACKWM found, exiting\n"
exit 1
fi
}
# Check for non power of two texture support
check_npot_texture()
{
verbose "Checking for non power of two support: "
if glxinfo 2> /dev/null | egrep -q '(GL_ARB_texture_non_power_of_two|GL_NV_texture_rectangle|GL_EXT_texture_rectangle|GL_ARB_texture_rectangle)' ; then
verbose "present. \n";
return 0;
else
verbose "Not present. \n"
return 1;
fi
}
# Check for presence of FBConfig
check_fbconfig()
{
verbose "Checking for FBConfig: "
if [ "$INDIRECT" = "yes" ]; then
$GLXINFO -i | grep -q GLX.*fbconfig
FB=$?
else
$GLXINFO | grep -q GLX.*fbconfig
FB=$?
fi
if [ $FB = "0" ]; then
unset FB
verbose "present. \n"
return 0;
else
unset FB
verbose "not present. \n"
return 1;
fi
}
# Check for TFP
check_tfp()
{
verbose "Checking for texture_from_pixmap: "
if [ $($GLXINFO 2>/dev/null | grep GLX_EXT_texture_from_pixmap -c) -gt 2 ] ; then
verbose "present. \n"
return 0;
else
verbose "not present. \n"
if [ "$INDIRECT" = "yes" ]; then
unset LIBGL_ALWAYS_INDIRECT
INDIRECT="no"
return 1;
else
verbose "Trying again with indirect rendering:\n";
INDIRECT="yes"
export LIBGL_ALWAYS_INDIRECT=1
check_tfp;
return $?
fi
fi
}
# Check wether the composite extension is present
check_composite()
{
verbose "Checking for Composite extension: "
if xdpyinfo -queryExtensions | grep -q Composite ; then
verbose "present. \n";
return 0;
else
verbose "not present. \n";
return 1;
fi
}
# Detects if Xgl is running
check_xgl()
{
verbose "Checking for Xgl: "
if xvinfo | grep -q Xgl ; then
verbose "present. \n"
return 0;
else
verbose "not present. \n"
return 1;
fi
}
# Check if the nVidia card has enough video ram to make sense
check_nvidia_memory()
{
MEM=$(${NVIDIA_SETTINGS} -q VideoRam | egrep Attribute\ \'VideoRam\'\ .*: | cut -d: -f3 | sed 's/[^0-9]//g')
if [ $MEM -lt $NVIDIA_MEMORY ]; then
verbose "Less than ${NVIDIA_MEMORY}kb of memory and nVidia";
return 1;
fi
return 0;
}
# Check for existence if NV-GLX
check_nvidia()
{
if [ ! -z $NVIDIA_INTERNAL_TEST ]; then
return $NVIDIA_INTERNAL_TEST;
fi
verbose "Checking for nVidia: "
if xdpyinfo | grep -q NV-GLX ; then
verbose "present. \n"
NVIDIA_INTERNAL_TEST=0
return 0;
else
verbose "not present. \n"
NVIDIA_INTERNAL_TEST=1
return 1;
fi
}
# Check if the max texture size is large enough compared to the resolution
check_texture_size()
{
TEXTURE_LIMIT=$(glxinfo -l | grep -m1 GL_MAX_TEXTURE_SIZE | sed 's/.*=[^0-9]//g')
RESOLUTION=$(xdpyinfo | grep -i dimensions: | sed 's/[^0-9]*pixels.*(.*).*//' | sed 's/[^0-9x]*//')
VRES=$(echo $RESOLUTION | sed 's/.*x//')
HRES=$(echo $RESOLUTION | sed 's/x.*//')
verbose "Comparing resolution ($RESOLUTION) to maximum 3D texture size ($TEXTURE_LIMIT): ";
if [ $VRES -gt $TEXTURE_LIMIT ] || [ $HRES -gt $TEXTURE_LIMIT ]; then
verbose "Failed.\n"
return 1;
fi
verbose "Passed.\n"
return 0
}
# check driver whitelist
running_under_whitelisted_driver()
{
LOG=$(xset q|grep "Log file"|awk '{print $3}')
if [ "$LOG" = "" ]; then
verbose "xset q doesn't reveal the location of the log file. Using fallback $XORG_DEFAULT_LOG \n"
LOG=$XORG_DEFAULT_LOG;
fi
if [ -z "$LOG" ];then
verbose "AIEEEEH, no Log file found \n"
verbose "$(xset q) \n"
return 0
fi
for DRV in ${WHITELIST}; do
if egrep -q "Loading ${XORG_DRIVER_PATH}${DRV}_drv\.so" $LOG &&
! egrep -q "Unloading ${XORG_DRIVER_PATH}${DRV}_drv\.so" $LOG;
then
return 0
fi
done
verbose "No whitelisted driver found\n"
return 1
}
# check pciid blacklist
have_blacklisted_pciid()
{
OUTPUT=$(lspci -n)
for ID in ${BLACKLIST_PCIIDS}; do
if echo "$OUTPUT" | egrep -q "$ID"; then
verbose "Blacklisted PCIID '$ID' found \n"
return 0
fi
done
OUTPUT=$(lspci -vn | grep -i VGA)
verbose "Detected PCI ID for VGA: $OUTPUT\n"
return 1
}
build_env()
{
if check_nvidia; then
ENV="__GL_YIELD=NOTHING "
fi
if [ "$INDIRECT" = "yes" ]; then
ENV="$ENV LIBGL_ALWAYS_INDIRECT=1 "
fi
if check_xgl; then
if [ -f ${LIBGL_NVIDIA} ]; then
ENV="$ENV LD_PRELOAD=${LIBGL_NVIDIA}"
verbose "Enabling Xgl with nVidia drivers...\n"
fi
if [ -f ${LIBGL_FGLRX} ]; then
ENV="$ENV LD_PRELOAD=${LIBGL_FGLRX}"
verbose "Enabling Xgl with fglrx ATi drivers...\n"
fi
fi
ENV="$ENV FROM_WRAPPER=yes"
if [ -n "$ENV" ]; then
export $ENV
fi
}
build_args()
{
if [ $INDIRECT = "yes" ]; then
COMPIZ_OPTIONS="$COMPIZ_OPTIONS --indirect-rendering "
fi
if check_nvidia; then
COMPIZ_OPTIONS="$COMPIZ_OPTIONS --loose-binding"
fi
}
####################
# Execution begins here.
# Read configuration from XDG paths
if [ -z "$XDG_CONFIG_DIRS" ]; then
test -f /etc/xdg/compiz/compiz-manager && . /etc/xdg/compiz/compiz-manager
else
test -f $XDG_CONFIG_DIRS/compiz/compiz-manager && . $XDG_CONFIG_DIRS/compiz/compiz-manager
fi
if [ -z "$XDG_CONFIG_HOME" ]; then
test -f $HOME/.config/compiz/compiz-manager && . $HOME/.config/compiz/compiz-manager
else
test -f $XDG_CONFIG_HOME/compiz/compiz-manager && . $XDG_CONFIG_HOME/compiz/compiz-manager
fi
# Don't use compiz when running the failsafe session
if [ "x$GNOME_DESKTOP_SESSION_ID" = "xFailsafe" ]; then
abort_with_fallback_wm
fi
if [ "x$LIBGL_ALWAYS_INDIRECT" = "x1" ]; then
INDIRECT="yes";
fi
# if we run under Xgl, we can skip some tests here
if ! check_xgl; then
# if vesa or vga are in use, do not even try glxinfo (LP#119341)
if ! running_under_whitelisted_driver || have_blacklisted_pciid; then
abort_with_fallback_wm
fi
# check if we have the required bits to run compiz and if not,
# fallback
if ! check_tfp || ! check_npot_texture || ! check_composite || ! check_texture_size; then
abort_with_fallback_wm
fi
if check_nvidia && ! check_nvidia_memory; then
abort_with_fallback_wm
fi
if ! check_fbconfig; then
abort_with_fallback_wm
fi
fi
# load the ccp plugin if present and fallback to plain gconf if not
if [ -f ${PLUGIN_PATH}libccp.so ]; then
COMPIZ_PLUGINS="$COMPIZ_PLUGINS ccp"
elif [ -f ${PLUGIN_PATH}libgconf.so ]; then
COMPIZ_PLUGINS="$COMPIZ_PLUGINS glib gconf"
fi
# get environment
build_env
build_args
# start the gtk-window-decorator if present
if [ -x ${COMPIZ_BIN_PATH}emerald ] && [ "$USE_EMERALD" = "yes" ]; then
verbose "Starting emerald\n"
${COMPIZ_BIN_PATH}emerald --replace &
elif [ -x ${COMPIZ_BIN_PATH}gtk-window-decorator ] && [ -n "$GNOME_DESKTOP_SESSION_ID" ]; then
verbose "Starting gtk-window-decorator\n"
${COMPIZ_BIN_PATH}gtk-window-decorator --replace &
elif [ -x ${COMPIZ_BIN_PATH}kde-window-decorator ] && [ -n "$KDE_FULL_SESSION" ]; then
verbose "Starting kde-window-decorator\n"
${COMPIZ_BIN_PATH}kde-window-decorator --replace &
FALLBACKWM="${KWIN}"
fi
${COMPIZ_BIN_PATH}${COMPIZ_NAME} $COMPIZ_OPTIONS "$@" $COMPIZ_PLUGINS || exec $FALLBACKWM $FALLBACKWM_OPTIONS

View File

@ -0,0 +1,20 @@
configure.ac | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 7b09153..9c22ea0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -192,10 +192,10 @@ if test "x$use_gconf" = "xyes"; then
if test x"$GCONFTOOL" = xno; then
AC_MSG_ERROR([gconftool-2 executable not found in your path - should be installed with GConf])
fi
+else
+ AM_CONDITIONAL(GCONF_SCHEMAS_INSTALL, test "x$use_gconf" = "xyes")
fi
-AM_GCONF_SOURCE_2
-
AM_CONDITIONAL(USE_GCONF, test "x$use_gconf" = "xyes")
if test "$use_gconf" = yes; then
AC_DEFINE(USE_GCONF, 1, [Build gconf plugin])

View File

@ -0,0 +1,12 @@
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Compiz
Name[en_GB]=Compiz
Exec=compiz ccp
NoDisplay=true
# name we put on the WM spec check window
X-GNOME-WMName=Compiz
X-GNOME-Autostart-Phase=WindowManager
X-GNOME-Provides=windowmanager
X-GNOME-Autostart-Notify=true

4
x11-wm/emerald/Manifest Normal file
View File

@ -0,0 +1,4 @@
AUX emerald-0.8.4-gtk+-2.20-build.patch 1194 RMD160 f87d90db0341b77937b1c32521752bf0420974f8 SHA1 849f7aadb60dc702260e9900330cd5bc2a5a3242 SHA256 c196b2720ffa2996992e02b62d02f67c0f7f9dd7301fc6ceb26a1b1c81d5bcec
AUX emerald-0.8.4-pkgconfig-pollution.patch 353 RMD160 bf3505f23e43b853524f0a12016a8b06762e7420 SHA1 7efec914dfe6b8bfe53386ce5d96d58a95eab9c7 SHA256 bd4540b8ed94d5b7ba747a0285244564bae9d84cdba7a0fda3e2962d57e82224
DIST emerald-0.8.4.tar.bz2 525316 RMD160 de04228414419141c3df0e7f32a062cc6dfabcda SHA1 408bef6ba7822bd933448f16dc43bbd3d801d9c9 SHA256 7ed5009a739219c61c26176f738ba5264e93557f353fdf9fc480c73fe8b05e26
EBUILD emerald-0.8.4-r9999.ebuild 1322 RMD160 f718ced3d777ca6b3231b0edb4d1ff096fc645cc SHA1 16273fa1655d00c00913c89c4e3bf262821d4a9c SHA256 a20184ca2c985845718f2269da5ffd577ed8b18310dd885e19e201cdf6aadd79

View File

@ -0,0 +1,56 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-wm/emerald/emerald-0.8.4-r2.ebuild,v 1.4 2011/09/14 20:47:24 ssuominen Exp $
EAPI="2"
inherit eutils
THEMES_RELEASE=0.5.2
DESCRIPTION="Emerald Window Decorator"
HOMEPAGE="http://www.compiz.org/"
SRC_URI="http://releases.compiz.org/${PV}/${P}.tar.bz2"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
IUSE=""
PDEPEND="~x11-themes/emerald-themes-${THEMES_RELEASE}"
RDEPEND="
>=x11-libs/gtk+-2.8.0:2
>=x11-libs/libwnck-2.14.2:1
>=x11-wm/compiz-${PV}
"
DEPEND="${RDEPEND}
>=dev-util/intltool-0.35
>=dev-util/pkgconfig-0.19
>=sys-devel/gettext-0.15
"
src_prepare() {
# Fix pkg-config file pollution wrt #380197
epatch "${FILESDIR}"/${P}-pkgconfig-pollution.patch
# Fixing GTK symbol - bug 308791.
epatch "${FILESDIR}/${P}-gtk+-2.20-build.patch"
# fix build with gtk+-2.22 - bug 341143
sed -i -e '/#define G[DT]K_DISABLE_DEPRECATED/s:^://:' \
include/emerald.h || die
}
src_configure() {
econf \
--disable-dependency-tracking \
--disable-static \
--enable-fast-install \
--disable-mime-update || die "econf failed"
}
src_install() {
emake DESTDIR="${D}" install || die "emake install failed"
find "${D}" -name '*.la' -delete || die
}

View File

@ -0,0 +1,33 @@
diff -urN emerald-0.8.4/libengine/themer.c emerald-0.8.4.new/libengine/themer.c
--- emerald-0.8.4/libengine/themer.c 2009-10-13 20:56:23.000000000 -0400
+++ emerald-0.8.4.new/libengine/themer.c 2010-03-10 01:20:03.046827674 -0500
@@ -461,7 +461,7 @@
}
gdouble get_float(SettingItem * item)
{
- if(!strcmp(GTK_OBJECT_TYPE_NAME(item->widget),"GtkSpinButton")) {
+ if(!strcmp(G_OBJECT_TYPE_NAME(item->widget),"GtkSpinButton")) {
return gtk_spin_button_get_value((GtkSpinButton *)item->widget);
}
else {
@@ -647,7 +647,7 @@
}
void set_float(SettingItem * item, gdouble f)
{
- if(!strcmp(GTK_OBJECT_TYPE_NAME(item->widget),"GtkSpinButton")) {
+ if(!strcmp(G_OBJECT_TYPE_NAME(item->widget),"GtkSpinButton")) {
gtk_spin_button_set_value((GtkSpinButton *)item->widget, f);
}
else {
--- emerald-0.8.4/src/main.c.old 2010-03-29 19:49:30.420710030 -0700
+++ emerald-0.8.4/src/main.c 2010-03-29 19:52:33.654024944 -0700
@@ -3757,7 +3757,7 @@
static void hide_tooltip(void)
{
- if (GTK_WIDGET_VISIBLE(tip_window))
+ if (gtk_widget_get_visible(tip_window))
g_get_current_time(&tooltip_last_popdown);
gtk_widget_hide(tip_window);

View File

@ -0,0 +1,12 @@
--- libengine/emeraldengine.pc.in
+++ libengine/emeraldengine.pc.in
@@ -7,6 +7,7 @@
Description: Library for Emerald Engines
Version: @VERSION@
-Requires: @EMERALD_REQUIRES@
-Libs: @EMERALD_LIBS@
+Requires.private: @EMERALD_REQUIRES@
+Libs: -L${libdir} -lemeraldengine
+Libs.private: @EMERALD_LIBS@
Cflags: @EMERALD_CFLAGS@ -I${includedir}/emerald