2008-06-30 Matthew Allum <mallum@openedhand.com>

Bug 1008 - tfp still a bit borked

        * clutter/x11/clutter-x11-texture-pixmap.c:
        Fix from Andy Wingo for sync_window borkage
This commit is contained in:
Matthew Allum 2008-06-30 22:00:49 +00:00
parent 604990a53b
commit 5beb8b7779
2 changed files with 21 additions and 13 deletions

View File

@ -1,3 +1,10 @@
2008-06-30 Matthew Allum <mallum@openedhand.com>
Bug 1008 - tfp still a bit borked
* clutter/x11/clutter-x11-texture-pixmap.c:
Fix from Andy Wingo for sync_window borkage
2008-06-30 Neil Roberts <neil@o-hand.com> 2008-06-30 Neil Roberts <neil@o-hand.com>
Bug 985 - MSC math.h / M_PI issue Bug 985 - MSC math.h / M_PI issue

View File

@ -1024,33 +1024,34 @@ void
clutter_x11_texture_pixmap_sync_window (ClutterX11TexturePixmap *texture) clutter_x11_texture_pixmap_sync_window (ClutterX11TexturePixmap *texture)
{ {
ClutterX11TexturePixmapPrivate *priv; ClutterX11TexturePixmapPrivate *priv;
Pixmap pixmap; Pixmap pixmap, prev_pixmap;
g_return_if_fail (CLUTTER_X11_IS_TEXTURE_PIXMAP (texture)); g_return_if_fail (CLUTTER_X11_IS_TEXTURE_PIXMAP (texture));
priv = texture->priv; priv = texture->priv;
/* we own the pixmap */ if (!clutter_x11_has_composite_extension())
if (priv->pixmap)
{ {
pixmap = priv->pixmap; clutter_x11_texture_pixmap_set_pixmap (texture, priv->window);
/* This will cause an additional notify emission; suckiness. */ return;
clutter_x11_texture_pixmap_set_pixmap (texture, None);
XFreePixmap (clutter_x11_get_default_display (), pixmap);
} }
if (priv->window && clutter_x11_has_composite_extension()) /* we own the pixmap */
prev_pixmap = priv->pixmap;
if (priv->window)
{ {
Display *dpy = clutter_x11_get_default_display ();
clutter_x11_trap_x_errors (); clutter_x11_trap_x_errors ();
pixmap = XCompositeNameWindowPixmap (clutter_x11_get_default_display(), pixmap = XCompositeNameWindowPixmap (dpy, priv->window);
priv->window);
clutter_x11_untrap_x_errors (); clutter_x11_untrap_x_errors ();
clutter_x11_texture_pixmap_set_pixmap (texture, pixmap); clutter_x11_texture_pixmap_set_pixmap (texture, pixmap);
}
pixmap = priv->window; if (prev_pixmap)
clutter_x11_texture_pixmap_set_pixmap (texture, pixmap); XFreePixmap (dpy, prev_pixmap);
}
} }
/** /**