VERSION | 2 - debian/changelog | 8 +++-- src/fadedesktop/fadedesktop.c | 7 ++++ src/gears/gears.c | 3 +- src/group/tab.c | 30 ++++++++++++--------- src/reflex/reflex.c | 59 ++++++++++++++++++++++++++++++------------ src/showdesktop/showdesktop.c | 4 ++ 7 files changed, 80 insertions(+), 33 deletions(-)
New commits: commit 268df63596a659bbe4a3770362646a207482ee42 Author: Sean Finney <[EMAIL PROTECTED]> Date: Mon Dec 31 20:05:55 2007 +0100 new upstream release, bugfix ref diff --git a/debian/changelog b/debian/changelog index 4262495..a8d49ca 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,12 @@ -compiz-fusion-plugins-extra (0.6.0-4) unstable; urgency=low +compiz-fusion-plugins-extra (0.6.1-1) unstable; urgency=low + + * New upstream release on the 0.6.0 branch. [Emilio Scalise] * Added missing build deps: librsvg2-dev, libcairo2-dev, libsm-dev, - libdbus-1-dev, libjpeg62-dev, libdecoration0-dev. + libdbus-1-dev, libjpeg62-dev, libdecoration0-dev (closes: #458159). - -- Sean Finney <[EMAIL PROTECTED]> Fri, 21 Dec 2007 21:03:25 +0100 + -- Sean Finney <[EMAIL PROTECTED]> Mon, 31 Dec 2007 20:03:44 +0100 compiz-fusion-plugins-extra (0.6.0-3) unstable; urgency=low commit bc88743627a7b439badd5fc83304119cdad32843 Author: Dennis Kasprzyk <[EMAIL PROTECTED]> Date: Wed Dec 19 12:32:33 2007 +0100 Rotate scene correctly in inside cube mode. diff --git a/src/gears/gears.c b/src/gears/gears.c index a86b65c..01104a5 100644 --- a/src/gears/gears.c +++ b/src/gears/gears.c @@ -282,7 +282,8 @@ gearsPaintInside (CompScreen *s, ScreenPaintAttrib sA = *sAttrib; - sA.yRotate += (360.0f / size) * (cs->xRotations - (s->x * cs->nOutput)); + sA.yRotate += cs->invert * (360.0f / size) * + (cs->xRotations - (s->x * cs->nOutput)); CompTransform mT = *transform; commit 72af3c8620b783928a8d04a6342fff3d1fd7e8fc Author: Danny Baumann <[EMAIL PROTECTED]> Date: Mon Nov 5 13:22:29 2007 +0100 Fix damaging of tab bars without slots. diff --git a/src/group/tab.c b/src/group/tab.c index 76eccb5..ea69527 100644 --- a/src/group/tab.c +++ b/src/group/tab.c @@ -2258,18 +2258,24 @@ groupDamageTabBarRegion (GroupSelection *group) #define DAMAGE_BUFFER 20 - reg.extents.x1 = MIN (group->tabBar->region->extents.x1, - group->tabBar->slots->region->extents.x1) - - DAMAGE_BUFFER; - reg.extents.y1 = MIN (group->tabBar->region->extents.y1, - group->tabBar->slots->region->extents.y1) - - DAMAGE_BUFFER; - reg.extents.x2 = MAX (group->tabBar->region->extents.x2, - group->tabBar->revSlots->region->extents.x2) + - DAMAGE_BUFFER; - reg.extents.y2 = MAX (group->tabBar->region->extents.y2, - group->tabBar->revSlots->region->extents.y2) + - DAMAGE_BUFFER; + reg.extents = group->tabBar->region->extents; + + if (group->tabBar->slots) + { + reg.extents.x1 = MIN (reg.extents.x1, + group->tabBar->slots->region->extents.x1); + reg.extents.y1 = MIN (reg.extents.y1, + group->tabBar->slots->region->extents.y1); + reg.extents.x2 = MAX (reg.extents.x2, + group->tabBar->revSlots->region->extents.x2); + reg.extents.y2 = MAX (reg.extents.y2, + group->tabBar->revSlots->region->extents.y2); + } + + reg.extents.x1 -= DAMAGE_BUFFER; + reg.extents.y1 -= DAMAGE_BUFFER; + reg.extents.x2 += DAMAGE_BUFFER; + reg.extents.y2 += DAMAGE_BUFFER; damageScreenRegion (group->screen, ®); } commit 6f563107825d292282788b8a580e45d3bf10d0a6 Author: Erkin Bahceci <[EMAIL PROTECTED]> Date: Sun Nov 4 21:20:14 2007 +0100 Cache multiple fragment functions. Prevents recreating fragment functions when unit/param changes because of another plugin. If the other plugin paints fragment programs on only some windows, the issue becomes more visible and a new fragment function needs to be created possibly every frame without this patch. diff --git a/src/reflex/reflex.c b/src/reflex/reflex.c index 6d57e0c..e5706df 100644 --- a/src/reflex/reflex.c +++ b/src/reflex/reflex.c @@ -44,6 +44,8 @@ ReflexDisplay; typedef struct _ReflexFunction { + struct _ReflexFunction *next; + int handle; int target; int param; @@ -62,7 +64,7 @@ typedef struct _ReflexScreen unsigned int width; unsigned int height; - ReflexFunction function; + ReflexFunction *reflexFunctions; } ReflexScreen; @@ -96,6 +98,7 @@ getReflexFragmentFunction (CompScreen *s, int param, int unit) { + ReflexFunction *function; CompFunctionData *data; REFLEX_SCREEN (s); @@ -121,12 +124,11 @@ getReflexFragmentFunction (CompScreen *s, targetString = "RECT"; } - - if (rs->function.handle && - rs->function.param == param && - rs->function.target == target && - rs->function.unit == unit) - return rs->function.handle; + for (function = rs->reflexFunctions; function; function = function->next) + if (function->param == param && + function->target == target && + function->unit == unit) + return function->handle; data = createFunctionData (); @@ -163,15 +165,19 @@ getReflexFragmentFunction (CompScreen *s, return 0; } - handle = createFragmentFunction (s, "reflex", data); + function = malloc (sizeof (ReflexFunction)); + if (function) + { + handle = createFragmentFunction (s, "reflex", data); - if (rs->function.handle) - destroyFragmentFunction (s, rs->function.handle); + function->handle = handle; + function->target = target; + function->param = param; + function->unit = unit; - rs->function.handle = handle; - rs->function.target = target; - rs->function.param = param; - rs->function.unit = unit; + function->next = rs->reflexFunctions; + rs->reflexFunctions = function; + } destroyFunctionData (data); @@ -348,6 +354,25 @@ reflexMatchPropertyChanged (CompDisplay *d, WRAP (rd, d, matchPropertyChanged, reflexMatchPropertyChanged); } +static void +reflexDestroyFragmentFunctions (CompScreen *s, + ReflexFunction **reflexFunctions) +{ + ReflexFunction *function, *next; + + function = *reflexFunctions; + while (function) + { + destroyFragmentFunction (s, function->handle); + + next = function->next; + free (function); + function = next; + } + + *reflexFunctions = NULL; +} + static Bool reflexInitDisplay (CompPlugin *p, CompDisplay *d) @@ -419,7 +444,7 @@ reflexInitScreen (CompPlugin *p, s->privates[rd->screenPrivateIndex].ptr = rs; - rs->function.handle = 0; + rs->reflexFunctions = NULL; WRAP (rs, s, drawWindowTexture, reflexDrawWindowTexture); @@ -433,13 +458,12 @@ reflexFiniScreen (CompPlugin *p, { REFLEX_SCREEN (s); + reflexDestroyFragmentFunctions (s, &rs->reflexFunctions); + freeWindowPrivateIndex (s, rs->windowPrivateIndex); UNWRAP (rs, s, drawWindowTexture); - if (rs->function.handle) - destroyFragmentFunction (s, rs->function.handle); - free (rs); } commit 19b6184c5db1e44edea8f0e689f57604a6436df2 Author: Erkin Bahceci <[EMAIL PROTECTED]> Date: Sun Nov 4 18:32:04 2007 +0100 Fix fragment function leak. diff --git a/src/reflex/reflex.c b/src/reflex/reflex.c index ecc2945..6d57e0c 100644 --- a/src/reflex/reflex.c +++ b/src/reflex/reflex.c @@ -165,6 +165,9 @@ getReflexFragmentFunction (CompScreen *s, handle = createFragmentFunction (s, "reflex", data); + if (rs->function.handle) + destroyFragmentFunction (s, rs->function.handle); + rs->function.handle = handle; rs->function.target = target; rs->function.param = param; commit 4ab8bfd507d51cad96887bdcef3de152e58fd90e Author: Danny Baumann <[EMAIL PROTECTED]> Date: Thu Nov 1 18:48:21 2007 +0100 Don't showdesktop dock windows. diff --git a/src/showdesktop/showdesktop.c b/src/showdesktop/showdesktop.c index 6b5f35d..df14817 100644 --- a/src/showdesktop/showdesktop.c +++ b/src/showdesktop/showdesktop.c @@ -145,6 +145,10 @@ isSDWin (CompWindow *w) if (!matchEval (showdesktopGetWindowMatch (w->screen), w)) return FALSE; + if (w->wmType & (CompWindowTypeDesktopMask | + CompWindowTypeDockMask)) + return FALSE; + if (w->state & CompWindowStateSkipPagerMask) return FALSE; commit 2fdd2614490504417e40fe32ee2d1ddb326fbe0e Author: Danny Baumann <[EMAIL PROTECTED]> Date: Thu Nov 1 18:47:22 2007 +0100 Compare to real window type to also catch docks that have below state. diff --git a/src/fadedesktop/fadedesktop.c b/src/fadedesktop/fadedesktop.c index 2cce8a6..c3571b5 100644 --- a/src/fadedesktop/fadedesktop.c +++ b/src/fadedesktop/fadedesktop.c @@ -114,8 +114,8 @@ static Bool isFDWin(CompWindow *w) if (!w->managed) return FALSE; - if (w->type & (CompWindowTypeDesktopMask | - CompWindowTypeDockMask)) + if (w->wmType & (CompWindowTypeDesktopMask | + CompWindowTypeDockMask)) return FALSE; if (w->state & CompWindowStateSkipPagerMask) commit d789be6d4861fca60e0882581afe23997094995f Author: Danny Baumann <[EMAIL PROTECTED]> Date: Thu Nov 1 18:47:21 2007 +0100 Don't touch docks and desktops as well as skip pager windows. diff --git a/src/fadedesktop/fadedesktop.c b/src/fadedesktop/fadedesktop.c index c81a75e..2cce8a6 100644 --- a/src/fadedesktop/fadedesktop.c +++ b/src/fadedesktop/fadedesktop.c @@ -114,6 +114,13 @@ static Bool isFDWin(CompWindow *w) if (!w->managed) return FALSE; + if (w->type & (CompWindowTypeDesktopMask | + CompWindowTypeDockMask)) + return FALSE; + + if (w->state & CompWindowStateSkipPagerMask) + return FALSE; + if (!matchEval(fadedesktopGetWindowMatch(w->screen), w)) return FALSE; commit b74289c973f788e27546705b12cffb990de129c5 Author: Guillaume Seguin <[EMAIL PROTECTED]> Date: Sat Oct 20 22:09:03 2007 +0200 * Bump VERSION to 0.6.1 diff --git a/VERSION b/VERSION index de3b1c2..161c807 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -VERSION=0.6.0 +VERSION=0.6.1 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]