[maemo-commits] [maemo-commits] r18965 - in projects/haf/trunk/libmatchbox2: . matchbox/core
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu Jul 23 15:08:36 EEST 2009
- Previous message: [maemo-commits] r18964 - projects/haf/trunk/gconf2
- Next message: [maemo-commits] r18966 - in projects/haf/trunk/libmatchbox2: . matchbox/core
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: gw
Date: 2009-07-23 15:08:29 +0300 (Thu, 23 Jul 2009)
New Revision: 18965
Modified:
projects/haf/trunk/libmatchbox2/ChangeLog
projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-atoms.c
projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client.c
projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-types.h
Log:
* matchbox/core/mb-wm-types.h
* matchbox/core/mb-wm-atoms.c
* matchbox/core/mb-wm-client.c: For RGBA sapwood - look for
MAEMO_IGNORE_ALPHA window property, and only ignore alpha if so.
Reverts previous change in order to handle alpha in a more compatible
way.
Modified: projects/haf/trunk/libmatchbox2/ChangeLog
===================================================================
--- projects/haf/trunk/libmatchbox2/ChangeLog 2009-07-23 11:46:29 UTC (rev 18964)
+++ projects/haf/trunk/libmatchbox2/ChangeLog 2009-07-23 12:08:29 UTC (rev 18965)
@@ -1,3 +1,12 @@
+2009-07-23 Gordon Williams <gordon.williams at collabora.co.uk>
+
+ * matchbox/core/mb-wm-types.h
+ * matchbox/core/mb-wm-atoms.c
+ * matchbox/core/mb-wm-client.c: For RGBA sapwood - look for
+ MAEMO_IGNORE_ALPHA window property, and only ignore alpha if so.
+ Reverts previous change in order to handle alpha in a more compatible
+ way.
+
2009-07-22 Gordon Williams <gordon.williams at collabora.co.uk>
Changes to help with RGBA sapwood - disable alpha (transparency)
Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-atoms.c
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-atoms.c 2009-07-23 11:46:29 UTC (rev 18964)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-atoms.c 2009-07-23 12:08:29 UTC (rev 18965)
@@ -109,10 +109,12 @@
"_HILDON_WM_WINDOW_TYPE_LEGACY_MENU",
"_MAEMO_SUPPRESS_ROOT_RECONFIGURATION",
+
+ "_MAEMO_IGNORE_ALPHA",
};
/* FIXME: Error Traps */
-
+
MBWM_ASSERT (MBWM_ATOM_COUNT == sizeof (atom_names) / sizeof (char*));
XInternAtoms (wm->xdpy,
Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client.c
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client.c 2009-07-23 11:46:29 UTC (rev 18964)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client.c 2009-07-23 12:08:29 UTC (rev 18965)
@@ -106,7 +106,42 @@
return False;
}
+#if ENABLE_COMPOSITE
+static Bool
+mb_wm_client_ignore_alpha(MBWindowManagerClient *client)
+{
+ MBWindowManager *wm;
+ Atom actual_type_return;
+ int actual_format_return;
+ unsigned long nitems_return;
+ unsigned long bytes_after_return;
+ unsigned char* prop_return = NULL;
+ int result = 0;
+ wm = client->wmref;
+
+ mb_wm_util_trap_x_errors ();
+ XGetWindowProperty (wm->xdpy, client->window->xwindow,
+ wm->atoms[WBWM_ATOM_MAEMO_IGNORE_ALPHA],
+ 0, G_MAXLONG,
+ False,
+ AnyPropertyType,
+ &actual_type_return,
+ &actual_format_return,
+ &nitems_return,
+ &bytes_after_return,
+ &prop_return);
+ if (prop_return)
+ {
+ result = prop_return[0];
+ XFree (prop_return);
+ }
+ mb_wm_util_untrap_x_errors();
+
+ return result;
+}
+#endif
+
static int
mb_wm_client_init (MBWMObject *obj, va_list vap)
{
@@ -176,9 +211,7 @@
if (format && format->type == PictTypeDirect &&
format->direct.alphaMask)
{
- MBWMClientType ctype = MB_WM_CLIENT_CLIENT_TYPE (client);
- if (ctype != MBWMClientTypeApp &&
- ctype != MBWMClientTypeDialog)
+ if (!mb_wm_client_ignore_alpha(client))
client->is_argb32 = True;
}
}
Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-types.h
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-types.h 2009-07-23 11:46:29 UTC (rev 18964)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-types.h 2009-07-23 12:08:29 UTC (rev 18965)
@@ -314,6 +314,13 @@
*/
MBWM_ATOM_MAEMO_SUPPRESS_ROOT_RECONFIGURATION,
+ /* This flag is set on a window (currently by GTK) if the window
+ * itself contains an alpha channel, but we are supposed to ignore it.
+ * This is useful for RGBA sapwood, and gives us a performance boost by
+ * allowing our visibility detection (and SGX's) to know that the window
+ * is totally opaque. */
+ WBWM_ATOM_MAEMO_IGNORE_ALPHA,
+
MBWM_ATOM_COUNT
} MBWMAtom;
- Previous message: [maemo-commits] r18964 - projects/haf/trunk/gconf2
- Next message: [maemo-commits] r18966 - in projects/haf/trunk/libmatchbox2: . matchbox/core
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
