Merge lp:~amaranth/compiz/fix_shadow_drawing into lp:~compiz/compiz/ubuntu

Proposed by Travis Watkins
Status: Merged
Merged at revision: not available
Proposed branch: lp:~amaranth/compiz/fix_shadow_drawing
Merge into: lp:~compiz/compiz/ubuntu
Diff against target: None lines
To merge this branch: bzr merge lp:~amaranth/compiz/fix_shadow_drawing
Reviewer Review Type Date Requested Status
compiz packagers Pending
Review via email: mp+10566@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Travis Watkins (amaranth) wrote :

This branch fixes compiz shadow drawing so Dock type windows (panels) draw their shadow on top of the desktop window instead of on top of every window.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2009-07-20 04:30:10 +0000
3+++ debian/changelog 2009-08-22 13:37:07 +0000
4@@ -1,3 +1,11 @@
5+compiz (1:0.8.2-0ubuntu16) karmic; urgency=low
6+
7+ * debian/patches/015_draw_dock_shadows_on_desktop.patch:
8+ - change decoration plugin to draw dock shadows only on the
9+ desktop window instead of on top of all other windows
10+
11+ -- Travis Watkins <amaranth@ubuntu.com> Sat, 22 Aug 2009 08:32:06 -0500
12+
13 compiz (1:0.8.2-0ubuntu15) karmic; urgency=low
14
15 * debian/compiz-manager:
16
17=== modified file 'debian/control'
18--- debian/control 2009-05-25 10:52:33 +0000
19+++ debian/control 2009-08-22 13:39:13 +0000
20@@ -4,7 +4,7 @@
21 Maintainer: Ubuntu Core Developers <ubuntu-devel-discuss@lists.ubuntu.com>
22 XSBC-Original-Maintainer: Debian X Strike Force <debian-x@lists.debian.org>
23 Uploaders: Thierry Reding <thierry@gilfi.de>, David Nusinow <dnusinow@debian.org>
24-Build-Depends: debhelper (>= 5), quilt (>= 0.40), automake1.10,
25+Build-Depends: debhelper (>= 5), quilt (>= 0.40), automake1.11,
26 libglib2.0-dev, libgconf2-dev, libpng12-dev | libpng-dev,
27 libxcomposite-dev (>= 1:0.3-2), libxfixes-dev (>= 1:4.0.1),
28 libxdamage-dev (>=1:1.0.3), libxrandr-dev (>= 2:1.1.0.2),
29
30=== added file 'debian/patches/015_draw_dock_shadows_on_desktop.patch'
31--- debian/patches/015_draw_dock_shadows_on_desktop.patch 1970-01-01 00:00:00 +0000
32+++ debian/patches/015_draw_dock_shadows_on_desktop.patch 2009-08-22 13:37:07 +0000
33@@ -0,0 +1,80 @@
34+--- compiz-0.8.2/plugins/decoration.c 2009-02-15 03:10:23.000000000 -0600
35++++ compiz-0.8.2.new/plugins/decoration.c 2009-08-22 08:17:23.939586726 -0500
36+@@ -188,6 +188,11 @@
37+ status = (*w->screen->drawWindow) (w, transform, attrib, region, mask);
38+ WRAP (ds, w->screen, drawWindow, decorDrawWindow);
39+
40++ /* we wait to draw dock shadows until we get to the lowest
41++ desktop window in the stack */
42++ if (w->type & CompWindowTypeDockMask)
43++ return status;
44++
45+ if (mask & PAINT_WINDOW_TRANSFORMED_MASK)
46+ region = &infiniteRegion;
47+
48+@@ -224,6 +229,65 @@
49+ attrib, mask);
50+ }
51+
52++ if (w->type & CompWindowTypeDesktopMask)
53++ {
54++ /* we only want to draw on the lowest desktop window, find it and see
55++ if we the window we have is it */
56++ CompWindow *window = w->screen->windows;
57++ for (window = w->screen->windows; window; window = window->next)
58++ {
59++ if (window->type & CompWindowTypeDesktopMask)
60++ {
61++ if (window == w)
62++ break;
63++ else
64++ return status;
65++ }
66++ }
67++
68++ /* drawing dock shadows now */
69++ for (window = w->screen->windows; window; window = window->next)
70++ {
71++ if (window->type & CompWindowTypeDockMask)
72++ {
73++ DECOR_WINDOW (window);
74++
75++ if (dw->wd && region->numRects)
76++ {
77++ WindowDecoration *wd = dw->wd;
78++ REGION box;
79++ int i;
80++
81++ mask |= PAINT_WINDOW_BLEND_MASK;
82++
83++ box.rects = &box.extents;
84++ box.numRects = 1;
85++
86++ window->vCount = window->indexCount = 0;
87++
88++ for (i = 0; i < wd->nQuad; i++)
89++ {
90++ box.extents = wd->quad[i].box;
91++
92++ if (box.extents.x1 < box.extents.x2 &&
93++ box.extents.y1 < box.extents.y2)
94++ {
95++ (*window->screen->addWindowGeometry) (window,
96++ &wd->quad[i].matrix, 1,
97++ &box,
98++ region);
99++ }
100++ }
101++
102++ if (window->vCount)
103++ (*window->screen->drawWindowTexture) (window,
104++ &wd->decor->texture->texture,
105++ attrib, mask);
106++ }
107++ }
108++ }
109++ }
110++
111+ return status;
112+ }
113+
114
115=== modified file 'debian/patches/series'
116--- debian/patches/series 2009-07-20 03:56:18 +0000
117+++ debian/patches/series 2009-08-22 13:37:07 +0000
118@@ -2,6 +2,7 @@
119 013-add-cursor-theme-support.patch
120 014-fix-gtk-window-decorator-no-argb-crash.patch
121 014_fix-no-border-window-shadow.patch
122+015_draw_dock_shadows_on_desktop.patch
123 018_use_metacity_settings.patch
124 029_default_options
125 035_ignore_workspaces

Subscribers

People subscribed via source and target branches

to all changes: