Hello community,
here is the log from the commit of package compiz
checked in at Thu Apr 6 00:29:13 CEST 2006.
--------
--- compiz/compiz.changes 2006-04-03 17:16:32.000000000 +0200
+++ compiz/compiz.changes 2006-04-06 00:14:08.000000000 +0200
@@ -1,0 +2,13 @@
+Thu Apr 6 00:08:10 CEST 2006 - dreveman@suse.de
+
+- Fix offset direction so that water looks better.
+- Add offset scale option.
+- Fix issue that cause wrong window to get focus when using
+ "focus follow mouse".
+- Add constrain_y option to move plugin so that acts more like
+ metacity and doesn't allow you to move windows so that the
+ titlebar is invisible.
+- Workaround that fix a FBO/raster-position issue found on newer
+ nvidia drivers.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ compiz.spec ++++++
--- /var/tmp/diff_new_pack.9Rc7qf/_old 2006-04-06 00:28:27.000000000 +0200
+++ /var/tmp/diff_new_pack.9Rc7qf/_new 2006-04-06 00:28:27.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package compiz (Version cvs_060403 )
+# spec file for package compiz (Version cvs_060405 )
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -17,7 +17,7 @@
PreReq: %fillup_prereq
Requires: libpng libdrm gconf2 gtk2 gnome-desktop control-center2 libsvg libsvg-cairo libwnck
Autoreqprov: on
-Version: cvs_060403
+Version: cvs_060405
Release: 1
Summary: OpenGL window and compositing manager.
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -127,6 +127,16 @@
/opt/gnome/share/pixmaps/xgl-switch-capplet.png
%changelog -n compiz
+* Thu Apr 06 2006 - dreveman@suse.de
+- Fix offset direction so that water looks better.
+- Add offset scale option.
+- Fix issue that cause wrong window to get focus when using
+ "focus follow mouse".
+- Add constrain_y option to move plugin so that acts more like
+ metacity and doesn't allow you to move windows so that the
+ titlebar is invisible.
+- Workaround that fix a FBO/raster-position issue found on newer
+ nvidia drivers.
* Mon Apr 03 2006 - dreveman@suse.de
- Update to CVS version.
- Remove scissor workaround, now fixed in Mesa package.
++++++ compiz-0.0.8.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.8/ChangeLog new/compiz-0.0.8/ChangeLog
--- old/compiz-0.0.8/ChangeLog 2006-04-03 08:30:19.000000000 +0200
+++ new/compiz-0.0.8/ChangeLog 2006-04-05 23:15:27.000000000 +0200
@@ -1,8 +1,27 @@
+2006-04-05 David Reveman
+
+ * plugins/water.c (fboEpilogue): Reset raster position. Avoids
+ an FBO/raster-position issue found in newer nvidia drivers.
+
+ * plugins/move.c: Add constrain_y option that constrains window
+ movement so that top of window is always visible (on by default).
+
+ * src/event.c (handleEvent): Change active window property even though
+ it's not different than the window we currently have as active.
+
+ * src/window.c (moveInputFocusToWindow): Set focus even though
+ the window is considered the active window.
+
2006-04-03 David Reveman
+ * plugins/water.c: Use char everywhere instead.
+ Fix offset direction (P-a Bäckström).
+ Add offset scale option.
+
* plugins/water.c: (loadFragmentProgram): GLubyte -> const GLbyte.
(loadWaterProgram): char -> GLbyte.
(loadBumpMapProgram): char -> GLbyte.
+ Use char everywhere.
* configure.ac: Bump version to 0.0.8.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.8/plugins/move.c new/compiz-0.0.8/plugins/move.c
--- old/compiz-0.0.8/plugins/move.c 2006-03-29 15:41:13.000000000 +0200
+++ new/compiz-0.0.8/plugins/move.c 2006-04-05 18:28:14.000000000 +0200
@@ -41,6 +41,8 @@
#define MOVE_OPACITY_MIN 1
#define MOVE_OPACITY_MAX 100
+#define MOVE_CONSTRAIN_Y_DEFAULT TRUE
+
struct _MoveKeys {
char *name;
int dx;
@@ -66,10 +68,11 @@
KeyCode key[NUM_KEYS];
} MoveDisplay;
-#define MOVE_SCREEN_OPTION_INITIATE 0
-#define MOVE_SCREEN_OPTION_TERMINATE 1
-#define MOVE_SCREEN_OPTION_OPACITY 2
-#define MOVE_SCREEN_OPTION_NUM 3
+#define MOVE_SCREEN_OPTION_INITIATE 0
+#define MOVE_SCREEN_OPTION_TERMINATE 1
+#define MOVE_SCREEN_OPTION_OPACITY 2
+#define MOVE_SCREEN_OPTION_CONSTRAIN_Y 3
+#define MOVE_SCREEN_OPTION_NUM 4
typedef struct _MoveScreen {
CompOption opt[MOVE_SCREEN_OPTION_NUM];
@@ -144,6 +147,10 @@
ms->moveOpacity = (o->value.i * OPAQUE) / 100;
return TRUE;
}
+ break;
+ case MOVE_SCREEN_OPTION_CONSTRAIN_Y:
+ if (compSetBoolOption (o, value))
+ return TRUE;
default:
break;
}
@@ -183,6 +190,13 @@
o->value.i = MOVE_OPACITY_DEFAULT;
o->rest.i.min = MOVE_OPACITY_MIN;
o->rest.i.max = MOVE_OPACITY_MAX;
+
+ o = &ms->opt[MOVE_SCREEN_OPTION_CONSTRAIN_Y];
+ o->name = "constrain_y";
+ o->shortDesc = "Constrain Y";
+ o->longDesc = "Constrain Y coordinate to workspace area";
+ o->type = CompOptionTypeBool;
+ o->value.b = MOVE_CONSTRAIN_Y_DEFAULT;
}
static void
@@ -264,8 +278,6 @@
pointerDx = xRoot - ms->prevPointerX;
pointerDy = yRoot - ms->prevPointerY;
- ms->prevPointerX = xRoot;
- ms->prevPointerY = yRoot;
if (w->type & CompWindowTypeFullscreenMask)
{
@@ -298,10 +310,31 @@
else if (w->attrib.x + pointerDx > max)
pointerDx = max - w->attrib.x;
}
+
+ if (ms->opt[MOVE_SCREEN_OPTION_CONSTRAIN_Y].value.b)
+ {
+ min = s->workArea.y + w->input.top;
+ max = s->workArea.y + s->workArea.height;
+
+ if (w->attrib.y + pointerDy < min)
+ pointerDy = min - w->attrib.y;
+ else if (w->attrib.y + pointerDy > max)
+ pointerDy = max - w->attrib.y;
+ }
}
if (pointerDx || pointerDy)
+ {
moveWindow (md->w, pointerDx, pointerDy, TRUE);
+
+ ms->prevPointerX += pointerDx;
+ ms->prevPointerY += pointerDy;
+ }
+
+ if (ms->prevPointerX != xRoot || ms->prevPointerY != yRoot)
+ XWarpPointer (s->display->display, None, None, 0, 0, 0, 0,
+ ms->prevPointerX - xRoot,
+ ms->prevPointerY - yRoot);
}
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.8/plugins/water.c new/compiz-0.0.8/plugins/water.c
--- old/compiz-0.0.8/plugins/water.c 2006-04-03 08:36:16.000000000 +0200
+++ new/compiz-0.0.8/plugins/water.c 2006-04-05 22:53:34.000000000 +0200
@@ -60,6 +60,11 @@
#define WATER_TOGGLE_RAIN_KEY_DEFAULT "F9"
#define WATER_TOGGLE_RAIN_MODIFIERS_DEFAULT (CompPressMask | ShiftMask)
+#define WATER_OFFSET_SCALE_DEFAULT 1.0f
+#define WATER_OFFSET_SCALE_MIN 0.0f
+#define WATER_OFFSET_SCALE_MAX 10.0f
+#define WATER_OFFSET_SCALE_PRECISION 0.1f
+
static int displayPrivateIndex;
typedef struct _WaterDisplay {
@@ -67,10 +72,11 @@
HandleEventProc handleEvent;
} WaterDisplay;
-#define WATER_SCREEN_OPTION_INITIATE 0
-#define WATER_SCREEN_OPTION_TERMINATE 1
-#define WATER_SCREEN_OPTION_TOGGLE_RAIN 2
-#define WATER_SCREEN_OPTION_NUM 3
+#define WATER_SCREEN_OPTION_INITIATE 0
+#define WATER_SCREEN_OPTION_TERMINATE 1
+#define WATER_SCREEN_OPTION_TOGGLE_RAIN 2
+#define WATER_SCREEN_OPTION_OFFSET_SCALE 3
+#define WATER_SCREEN_OPTION_NUM 4
typedef struct _WaterScreen {
int waterTime;
@@ -104,6 +110,8 @@
unsigned char *t0;
CompTimeoutHandle timeoutHandle;
+
+ float offsetScale;
} WaterScreen;
#define GET_WATER_DISPLAY(d) \
@@ -157,6 +165,13 @@
case WATER_SCREEN_OPTION_TERMINATE:
if (compSetBindingOption (o, value))
return TRUE;
+ break;
+ case WATER_SCREEN_OPTION_OFFSET_SCALE:
+ if (compSetFloatOption (o, value))
+ {
+ ws->offsetScale = o->value.f * 50.0f;
+ return TRUE;
+ }
default:
break;
}
@@ -202,6 +217,16 @@
o->value.bind.u.key.keycode =
XKeysymToKeycode (display,
XStringToKeysym (WATER_TOGGLE_RAIN_KEY_DEFAULT));
+
+ o = &ws->opt[WATER_SCREEN_OPTION_OFFSET_SCALE];
+ o->name = "offset_scale";
+ o->shortDesc = "Offset Scale";
+ o->longDesc = "Water offset scale";
+ o->type = CompOptionTypeFloat;
+ o->value.f = WATER_OFFSET_SCALE_DEFAULT;
+ o->rest.f.min = WATER_OFFSET_SCALE_MIN;
+ o->rest.f.max = WATER_OFFSET_SCALE_MAX;
+ o->rest.f.precision = WATER_OFFSET_SCALE_PRECISION;
}
static const char *saturateFpString =
@@ -284,7 +309,7 @@
/* x/y normals from height */
"MOV v, { 0.0, 0.0, 0.75, 0.0 };"
"SUB v.x, c12.w, c10.w;"
- "SUB v.y, c21.w, c01.w;"
+ "SUB v.y, c01.w, c21.w;"
/* bumpiness */
"MUL v, v, 1.5;"
@@ -508,6 +533,16 @@
{
(*s->bindFramebuffer) (GL_FRAMEBUFFER_EXT, 0);
+ glMatrixMode (GL_PROJECTION);
+ glLoadIdentity ();
+ glMatrixMode (GL_MODELVIEW);
+ glLoadIdentity ();
+ glDepthRange (0, 1);
+ glViewport (-1, -1, 2, 2);
+ glRasterPos2f (0, 0);
+
+ s->rasterX = s->rasterY = 0;
+
glViewport (0, 0, s->width, s->height);
glMatrixMode (GL_PROJECTION);
glPopMatrix ();
@@ -703,7 +738,7 @@
for (j = 0; j < ws->width; j++)
{
v0 = (D (d12, j) - D (d10, j)) * 1.5f;
- v1 = (D (d11, j + 1) - D (d11, j - 1)) * 1.5f;
+ v1 = (D (d11, j - 1) - D (d11, j + 1)) * 1.5f;
/* 0.5 for scale */
inv = 0.5f / sqrtf (v0 * v0 + v1 * v1 + 1.0f);
@@ -1083,8 +1118,10 @@
ws->program[program]);
(*w->screen->programLocalParameter4f) (GL_FRAGMENT_PROGRAM_ARB, 0,
- texture->matrix.yy * 50.0f,
- -texture->matrix.xx * 50.0f,
+ texture->matrix.yy *
+ ws->offsetScale,
+ -texture->matrix.xx *
+ ws->offsetScale,
0.0f, 0.0f);
(*w->screen->programLocalParameter4f) (GL_FRAGMENT_PROGRAM_ARB, 1,
@@ -1107,8 +1144,10 @@
ws->program[program]);
(*w->screen->programLocalParameter4f) (GL_FRAGMENT_PROGRAM_ARB, 0,
- texture->matrix.yy * 50.0f,
- -texture->matrix.xx * 50.0f,
+ texture->matrix.yy *
+ ws->offsetScale,
+ -texture->matrix.xx *
+ ws->offsetScale,
0.0f, 0.0f);
}
@@ -1366,6 +1405,8 @@
ws->grabIndex = 0;
+ ws->offsetScale = WATER_OFFSET_SCALE_DEFAULT * 50.0f;
+
waterScreenInitOptions (ws, s->display->display);
addScreenBinding (s, &ws->opt[WATER_SCREEN_OPTION_INITIATE].value.bind);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.8/src/event.c new/compiz-0.0.8/src/event.c
--- old/compiz-0.0.8/src/event.c 2006-03-31 11:46:15.000000000 +0200
+++ new/compiz-0.0.8/src/event.c 2006-04-05 18:40:23.000000000 +0200
@@ -1147,8 +1147,7 @@
case CirculateRequest:
break;
case FocusIn:
- if (event->xfocus.window != display->activeWindow &&
- event->xfocus.mode != NotifyGrab)
+ if (event->xfocus.mode != NotifyGrab)
{
w = findWindowAtDisplay (display, event->xfocus.window);
if (w)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.8/src/window.c new/compiz-0.0.8/src/window.c
--- old/compiz-0.0.8/src/window.c 2006-03-31 15:00:01.000000000 +0200
+++ new/compiz-0.0.8/src/window.c 2006-04-05 18:42:57.000000000 +0200
@@ -2199,9 +2199,7 @@
if (modalTransient)
w = modalTransient;
- if (w->id != d->activeWindow)
- XSetInputFocus (d->display, w->id, RevertToPointerRoot,
- CurrentTime);
+ XSetInputFocus (d->display, w->id, RevertToPointerRoot, CurrentTime);
}
static Bool
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...