Hello community,
here is the log from the commit of package compiz
checked in at Sat Jun 17 00:10:10 CEST 2006.
--------
--- compiz/compiz.changes 2006-06-15 19:46:53.000000000 +0200
+++ compiz/compiz.changes 2006-06-16 23:02:18.000000000 +0200
@@ -1,0 +2,7 @@
+Fri Jun 16 22:59:39 CEST 2006 - dreveman@suse.de
+
+- Handle motif WM hints correctly. (bnc 185852)
+- Add modal dialogs to window types that should be in switcher
+ and scale mode. (bnc 185749)
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ compiz.spec ++++++
--- /var/tmp/diff_new_pack.y3OBsR/_old 2006-06-17 00:09:59.000000000 +0200
+++ /var/tmp/diff_new_pack.y3OBsR/_new 2006-06-17 00:09:59.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package compiz (Version cvs_060615)
+# spec file for package compiz (Version cvs_060616)
#
# 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 xgl-hardware-list >= 060526
Autoreqprov: on
-Version: cvs_060615
+Version: cvs_060616
Release: 1
Summary: OpenGL window and compositing manager.
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -146,6 +146,10 @@
/etc/opt/gnome/gconf/schemas/compiz.schemas
%changelog -n compiz
+* Fri Jun 16 2006 - dreveman@suse.de
+- Handle motif WM hints correctly. (bnc 185852)
+- Add modal dialogs to window types that should be in switcher
+ and scale mode. (bnc 185749)
* Thu Jun 15 2006 - dreveman@suse.de
- Fix highlighting of window buttons. (bnc 185293)
- Add --replace option to gnome-window-decorator. (bnc 185296)
++++++ compiz-0.0.13.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.13/ChangeLog new/compiz-0.0.13/ChangeLog
--- old/compiz-0.0.13/ChangeLog 2006-06-15 19:35:06.000000000 +0200
+++ new/compiz-0.0.13/ChangeLog 2006-06-16 22:53:23.000000000 +0200
@@ -1,3 +1,15 @@
+2006-06-16 David Reveman
+
+ * plugins/compiz.schemas.in.in: Regen.
+
+ * plugins/switcher.c:
+ * plugins/scale.c: Add modal dialogs and fullscreen windows
+ to default window types. (bnc 185749)
+
+ * gnome/window-decorator/gnome-window-decorator.c: Track motif
+ WM hints and disable decorations when application wants no
+ titlebar. (bnc 185852)
+
2006-06-15 David Reveman
* plugins/cube.c (cubePaintTransformedScreen): Remove
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.13/gnome/window-decorator/gnome-window-decorator.c new/compiz-0.0.13/gnome/window-decorator/gnome-window-decorator.c
--- old/compiz-0.0.13/gnome/window-decorator/gnome-window-decorator.c 2006-06-14 13:07:44.000000000 +0200
+++ new/compiz-0.0.13/gnome/window-decorator/gnome-window-decorator.c 2006-06-16 21:52:52.000000000 +0200
@@ -165,6 +165,24 @@
cairo_matrix_t m;
} quad;
+#define MWM_HINTS_DECORATIONS (1L << 1)
+
+#define MWM_DECOR_ALL (1L << 0)
+#define MWM_DECOR_BORDER (1L << 1)
+#define MWM_DECOR_HANDLE (1L << 2)
+#define MWM_DECOR_TITLE (1L << 3)
+#define MWM_DECOR_MENU (1L << 4)
+#define MWM_DECOR_MINIMIZE (1L << 5)
+#define MWM_DECOR_MAXIMIZE (1L << 6)
+
+#define PROP_MOTIF_WM_HINT_ELEMENTS 3
+
+typedef struct {
+ unsigned long flags;
+ unsigned long functions;
+ unsigned long decorations;
+} MwmHints;
+
enum {
DOUBLE_CLICK_SHADE,
DOUBLE_CLICK_MAXIMIZE
@@ -226,6 +244,7 @@
static Atom wm_move_resize_atom;
static Atom restack_window_atom;
static Atom select_window_atom;
+static Atom mwm_hints_atom;
static Atom toolkit_action_atom;
static Atom toolkit_action_main_menu_atom;
@@ -2311,6 +2330,37 @@
return TRUE;
}
+static unsigned int
+get_mwm_prop (Window xwindow)
+{
+ Display *xdisplay;
+ Atom actual;
+ int result, format;
+ unsigned long n, left;
+ MwmHints *mwm_hints;
+ unsigned int decor = MWM_DECOR_ALL;
+
+ xdisplay = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
+
+ result = XGetWindowProperty (xdisplay, xwindow, mwm_hints_atom,
+ 0L, 20L, FALSE, mwm_hints_atom,
+ &actual, &format, &n, &left,
+ (unsigned char **) &mwm_hints);
+
+ if (result == Success && n && mwm_hints)
+ {
+ if (n >= PROP_MOTIF_WM_HINT_ELEMENTS)
+ {
+ if (mwm_hints->flags & MWM_HINTS_DECORATIONS)
+ decor = mwm_hints->decorations;
+ }
+
+ XFree (mwm_hints);
+ }
+
+ return decor;
+}
+
static void
update_event_windows (WnckWindow *win)
{
@@ -2694,7 +2744,8 @@
XSync (xdisplay, FALSE);
if (!gdk_error_trap_pop ())
{
- d->decorated = TRUE;
+ if (get_mwm_prop (xid) & (MWM_DECOR_ALL | MWM_DECOR_TITLE))
+ d->decorated = TRUE;
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
@@ -4185,6 +4236,41 @@
remove_frame_window (win);
}
}
+ else if (xevent->xproperty.atom == mwm_hints_atom)
+ {
+ WnckWindow *win;
+
+ xid = xevent->xproperty.window;
+
+ win = wnck_window_get (xid);
+ if (win)
+ {
+ decor_t *d = g_object_get_data (G_OBJECT (win), "decor");
+ gboolean decorated = FALSE;
+
+ if (get_mwm_prop (xid) & (MWM_DECOR_ALL | MWM_DECOR_TITLE))
+ decorated = TRUE;
+
+ if (decorated != d->decorated)
+ {
+ d->decorated = decorated;
+ if (decorated)
+ {
+ d->width = d->height = 0;
+
+ update_window_decoration_size (win);
+ update_event_windows (win);
+ }
+ else
+ {
+ gdk_error_trap_push ();
+ XDeleteProperty (xdisplay, xid, win_decor_atom);
+ XSync (xdisplay, FALSE);
+ gdk_error_trap_pop ();
+ }
+ }
+ }
+ }
else if (xevent->xproperty.atom == select_window_atom)
{
WnckWindow *win;
@@ -5320,6 +5406,7 @@
restack_window_atom = XInternAtom (xdisplay, "_NET_RESTACK_WINDOW", FALSE);
select_window_atom = XInternAtom (xdisplay, "_SWITCH_SELECT_WINDOW",
FALSE);
+ mwm_hints_atom = XInternAtom (xdisplay, "_MOTIF_WM_HINTS", FALSE);
toolkit_action_atom =
XInternAtom (xdisplay, "_COMPIZ_TOOLKIT_ACTION", FALSE);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.13/plugins/compiz.schemas.in.in new/compiz-0.0.13/plugins/compiz.schemas.in.in
--- old/compiz-0.0.13/plugins/compiz.schemas.in.in 2006-06-15 15:55:48.000000000 +0200
+++ new/compiz-0.0.13/plugins/compiz.schemas.in.in 2006-06-16 21:41:35.000000000 +0200
@@ -2391,7 +2391,7 @@
<owner>compiz</owner>
<type>list</type>
string
- <default>[Toolbar,Utility,Dialog,Normal]</default>
+ <default>[Toolbar,Utility,Dialog,ModalDialog,Fullscreen,Normal]</default>
<locale name="C">
<short>Window Types</short>
<long>
@@ -2579,7 +2579,7 @@
<owner>compiz</owner>
<type>list</type>
string
- <default>[Toolbar,Utility,Dialog,Fullscreen,Normal]</default>
+ <default>[Toolbar,Utility,Dialog,ModalDialog,Fullscreen,Normal]</default>
<locale name="C">
<short>Window Types</short>
<long>
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.13/plugins/scale.c new/compiz-0.0.13/plugins/scale.c
--- old/compiz-0.0.13/plugins/scale.c 2006-06-07 23:49:38.000000000 +0200
+++ new/compiz-0.0.13/plugins/scale.c 2006-06-16 21:29:10.000000000 +0200
@@ -75,6 +75,8 @@
"Toolbar",
"Utility",
"Dialog",
+ "ModalDialog",
+ "Fullscreen",
"Normal"
};
#define N_WIN_TYPE (sizeof (winType) / sizeof (winType[0]))
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/compiz-0.0.13/plugins/switcher.c new/compiz-0.0.13/plugins/switcher.c
--- old/compiz-0.0.13/plugins/switcher.c 2006-06-15 19:19:53.000000000 +0200
+++ new/compiz-0.0.13/plugins/switcher.c 2006-06-16 21:27:15.000000000 +0200
@@ -81,6 +81,7 @@
"Toolbar",
"Utility",
"Dialog",
+ "ModalDialog",
"Fullscreen",
"Normal",
};
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit-unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit-help@opensuse.org