diff options
author | Romain Perier <mrpouet@gentoo.org> | 2010-01-31 17:00:46 +0000 |
---|---|---|
committer | Romain Perier <mrpouet@gentoo.org> | 2010-01-31 17:00:46 +0000 |
commit | 90a69c5348eee9df06ca6d01af967c65391de1f0 (patch) | |
tree | bac5e4660f81a0e7494e92e05e6c0a0199e3025f /x11-plugins | |
parent | Fix crash on opening windows, and placement mode. Replace URI per a bziped ta... (diff) | |
download | historical-90a69c5348eee9df06ca6d01af967c65391de1f0.tar.gz historical-90a69c5348eee9df06ca6d01af967c65391de1f0.tar.bz2 historical-90a69c5348eee9df06ca6d01af967c65391de1f0.zip |
Handle windows that have server border set properly (put plugin), per bug #302308. Many thanks to Denilson.
Package-Manager: portage-2.2_rc62/cvs/Linux x86_64
Diffstat (limited to 'x11-plugins')
4 files changed, 248 insertions, 3 deletions
diff --git a/x11-plugins/compiz-plugins-main/ChangeLog b/x11-plugins/compiz-plugins-main/ChangeLog index 0a6987138449..4141685e9707 100644 --- a/x11-plugins/compiz-plugins-main/ChangeLog +++ b/x11-plugins/compiz-plugins-main/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for x11-plugins/compiz-plugins-main -# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-plugins/compiz-plugins-main/ChangeLog,v 1.9 2009/12/23 02:47:00 jmbsvicetto Exp $ +# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/x11-plugins/compiz-plugins-main/ChangeLog,v 1.10 2010/01/31 17:00:45 mrpouet Exp $ + +*compiz-plugins-main-0.8.4-r1 (31 Jan 2010) + + 31 Jan 2010; Romain Perier <mrpouet@gentoo.org> + +compiz-plugins-main-0.8.4-r1.ebuild, + +files/compiz-plugins-main-0.8.4-put-plugin.patch: + Handle windows that have server border set properly (put plugin), + per bug #302308. Many thanks to Denilson. 23 Dec 2009; Jorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org> compiz-plugins-main-0.8.4.ebuild: diff --git a/x11-plugins/compiz-plugins-main/Manifest b/x11-plugins/compiz-plugins-main/Manifest index 4cd5e30245ba..8649e3c22d1f 100644 --- a/x11-plugins/compiz-plugins-main/Manifest +++ b/x11-plugins/compiz-plugins-main/Manifest @@ -1,5 +1,7 @@ +AUX compiz-plugins-main-0.8.4-put-plugin.patch 6918 RMD160 1c14b58a95694e711d1dcd0036471fe465cf2a0e SHA1 fc50491bc22fe1f46f2779b9e24fc07e4c15bdc4 SHA256 1155ac5765d1712b8dee5813b41a638ea01cc16519837e7137a69d6a1e79e614 AUX compiz-plugins-main-no-gconf.patch 586 RMD160 1222325cbec30e35030c930cd3a9358a3b975047 SHA1 95ef3484e60b4f3c4d0bced6b0fb654e7cbcff89 SHA256 bc13b648e2198dd3611ba4f4734540903a740570a2c181dc666dd1e66f13e1da DIST compiz-plugins-main-0.8.4.tar.bz2 1221256 RMD160 ea438b5b608dc084e50bac94a07ce66487f3a865 SHA1 9dcc1018537f69eb9fd470b1c49e7b4888c2c3ce SHA256 1ea757880a3793e9a01603839b4a2efe5fab4efee0a96101d772dc25422f8aee +EBUILD compiz-plugins-main-0.8.4-r1.ebuild 1168 RMD160 cefe7cdc802cefd2d640736f39f2fbc80491645e SHA1 d9e8b96924c710173ef58ad36cf3dd4667632357 SHA256 ae9d3ff18cd296432cd77ffd3c1cb6f24aa0f83fcee3d6c0724d0928861896b5 EBUILD compiz-plugins-main-0.8.4.ebuild 1084 RMD160 c780c41ba0c2a396778ac984b4cac25167aafd77 SHA1 b7a29bb356b24b03c812f940c38f76d3fcf99899 SHA256 c967bdc180b2f50673e766232a54edec5644b742e656c80e2407acd17ae3ec29 -MISC ChangeLog 1954 RMD160 39bc6207eb9d7ec3bc547d504ec9472ac218166a SHA1 dc1346f0b02e0144ef6f60e1ff1ae018e03c204a SHA256 2abdb6d059110bb161c731ff99dbc609a819dcfba87bd5f1605252157c704afc +MISC ChangeLog 2252 RMD160 00ef799ad6426cd8b8185377f4a0ce1c22380da2 SHA1 922109c1a1f32218cbe96a2f63131aea314334b4 SHA256 d4f6cd90b68326b316f41ff60b59f9f27233f53b10f9e7cc81119516d1d4140a MISC metadata.xml 423 RMD160 ed3e1c4f2fcef78faf6d8b85b337f60b69c582f1 SHA1 554188b456adfdd2be58a825b83f5a2f75a1070e SHA256 63a22d1439257bac17c3a4e5a045bc2e07fbd13bde371f72cecdd0bd5cbe8742 diff --git a/x11-plugins/compiz-plugins-main/compiz-plugins-main-0.8.4-r1.ebuild b/x11-plugins/compiz-plugins-main/compiz-plugins-main-0.8.4-r1.ebuild new file mode 100644 index 000000000000..98536d3e55a1 --- /dev/null +++ b/x11-plugins/compiz-plugins-main/compiz-plugins-main-0.8.4-r1.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/x11-plugins/compiz-plugins-main/compiz-plugins-main-0.8.4-r1.ebuild,v 1.1 2010/01/31 17:00:45 mrpouet Exp $ + +EAPI="2" + +inherit eutils gnome2-utils + +DESCRIPTION="Compiz Fusion Window Decorator Plugins" +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="gnome" + +RDEPEND=" + !x11-plugins/compiz-fusion-plugins-main + >=gnome-base/librsvg-2.14.0 + media-libs/jpeg + x11-libs/cairo + ~x11-libs/compiz-bcop-${PV} + ~x11-wm/compiz-${PV}[gnome?] +" + +DEPEND="${RDEPEND} + >=dev-util/intltool-0.35 + >=dev-util/pkgconfig-0.19 + >=sys-devel/gettext-0.15 +" + +src_prepare() { + use gnome || epatch "${FILESDIR}"/${PN}-no-gconf.patch + epatch "${FILESDIR}"/${P}-put-plugin.patch +} + +src_configure() { + econf $(use_enable gnome schemas) || die "econf failed" +} + +src_install() { + emake DESTDIR="${D}" install || die "emake install failed" +} +pkg_preinst() { + use gnome && gnome2_gconf_savelist +} + +pkg_postinst() { + use gnome && gnome2_gconf_install +} diff --git a/x11-plugins/compiz-plugins-main/files/compiz-plugins-main-0.8.4-put-plugin.patch b/x11-plugins/compiz-plugins-main/files/compiz-plugins-main-0.8.4-put-plugin.patch new file mode 100644 index 000000000000..b44081d91bc2 --- /dev/null +++ b/x11-plugins/compiz-plugins-main/files/compiz-plugins-main-0.8.4-put-plugin.patch @@ -0,0 +1,184 @@ +From dc097d85952f82b101ea897d33958582db2fa010 Mon Sep 17 00:00:00 2001 +From: Danny Baumann <dannybaumann@web.de> +Date: Sun, 31 Jan 2010 13:11:44 +0000 +Subject: Handle windows that have server border set properly. + +--- +diff --git a/put.c b/put.c +index daf268f..9870cd3 100644 +--- a/src/put/put.c ++++ b/src/put/put.c +@@ -43,6 +43,14 @@ + GET_PUT_SCREEN (w->screen, \ + GET_PUT_DISPLAY (w->screen->display))) + ++#define TOP_BORDER(w) ((w)->input.top) ++#define LEFT_BORDER(w) ((w)->input.left) ++#define RIGHT_BORDER(w) ((w)->input.right + 2 * (w)->serverBorderWidth) ++#define BOTTOM_BORDER(w) ((w)->input.bottom + 2 * (w)->serverBorderWidth) ++ ++#define HALF_WIDTH(w) ((w)->serverWidth / 2 + (w)->serverBorderWidth) ++#define HALF_HEIGHT(w) ((w)->serverHeight / 2 + (w)->serverBorderWidth) ++ + static int displayPrivateIndex; + + typedef enum +@@ -395,54 +403,56 @@ putGetDistance (CompWindow *w, + switch (type) { + case PutCenter: + /* center of the screen */ +- dx = (workArea.width / 2) - (w->serverWidth / 2) - (x - workArea.x); +- dy = (workArea.height / 2) - (w->serverHeight / 2) - (y - workArea.y); ++ dx = (workArea.width / 2) - (w->serverWidth / 2) - ++ w->serverBorderWidth - (x - workArea.x); ++ dy = (workArea.height / 2) - (w->serverHeight / 2) - ++ w->serverBorderWidth - (y - workArea.y); + break; + case PutLeft: + /* center of the left edge */ +- dx = -(x - workArea.x) + w->input.left + putGetPadLeft (s); +- dy = (workArea.height / 2) - (w->serverHeight / 2) - (y - workArea.y); ++ dx = -(x - workArea.x) + LEFT_BORDER (w) + putGetPadLeft (s); ++ dy = (workArea.height / 2) - HALF_HEIGHT (w) - (y - workArea.y); + break; + case PutTopLeft: + /* top left corner */ +- dx = -(x - workArea.x) + w->input.left + putGetPadLeft (s); +- dy = -(y - workArea.y) + w->input.top + putGetPadTop (s); ++ dx = -(x - workArea.x) + LEFT_BORDER (w) + putGetPadLeft (s); ++ dy = -(y - workArea.y) + TOP_BORDER (w) + putGetPadTop (s); + break; + case PutTop: + /* center of top edge */ +- dx = (workArea.width / 2) - (w->serverWidth / 2) - (x - workArea.x); +- dy = -(y - workArea.y) + w->input.top + putGetPadTop (s); ++ dx = (workArea.width / 2) - HALF_WIDTH (w) - (x - workArea.x); ++ dy = -(y - workArea.y) + TOP_BORDER (w) + putGetPadTop (s); + break; + case PutTopRight: + /* top right corner */ + dx = workArea.width - w->serverWidth - (x - workArea.x) - +- w->input.right - putGetPadRight (s); +- dy = -(y - workArea.y) + w->input.top + putGetPadTop (s); ++ RIGHT_BORDER (w) - putGetPadRight (s); ++ dy = -(y - workArea.y) + TOP_BORDER (w) + putGetPadTop (s); + break; + case PutRight: + /* center of right edge */ + dx = workArea.width - w->serverWidth - (x - workArea.x) - +- w->input.right - putGetPadRight (s); +- dy = (workArea.height / 2) - (w->serverHeight / 2) - (y - workArea.y); ++ RIGHT_BORDER (w) - putGetPadRight (s); ++ dy = (workArea.height / 2) - HALF_HEIGHT (w) - (y - workArea.y); + break; + case PutBottomRight: + /* bottom right corner */ + dx = workArea.width - w->serverWidth - (x - workArea.x) - +- w->input.right - putGetPadRight (s); ++ RIGHT_BORDER (w) - putGetPadRight (s); + dy = workArea.height - w->serverHeight - (y - workArea.y) - +- w->input.bottom - putGetPadBottom (s); ++ BOTTOM_BORDER (w) - putGetPadBottom (s); + break; + case PutBottom: + /* center of bottom edge */ +- dx = (workArea.width / 2) - (w->serverWidth / 2) - (x - workArea.x); ++ dx = (workArea.width / 2) - HALF_WIDTH (w) - (x - workArea.x); + dy = workArea.height - w->serverHeight - (y - workArea.y) - +- w->input.bottom - putGetPadBottom (s); ++ BOTTOM_BORDER (w) - putGetPadBottom (s); + break; + case PutBottomLeft: + /* bottom left corner */ +- dx = -(x - workArea.x) + w->input.left + putGetPadLeft (s); ++ dx = -(x - workArea.x) + LEFT_BORDER (w) + putGetPadLeft (s); + dy = workArea.height - w->serverHeight - (y - workArea.y) - +- w->input.bottom - putGetPadBottom (s); ++ BOTTOM_BORDER (w) - putGetPadBottom (s); + break; + case PutRestore: + /* back to last position */ +@@ -538,16 +548,16 @@ putGetDistance (CompWindow *w, + if (posX < 0) + /* account for a specified negative position, + like geometry without (-0) */ +- dx = posX + s->width - w->serverWidth - x - w->input.right; ++ dx = posX + s->width - w->serverWidth - x - RIGHT_BORDER (w); + else +- dx = posX - x + w->input.left; ++ dx = posX - x + LEFT_BORDER (w); + + if (posY < 0) + /* account for a specified negative position, + like geometry without (-0) */ +- dy = posY + s->height - w->height - y - w->input.bottom; ++ dy = posY + s->height - w->serverHeight - y - BOTTOM_BORDER (w); + else +- dy = posY - y + w->input.top; ++ dy = posY - y + TOP_BORDER (w); + break; + case PutRelative: + /* move window by offset */ +@@ -572,35 +582,35 @@ putGetDistance (CompWindow *w, + if (putGetWindowCenter (s)) + { + /* window center */ +- dx = rx - (w->serverWidth / 2) - x; +- dy = ry - (w->serverHeight / 2) - y; ++ dx = rx - HALF_WIDTH (w) - x; ++ dy = ry - HALF_HEIGHT (w) - y; + } + else if (rx < s->workArea.width / 2 && + ry < s->workArea.height / 2) + { + /* top left quad */ +- dx = rx - x + w->input.left; +- dy = ry - y + w->input.top; ++ dx = rx - x + LEFT_BORDER (w); ++ dy = ry - y + TOP_BORDER (w); + } + else if (rx < s->workArea.width / 2 && + ry >= s->workArea.height / 2) + { + /* bottom left quad */ +- dx = rx - x + w->input.left; +- dy = ry - w->height - y - w->input.bottom; ++ dx = rx - x + LEFT_BORDER (w); ++ dy = ry - w->serverHeight - y - BOTTOM_BORDER (w); + } + else if (rx >= s->workArea.width / 2 && + ry < s->workArea.height / 2) + { + /* top right quad */ +- dx = rx - w->width - x - w->input.right; +- dy = ry - y + w->input.top; ++ dx = rx - w->serverWidth - x - RIGHT_BORDER (w); ++ dy = ry - y + TOP_BORDER (w); + } + else + { + /* bottom right quad */ +- dx = rx - w->width - x - w->input.right; +- dy = ry - w->height - y - w->input.bottom; ++ dx = rx - w->serverWidth - x - RIGHT_BORDER (w); ++ dy = ry - w->serverHeight - y - BOTTOM_BORDER (w); + } + } + else +@@ -627,10 +637,10 @@ putGetDistance (CompWindow *w, + inDx = dxBefore = dx % s->width; + inDy = dyBefore = dy % s->height; + +- extents.left = x + inDx - w->input.left; +- extents.top = y + inDy - w->input.top; +- extents.right = x + inDx + w->serverWidth + w->input.right; +- extents.bottom = y + inDy + w->serverHeight + w->input.bottom; ++ extents.left = x + inDx - LEFT_BORDER (w); ++ extents.top = y + inDy - TOP_BORDER (w); ++ extents.right = x + inDx + w->serverWidth + RIGHT_BORDER (w); ++ extents.bottom = y + inDy + w->serverHeight + BOTTOM_BORDER (w); + + area.left = workArea.x + putGetPadLeft (s); + area.top = workArea.y + putGetPadTop (s); +-- +cgit v0.8.2 |