Hello community,
here is the log from the commit of package compiz
checked in at Sat Jun 3 00:52:40 CEST 2006.
--------
--- compiz/compiz.changes 2006-05-26 22:53:00.000000000 +0200
+++ compiz/compiz.changes 2006-06-02 15:01:31.000000000 +0200
@@ -1,0 +2,15 @@
+Fri Jun 2 14:39:17 CEST 2006 - dreveman@suse.de
+
+- Don't show fallback name in titlebar. (bnc 173059)
+- Fix keyboard movement issues. (bnc 179902)
+- Fix clipping issue with switcher. (bnc 179828)
+- Disable skydome animation while cube is unfolded. (bnc 179833)
+- Save initial viewport when startup notification is received.
+ (bnc 180224)
+- Add hide_skip_taskbar_windows option. (bnc 180055)
+- Set _NET_WM_DESKTOP on all windows to 0; KDE's pager and
+ tasklist require this to be set. (bnc 178320)
+- Hide tooltips on NotifyGrab. (bnc 180692)
+- Include java window placement workaround. (bnc 151836)
+
+-------------------------------------------------------------------
Old:
----
compiz-0.0.11.tar.bz2
New:
----
compiz-0.0.12.tar.bz2
java-config-notify.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ compiz.spec ++++++
--- /var/tmp/diff_new_pack.ZS8PZd/_old 2006-06-03 00:52:14.000000000 +0200
+++ /var/tmp/diff_new_pack.ZS8PZd/_new 2006-06-03 00:52:14.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package compiz (Version cvs_060526)
+# spec file for package compiz (Version cvs_060602)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -17,20 +17,21 @@
PreReq: %fillup_prereq
Requires: libpng libdrm gconf2 gtk2 gnome-desktop control-center2 libsvg libsvg-cairo libwnck xgl-hardware-list >= 060526
Autoreqprov: on
-Version: cvs_060526
-Release: 2
+Version: cvs_060602
+Release: 1
Summary: OpenGL window and compositing manager.
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 x86_64 ppc ppc64 ia64
### /bin/ls *.tar.{gz,bz2} 2>/dev/null|perl -ne 'print "Source$n: ".$_; $n++;'
Source: Mesa-CVS-20060502.tar.bz2
-Source1: compiz-0.0.11.tar.bz2
+Source1: compiz-0.0.12.tar.bz2
Source2: gnome-xgl-settings-0.6.tar.gz
### /bin/ls *.{diff,patch} | perl -ne 'print "Patch$n: ".$_; $n++;'
Patch: Mesa-6.4.1-x86_64-fixes-1.patch
Patch1: Mesa-configs.diff
Patch2: compiz-audible-bell-off.patch
Patch3: compiz-wobbly-off.patch
+Patch4: java-config-notify.diff
%description
Compiz is an OpenGL compositing manager that use
@@ -51,8 +52,9 @@
%setup -q -n . -D -T -b 0 -b 1 -b 2
patch -d Mesa -p0 < $RPM_SOURCE_DIR/Mesa-6.4.1-x86_64-fixes-1.patch
patch -d Mesa -p0 < $RPM_SOURCE_DIR/Mesa-configs.diff
-patch -d compiz-0.0.11 -p0 < $RPM_SOURCE_DIR/compiz-audible-bell-off.patch
-patch -d compiz-0.0.11 -p0 < $RPM_SOURCE_DIR/compiz-wobbly-off.patch
+patch -d compiz-0.0.12 -p0 < $RPM_SOURCE_DIR/compiz-audible-bell-off.patch
+patch -d compiz-0.0.12 -p0 < $RPM_SOURCE_DIR/compiz-wobbly-off.patch
+patch -d compiz-0.0.12 -p0 < $RPM_SOURCE_DIR/java-config-notify.diff
%build
PREFIX=/usr
@@ -138,6 +140,18 @@
/etc/opt/gnome/gconf/schemas/compiz.schemas
%changelog -n compiz
+* Fri Jun 02 2006 - dreveman@suse.de
+- Don't show fallback name in titlebar. (bnc 173059)
+- Fix keyboard movement issues. (bnc 179902)
+- Fix clipping issue with switcher. (bnc 179828)
+- Disable skydome animation while cube is unfolded. (bnc 179833)
+- Save initial viewport when startup notification is received.
+ (bnc 180224)
+- Add hide_skip_taskbar_windows option. (bnc 180055)
+- Set _NET_WM_DESKTOP on all windows to 0; KDE's pager and
+ tasklist require this to be set. (bnc 178320)
+- Hide tooltips on NotifyGrab. (bnc 180692)
+- Include java window placement workaround. (bnc 151836)
* Fri May 26 2006 - danw@suse.de
- Update gnome-xgl-settings to 0.6, fixing:
- Don't consider 3D to be configured unless it's configured with
++++++ compiz-0.0.11.tar.bz2 -> compiz-0.0.12.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/ChangeLog new/compiz-0.0.12/ChangeLog
--- old/compiz-0.0.11/ChangeLog 2006-05-26 12:05:57.000000000 +0200
+++ new/compiz-0.0.12/ChangeLog 2006-06-02 14:10:09.000000000 +0200
@@ -1,3 +1,69 @@
+2006-06-02 David Reveman
+
+ * configure.ac: Bump version to 0.0.12.
+
+ * src/event.c (handleEvent): Fix typo.
+
+ * gnome/window-decorator/gnome-window-decorator.c:
+ Hide tooltips on NotifyGrab. (bnc #180692)
+
+2006-06-01 Dan Winship
+
+ * src/event.c (handleEvent): If we receive a _NET_SHOWING_DESKTOP
+ request with no window set, set the flag on all screens. (Fixes
+ the KDE "show desktop" applet.) Also, don't allow a client to
+ change its _NET_WM_DESKTOP.
+
+ * src/window.c (addWindow): Set _NET_WM_DESKTOP on all windows to
+ 0; KDE's pager and tasklist require this to be set. (bnc 178320)
+
+2006-06-01 David Reveman
+
+ * include/compiz.h:
+ * src/window.c: Add updateWindowClass.
+
+2006-05-31 David Reveman
+
+ * include/compiz.h:
+ * src/screen.c:
+ * src/display.c: Add hide_skip_taskbar_windows option. (bnc 180055)
+
+ * include/compiz.h:
+ * src/window.c: Add getStartupId.
+
+ * src/screen.c: Save initial viewport when startup notification
+ is received. Fix implementation of applyStartupProperties.
+ (bnc 180224)
+
+ * src/event.c (handleEvent): Handle startup ID property changes.
+
+ * plugins/place.c: Adjust work area to initial viewport.
+
+ * plugins/cube.c (cubePaintTransformedScreen): Disable skydome
+ animation while cube is unfolded. (bnc 179833)
+
+ * plugins/switcher.c (switchPaintWindow): Make sure selected window is
+ not clipped incorrectly when some window is transformed. (bnc 179828)
+
+ * plugins/move.c (moveHandleEvent): Initialize xRoot and yRoot.
+ (bnc 179902)
+
+ * src/Makefile.am (INCLUDES): Add @GL_CFLAGS@. (Eric Work)
+
+2006-05-30 Dan Winship
+
+ * configure.ac: Check libwnck for wnck_window_has_name (new in
+ HEAD).
+
+ * gnome/window-decorator/gnome-window-decorator.c
+ (wnck_window_get_real_name): #if HAVE_WNCK_WINDOW_HAS_NAME,
+ redefine wnck_window_get_name to return NULL if the window only
+ has a fallback name. bnc 173059.
+
+ * src/event.c (handleEvent): call moveInputFocusToOtherWindow()
+ before destroyWindow() when processing a DestroyNotify, or else
+ the input focus can get stranded.
+
2006-05-26 David Reveman
* plugins/compiz.schemas.in.in: Regen.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/config.h.in new/compiz-0.0.12/config.h.in
--- old/compiz-0.0.11/config.h.in 2006-05-21 15:19:24.000000000 +0200
+++ new/compiz-0.0.12/config.h.in 2006-06-02 14:10:42.000000000 +0200
@@ -54,6 +54,9 @@
/* Define to 1 if you have the header file. */
#undef HAVE_UNISTD_H
+/* Define to 1 if you have the `wnck_window_has_name' function. */
+#undef HAVE_WNCK_WINDOW_HAS_NAME
+
/* Name of package */
#undef PACKAGE
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/configure new/compiz-0.0.12/configure
--- old/compiz-0.0.11/configure 2006-05-21 15:19:14.000000000 +0200
+++ new/compiz-0.0.12/configure 2006-06-02 14:10:31.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for compiz 0.0.11.
+# Generated by GNU Autoconf 2.59 for compiz 0.0.12.
#
# Report bugs to .
#
@@ -423,8 +423,8 @@
# Identity of this package.
PACKAGE_NAME='compiz'
PACKAGE_TARNAME='compiz'
-PACKAGE_VERSION='0.0.11'
-PACKAGE_STRING='compiz 0.0.11'
+PACKAGE_VERSION='0.0.12'
+PACKAGE_STRING='compiz 0.0.12'
PACKAGE_BUGREPORT='davidr@novell.com'
# Factoring default headers for most tests.
@@ -1013,7 +1013,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures compiz 0.0.11 to adapt to many kinds of systems.
+\`configure' configures compiz 0.0.12 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1079,7 +1079,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of compiz 0.0.11:";;
+ short | recursive ) echo "Configuration of compiz 0.0.12:";;
esac
cat <<\_ACEOF
@@ -1260,7 +1260,7 @@
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-compiz configure 0.0.11
+compiz configure 0.0.12
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1274,7 +1274,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by compiz $as_me 0.0.11, which was
+It was created by compiz $as_me 0.0.12, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -1919,7 +1919,7 @@
# Define the identity of the package.
PACKAGE='compiz'
- VERSION='0.0.11'
+ VERSION='0.0.12'
cat >>confdefs.h <<_ACEOF
@@ -23153,6 +23153,116 @@
use_gnome=yes
fi
if test "x$use_gnome" = "xyes"; then
+ save_CFLAGS="$CFLAGS"
+ save_LIBSS="$LIBS"
+ CFLAGS="$CFLAGS $GNOME_WINDOW_DECORATOR_CFLAGS"
+ LIBS="$LIBS $GNOME_WINDOW_DECORATOR_LIBS"
+
+for ac_func in wnck_window_has_name
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case declares $ac_func.
+ For example, HP-UX 11i declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer to if __STDC__ is defined, since
+ exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include
+#else
+# include
+#endif
+
+#undef $ac_func
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+char (*f) () = $ac_func;
+#endif
+#ifdef __cplusplus
+}
+#endif
+
+int
+main ()
+{
+return f != $ac_func;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_var=no"
+fi
+rm -f conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ CFLAGS="$save_CFLAGS"
+ LIBS="$save_LIBS"
+ fi
+ if test "x$use_gnome" = "xyes"; then
pkg_failed=no
echo "$as_me:$LINENO: checking for GNOME_WINDOW_SETTINGS" >&5
@@ -23800,7 +23910,7 @@
} >&5
cat >&5 <<_CSEOF
-This file was extended by compiz $as_me 0.0.11, which was
+This file was extended by compiz $as_me 0.0.12, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -23863,7 +23973,7 @@
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-compiz config.status 0.0.11
+compiz config.status 0.0.12
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/configure.ac new/compiz-0.0.12/configure.ac
--- old/compiz-0.0.11/configure.ac 2006-05-21 15:18:30.000000000 +0200
+++ new/compiz-0.0.12/configure.ac 2006-06-02 14:09:48.000000000 +0200
@@ -1,6 +1,6 @@
AC_PREREQ(2.57)
-AC_INIT([compiz], [0.0.11], [davidr@novell.com])
+AC_INIT([compiz], [0.0.12], [davidr@novell.com])
AC_CONFIG_AUX_DIR(config)
@@ -188,6 +188,15 @@
pangocairo,
[use_gnome=yes], [use_gnome=no])
if test "x$use_gnome" = "xyes"; then
+ save_CFLAGS="$CFLAGS"
+ save_LIBSS="$LIBS"
+ CFLAGS="$CFLAGS $GNOME_WINDOW_DECORATOR_CFLAGS"
+ LIBS="$LIBS $GNOME_WINDOW_DECORATOR_LIBS"
+ AC_CHECK_FUNCS(wnck_window_has_name)
+ CFLAGS="$save_CFLAGS"
+ LIBS="$save_LIBS"
+ fi
+ if test "x$use_gnome" = "xyes"; then
PKG_CHECK_MODULES(GNOME_WINDOW_SETTINGS,
gnome-window-settings-2.0 gnome-desktop-2.0,
[use_gnome=yes], [use_gnome=no])
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/gnome/window-decorator/gnome-window-decorator.c new/compiz-0.0.12/gnome/window-decorator/gnome-window-decorator.c
--- old/compiz-0.0.11/gnome/window-decorator/gnome-window-decorator.c 2006-05-20 07:20:17.000000000 +0200
+++ new/compiz-0.0.12/gnome/window-decorator/gnome-window-decorator.c 2006-06-01 13:27:19.000000000 +0200
@@ -17,6 +17,10 @@
* Boston, MA 02111-1307, USA.
*/
+#ifdef HAVE_CONFIG_H
+#include
+#endif
+
#include
#include
#include
@@ -2407,6 +2411,15 @@
gdk_error_trap_pop ();
}
+#if HAVE_WNCK_WINDOW_HAS_NAME
+static const char *
+wnck_window_get_real_name (WnckWindow *win)
+{
+ return wnck_window_has_name (win) ? wnck_window_get_name (win) : NULL;
+}
+#define wnck_window_get_name wnck_window_get_real_name
+#endif
+
static gint
max_window_name_width (WnckWindow *win)
{
@@ -3439,8 +3452,7 @@
}
break;
case LeaveNotify:
- if (xevent->xcrossing.mode != NotifyGrab)
- hide_tooltip ();
+ hide_tooltip ();
break;
}
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/include/compiz.h new/compiz-0.0.12/include/compiz.h
--- old/compiz-0.0.11/include/compiz.h 2006-05-25 05:43:37.000000000 +0200
+++ new/compiz-0.0.12/include/compiz.h 2006-06-02 04:41:57.000000000 +0200
@@ -420,7 +420,8 @@
#define COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED 49
#define COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_HORZ 50
#define COMP_DISPLAY_OPTION_TOGGLE_WINDOW_MAXIMIZED_VERT 51
-#define COMP_DISPLAY_OPTION_NUM 52
+#define COMP_DISPLAY_OPTION_HIDE_SKIP_TASKBAR_WINDOWS 52
+#define COMP_DISPLAY_OPTION_NUM 53
typedef CompOption *(*GetDisplayOptionsProc) (CompDisplay *display,
int *count);
@@ -487,6 +488,7 @@
Atom winBrightnessAtom;
Atom winSaturationAtom;
Atom winActiveAtom;
+ Atom winDesktopAtom;
Atom workareaAtom;
@@ -575,6 +577,8 @@
Atom versionAtom;
Atom atomPairAtom;
+ Atom startupIdAtom;
+
unsigned int lastPing;
CompTimeoutHandle pingHandle;
@@ -1129,6 +1133,7 @@
typedef struct _CompStartupSequence {
struct _CompStartupSequence *next;
SnStartupSequence *sequence;
+ unsigned int viewport;
} CompStartupSequence;
typedef struct _CompFBConfig {
@@ -1549,6 +1554,8 @@
int destroyRefCnt;
int unmapRefCnt;
+ unsigned int initialViewport;
+
Bool placed;
Bool minimized;
Bool inShowDesktopMode;
@@ -1676,6 +1683,12 @@
Window
getClientLeader (CompWindow *w);
+char *
+getStartupId (CompWindow *w);
+
+void
+updateWindowClass (CompWindow *w);
+
int
getWmState (CompDisplay *display,
Window id);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/plugins/cube.c new/compiz-0.0.12/plugins/cube.c
--- old/compiz-0.0.11/plugins/cube.c 2006-05-25 16:22:05.000000000 +0200
+++ new/compiz-0.0.12/plugins/cube.c 2006-05-29 12:27:43.000000000 +0200
@@ -1097,7 +1097,7 @@
glPushMatrix ();
- if (cs->animateSkyDome)
+ if (cs->animateSkyDome && cs->grabIndex == 0)
{
glRotatef (sAttrib->xRotate, 0.0f, 1.0f, 0.0f);
glRotatef (sAttrib->vRotate / 5.0f + 90.0f, 1.0f, 0.0f, 0.0f);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/plugins/move.c new/compiz-0.0.12/plugins/move.c
--- old/compiz-0.0.11/plugins/move.c 2006-05-25 06:17:45.000000000 +0200
+++ new/compiz-0.0.12/plugins/move.c 2006-05-31 16:37:11.000000000 +0200
@@ -492,10 +492,10 @@
if (event->xclient.data.l[2] == WmMoveResizeMoveKeyboard)
{
- warpPointer (d,
- (w->attrib.x + w->width / 2) - pointerX,
- (w->attrib.y + w->height / 2) - pointerY);
+ xRoot = w->attrib.x + (w->width / 2);
+ yRoot = w->attrib.y + (w->height / 2);
+ warpPointer (d, xRoot - pointerX, yRoot - pointerY);
moveInitiate (w, xRoot, yRoot, 0);
}
else
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/plugins/place.c new/compiz-0.0.12/plugins/place.c
--- old/compiz-0.0.11/plugins/place.c 2006-05-12 13:07:17.000000000 +0200
+++ new/compiz-0.0.12/plugins/place.c 2006-05-31 17:45:13.000000000 +0200
@@ -593,6 +593,8 @@
getOuterRectOfWindow (window, &rect);
work_area = window->screen->workArea;
+ work_area.x += (window->initialViewport - window->screen->x) *
+ window->screen->width;
center_tile_rect_in_area (&rect, &work_area);
@@ -675,9 +677,15 @@
{
CompWindow *wi;
GList *windows;
+ XRectangle work_area;
+ int x0 = (window->initialViewport - window->screen->x) *
+ window->screen->width;
PLACE_SCREEN (window->screen);
+ work_area = window->screen->workArea;
+ work_area.x += x0;
+
windows = NULL;
switch (window->type) {
@@ -703,7 +711,8 @@
if (window->type & CompWindowTypeFullscreenMask)
{
- x = y = 0;
+ x = x0;
+ y = 0;
goto done_no_constraints;
}
@@ -711,10 +720,10 @@
CompWindowStateMaximizedHorzMask))
{
if (window->state & CompWindowStateMaximizedVertMask)
- y = window->screen->workArea.y + window->input.top;
+ y = work_area.y + window->input.top;
if (window->state & CompWindowStateMaximizedHorzMask)
- x = window->screen->workArea.x + window->input.left;
+ x = work_area.x + window->input.left;
goto done;
}
@@ -842,7 +851,13 @@
*/
for (wi = window->screen->windows; wi; wi = wi->next)
{
- if (WINDOW_INVISIBLE (wi))
+ if (wi->attrib.map_state != IsViewable)
+ continue;
+
+ if (wi->attrib.x >= work_area.x + work_area.width ||
+ wi->attrib.x + wi->width <= work_area.x ||
+ wi->attrib.y >= work_area.y + work_area.height ||
+ wi->attrib.y + wi->height <= work_area.y)
continue;
if (wi->state & (CompWindowTypeDesktopMask |
@@ -856,7 +871,8 @@
}
/* "Origin" placement algorithm */
- x = y = 0;
+ x = x0;
+ y = 0;
if (find_first_fit (window, windows, x, y, &x, &y))
goto done_check_denied_focus;
@@ -942,22 +958,20 @@
g_list_free (windows);
done:
- if (x + window->width + window->input.right >
- window->screen->workArea.x + window->screen->workArea.width)
- x = window->screen->workArea.x + window->screen->workArea.width
- - window->width - window->input.right;
+ if (x + window->width + window->input.right > work_area.x + work_area.width)
+ x = work_area.x + work_area.width - window->width - window->input.right;
- if (x - window->input.left < window->screen->workArea.x)
- x = window->screen->workArea.x + window->input.left;
+ if (x - window->input.left < work_area.x)
+ x = work_area.x + window->input.left;
done_no_x_constraints:
if (y + window->height + window->input.bottom >
- window->screen->workArea.y + window->screen->workArea.height)
- y = window->screen->workArea.y + window->screen->workArea.height
+ work_area.y + work_area.height)
+ y = work_area.y + work_area.height
- window->height - window->input.bottom;
- if (y - window->input.top < window->screen->workArea.y)
- y = window->screen->workArea.y + window->input.top;
+ if (y - window->input.top < work_area.y)
+ y = work_area.y + window->input.top;
done_no_constraints:
*new_x = x;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/plugins/switcher.c new/compiz-0.0.12/plugins/switcher.c
--- old/compiz-0.0.11/plugins/switcher.c 2006-05-26 02:11:36.000000000 +0200
+++ new/compiz-0.0.12/plugins/switcher.c 2006-05-29 12:16:15.000000000 +0200
@@ -1665,10 +1665,15 @@
glTranslatef (0.0f, 0.0f, MIN (ss->translate, ss->sTranslate));
}
+ glPushAttrib (GL_STENCIL_BUFFER_BIT);
+ glDisable (GL_STENCIL_TEST);
+
UNWRAP (ss, s, paintWindow);
status = (*s->paintWindow) (w, attrib, region, mask);
WRAP (ss, s, paintWindow, switchPaintWindow);
+ glPopAttrib ();
+
glPopMatrix ();
}
else if (ss->switching)
@@ -1689,10 +1694,15 @@
glPushMatrix ();
glTranslatef (0.0f, 0.0f, MIN (ss->translate, ss->sTranslate));
+ glPushAttrib (GL_STENCIL_BUFFER_BIT);
+ glDisable (GL_STENCIL_TEST);
+
UNWRAP (ss, s, paintWindow);
status = (*s->paintWindow) (w, &sAttrib, region, mask);
WRAP (ss, s, paintWindow, switchPaintWindow);
+ glPopAttrib ();
+
glPopMatrix ();
}
else
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/src/Makefile.am new/compiz-0.0.12/src/Makefile.am
--- old/compiz-0.0.11/src/Makefile.am 2006-03-03 11:06:41.000000000 +0100
+++ new/compiz-0.0.12/src/Makefile.am 2006-05-31 02:07:21.000000000 +0200
@@ -1,5 +1,6 @@
INCLUDES = \
@COMPIZ_CFLAGS@ \
+ @GL_CFLAGS@ \
-I$(top_srcdir)/include \
-DPLUGINDIR=\"$(plugindir)\" \
-DIMAGEDIR=\"$(imagedir)\"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/src/Makefile.in new/compiz-0.0.12/src/Makefile.in
--- old/compiz-0.0.11/src/Makefile.in 2006-05-21 15:19:13.000000000 +0200
+++ new/compiz-0.0.12/src/Makefile.in 2006-06-02 14:10:29.000000000 +0200
@@ -258,6 +258,7 @@
windowsettingslibdir = @windowsettingslibdir@
INCLUDES = \
@COMPIZ_CFLAGS@ \
+ @GL_CFLAGS@ \
-I$(top_srcdir)/include \
-DPLUGINDIR=\"$(plugindir)\" \
-DIMAGEDIR=\"$(imagedir)\"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/src/display.c new/compiz-0.0.12/src/display.c
--- old/compiz-0.0.11/src/display.c 2006-05-24 23:01:45.000000000 +0200
+++ new/compiz-0.0.12/src/display.c 2006-06-02 04:41:57.000000000 +0200
@@ -140,6 +140,8 @@
#define AUDIBLE_BELL_DEFAULT TRUE
+#define HIDE_SKIP_TASKBAR_WINDOWS_DEFAULT TRUE
+
#define NUM_OPTIONS(d) (sizeof ((d)->opt) / sizeof (CompOption))
static char *textureFilter[] = { "Fast", "Good", "Best" };
@@ -498,6 +500,14 @@
o->value.bind.type = CompBindingTypeNone;
o->value.bind.u.key.modifiers = 0;
o->value.bind.u.key.keycode = 0;
+
+ o = &display->opt[COMP_DISPLAY_OPTION_HIDE_SKIP_TASKBAR_WINDOWS];
+ o->name = "hide_skip_taskbar_windows";
+ o->shortDesc = "Hide Skip Taskbar Windows";
+ o->longDesc = "Hide windows not in taskbar when entering show "
+ "desktop mode";
+ o->type = CompOptionTypeBool;
+ o->value.b = HIDE_SKIP_TASKBAR_WINDOWS_DEFAULT;
}
CompOption *
@@ -579,6 +589,7 @@
case COMP_DISPLAY_OPTION_CLICK_TO_FOCUS:
case COMP_DISPLAY_OPTION_AUTORAISE:
case COMP_DISPLAY_OPTION_RAISE_ON_CLICK:
+ case COMP_DISPLAY_OPTION_HIDE_SKIP_TASKBAR_WINDOWS:
if (compSetBoolOption (o, value))
return TRUE;
break;
@@ -1780,6 +1791,8 @@
d->winActiveAtom = XInternAtom (dpy, "_NET_ACTIVE_WINDOW", 0);
+ d->winDesktopAtom = XInternAtom (dpy, "_NET_WM_DESKTOP", 0);
+
d->workareaAtom = XInternAtom (dpy, "_NET_WORKAREA", 0);
d->desktopViewportAtom = XInternAtom (dpy, "_NET_DESKTOP_VIEWPORT", 0);
@@ -1893,6 +1906,8 @@
d->versionAtom = XInternAtom (dpy, "VERSION", 0);
d->atomPairAtom = XInternAtom (dpy, "ATOM_PAIR", 0);
+ d->startupIdAtom = XInternAtom (dpy, "_NET_STARTUP_ID", 0);
+
d->snDisplay = sn_display_new (dpy, NULL, NULL);
if (!d->snDisplay)
return FALSE;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/src/event.c new/compiz-0.0.12/src/event.c
--- old/compiz-0.0.11/src/event.c 2006-05-25 15:54:12.000000000 +0200
+++ new/compiz-0.0.12/src/event.c 2006-06-02 14:06:20.000000000 +0200
@@ -313,8 +313,8 @@
w = findWindowAtDisplay (d, event->xdestroywindow.window);
if (w)
{
- destroyWindow (w);
moveInputFocusToOtherWindow (w);
+ destroyWindow (w);
}
break;
case MapNotify:
@@ -1012,6 +1012,24 @@
if (w)
freeWindowIcons (w);
}
+ else if (event->xproperty.atom == d->startupIdAtom)
+ {
+ w = findWindowAtDisplay (d, event->xproperty.window);
+ if (w)
+ {
+ if (w->startupId)
+ free (w->startupId);
+
+ w->startupId = getStartupId (w);
+ }
+ }
+ else if (event->xproperty.atom == d->winDesktopAtom)
+ {
+ if (getWindowProp32 (d, event->xproperty.window,
+ d->winDesktopAtom, 1) != 0)
+ setWindowProp32 (d, event->xproperty.window,
+ d->winDesktopAtom, 0);
+ }
break;
case MotionNotify:
break;
@@ -1249,13 +1267,16 @@
}
else if (event->xclient.message_type == d->showingDesktopAtom)
{
- s = findScreenAtDisplay (d, event->xclient.window);
- if (s)
+ for (s = d->screens; s; s = s->next)
{
- if (event->xclient.data.l[0])
- enterShowDesktopMode (s);
- else
- leaveShowDesktopMode (s, NULL);
+ if (event->xclient.window == s->root ||
+ event->xclient.window == None)
+ {
+ if (event->xclient.data.l[0])
+ enterShowDesktopMode (s);
+ else
+ leaveShowDesktopMode (s, NULL);
+ }
}
}
break;
@@ -1275,6 +1296,10 @@
if (!(w->state & CompWindowStateHiddenMask))
{
+ w->initialViewport = w->screen->x;
+
+ applyStartupProperties (w->screen, w);
+
XMapWindow (d->display, event->xmaprequest.window);
updateWindowAttributes (w, FALSE);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/src/screen.c new/compiz-0.0.12/src/screen.c
--- old/compiz-0.0.11/src/screen.c 2006-05-21 14:23:26.000000000 +0200
+++ new/compiz-0.0.12/src/screen.c 2006-05-31 15:36:15.000000000 +0200
@@ -368,6 +368,7 @@
s->next = screen->startupSequences;
s->sequence = sequence;
+ s->viewport = screen->x;
screen->startupSequences = s;
@@ -2588,79 +2589,50 @@
applyStartupProperties (CompScreen *screen,
CompWindow *window)
{
- CompStartupSequence *s = NULL;
+ CompStartupSequence *s;
const char *startupId = window->startupId;
- printf ("Applying startup props to %d id \"%s\"\n",
- (int) window->id, window->startupId ? window->startupId : "(none)");
-
if (!startupId)
{
- const char *wmClass;
-
- for (s = screen->startupSequences; s; s = s->next)
- {
- wmClass = sn_startup_sequence_get_wmclass (s->sequence);
- if (!wmClass)
- continue;
-
- if ((window->resClass && strcmp (wmClass, window->resClass) == 0) ||
- (window->resName && strcmp (wmClass, window->resName) == 0))
- {
- startupId = sn_startup_sequence_get_id (s->sequence);
+ CompWindow *leader;
- window->startupId = strdup (startupId);
-
- printf ("Ending legacy sequence %s due to window %d\n",
- startupId, (int) window->id);
-
- sn_startup_sequence_complete (s->sequence);
- break;
- }
- }
+ leader = findWindowAtScreen (screen, window->clientLeader);
+ if (leader)
+ startupId = leader->startupId;
if (!startupId)
return;
}
- if (!s)
+ for (s = screen->startupSequences; s; s = s->next)
{
const char *id;
- for (s = screen->startupSequences; s; s = s->next)
- {
- id = sn_startup_sequence_get_id (s->sequence);
-
- if (strcmp (id, startupId) == 0)
- break;
- }
+ id = sn_startup_sequence_get_id (s->sequence);
+ if (strcmp (id, startupId) == 0)
+ break;
}
if (s)
- {
- printf ("Found startup sequence for window %d ID \"%s\"\n",
- (int) window->id, startupId);
- }
- else
- {
- printf ("Did not find startup sequence for window %d ID \"%s\"\n",
- (int) window->id, startupId);
- }
+ window->initialViewport = s->viewport;
}
void
enterShowDesktopMode (CompScreen *s)
{
+ CompDisplay *d = s->display;
CompWindow *w;
unsigned long data = 1;
int count = 0;
+ CompOption *st = &d->opt[COMP_DISPLAY_OPTION_HIDE_SKIP_TASKBAR_WINDOWS];
s->showingDesktopMask = ~(CompWindowTypeDesktopMask |
CompWindowTypeDockMask);
for (w = s->windows; w; w = w->next)
{
- if (s->showingDesktopMask & w->type)
+ if ((s->showingDesktopMask & w->type) &&
+ (!(w->state & CompWindowStateSkipTaskbarMask) || st->value.b))
{
if ((*s->focusWindow) (w))
{
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.11/src/window.c new/compiz-0.0.12/src/window.c
--- old/compiz-0.0.11/src/window.c 2006-05-26 03:46:05.000000000 +0200
+++ new/compiz-0.0.12/src/window.c 2006-06-02 14:01:23.000000000 +0200
@@ -311,6 +311,63 @@
return getClientLeaderOfAncestor (w);
}
+char *
+getStartupId (CompWindow *w)
+{
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ unsigned char *data;
+
+ result = XGetWindowProperty (w->screen->display->display, w->id,
+ w->screen->display->startupIdAtom,
+ 0L, 1024L, False,
+ w->screen->display->utf8StringAtom,
+ &actual, &format,
+ &n, &left, &data);
+
+ if (result == Success && n && data)
+ {
+ char *id;
+
+ id = strdup ((char *) data);
+ XFree ((void *) data);
+
+ return id;
+ }
+
+ return NULL;
+}
+
+void
+updateWindowClass (CompWindow *w)
+{
+ XClassHint classHint;
+ int status;
+
+ if (w->resName)
+ {
+ free (w->resName);
+ w->resName = NULL;
+ }
+
+ if (w->resClass)
+ {
+ free (w->resClass);
+ w->resClass = NULL;
+ }
+
+ status = XGetClassHint (w->screen->display->display, w->id, &classHint);
+ if (status)
+ {
+ if (classHint.res_name)
+ w->resName = strdup (classHint.res_name);
+
+ if (classHint.res_class)
+ w->resClass = strdup (classHint.res_class);
+ }
+}
+
int
getWmState (CompDisplay *display,
Window id)
@@ -1349,6 +1406,8 @@
w->inShowDesktopMode = FALSE;
w->hidden = FALSE;
+ w->initialViewport = screen->x;
+
w->pendingUnmaps = 0;
w->startupId = NULL;
@@ -1537,10 +1596,16 @@
updateWmHints (w);
+ setWindowProp32 (w->screen->display, w->id,
+ w->screen->display->winDesktopAtom,
+ 0);
+
XGetTransientForHint (w->screen->display->display,
w->id, &w->transientFor);
w->clientLeader = getClientLeader (w);
+ if (!w->clientLeader)
+ w->startupId = getStartupId (w);
w->wmType = getWindowType (w->screen->display, w->id);
@@ -3531,6 +3596,9 @@
CompWindowTypeDockMask))
return FALSE;
+ if (w->initialViewport != w->screen->x)
+ return FALSE;
+
if (!w->inputHint &&
!(w->protocols & CompWindowProtocolTakeFocusMask))
return FALSE;
++++++ java-config-notify.diff ++++++
--- src/event.c 31 May 2006 21:50:37 -0000 1.45
+++ src/event.c 1 Jun 2006 12:01:07 -0000
@@ -1288,6 +1288,8 @@
{
w->initialViewport = w->screen->x;
+ updateWindowClass (w);
+
applyStartupProperties (w->screen, w);
XMapWindow (d->display, event->xmaprequest.window);
--- src/window.c 1 Jun 2006 11:58:13 -0000 1.52
+++ src/window.c 1 Jun 2006 12:01:08 -0000
@@ -2286,6 +2286,9 @@
}
XConfigureWindow (w->screen->display->display, w->id, xwcm, xwc);
+
+ if (w->resName && strncmp (w->resName, "sun-awt-X11", 11) == 0)
+ sendConfigureNotify (w);
}
void
@@ -2301,6 +2304,9 @@
XMoveWindow (w->screen->display->display, w->frame,
w->attrib.x - w->input.left,
w->attrib.y - w->input.top);
+
+ if (w->resName && strncmp (w->resName, "sun-awt-X11", 11) == 0)
+ sendConfigureNotify (w);
}
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit-unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit-help@opensuse.org