- add more upstream gdk fixes
This commit is contained in:
parent
4529dbc9d7
commit
62e8c15685
|
@ -61,10 +61,12 @@ Patch113: compiz-0.8.6-icon-size.patch
|
||||||
Patch114: compiz-0.8.6-map-gravity-fix.patch
|
Patch114: compiz-0.8.6-map-gravity-fix.patch
|
||||||
Patch115: compiz-0.8.6-focus-denied-stacking-fix.patch
|
Patch115: compiz-0.8.6-focus-denied-stacking-fix.patch
|
||||||
#upstream patches
|
#upstream patches
|
||||||
#http://gitweb.compiz.org/?p=compiz/core;a=commit;h=5ea5e2130c56d405fcccd63932918fc49ca1f1b9
|
# 5ea5e2130c56d405fcccd63932918fc49ca1f1b9
|
||||||
Patch116: gdk_display_deprecated.patch
|
Patch116: gdk_display_deprecated.patch
|
||||||
# 0f95c41a0aa175ddf7947ba18b01f746c95594a9
|
# 0f95c41a0aa175ddf7947ba18b01f746c95594a9
|
||||||
Patch117: compiz-0.8.6-pixmap-size-calculation.patch
|
Patch117: compiz-0.8.6-pixmap-size-calculation.patch
|
||||||
|
# 777e5ecdb197105f770e7bcedd83eb54c53457f3
|
||||||
|
Patch118: gdk_drawable_deprecated.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Compiz is one of the first OpenGL-accelerated compositing window
|
Compiz is one of the first OpenGL-accelerated compositing window
|
||||||
|
@ -136,6 +138,7 @@ and other kde integration related stuff.
|
||||||
%patch115 -p1 -b .focus-denied-stacking
|
%patch115 -p1 -b .focus-denied-stacking
|
||||||
%patch116 -p1 -b .gdk_display_deprecated
|
%patch116 -p1 -b .gdk_display_deprecated
|
||||||
%patch117 -p1 -b .pixmap-calculation
|
%patch117 -p1 -b .pixmap-calculation
|
||||||
|
%patch118 -p1 -b .gdk_drawable_deprecated
|
||||||
|
|
||||||
%build
|
%build
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
@ -275,7 +278,6 @@ rm -rf $RPM_BUILD_ROOT
|
||||||
%files kde
|
%files kde
|
||||||
%defattr(-, root, root)
|
%defattr(-, root, root)
|
||||||
%{_bindir}/kde4-window-decorator
|
%{_bindir}/kde4-window-decorator
|
||||||
%{_docdir}/compiz-kde-%{version}
|
|
||||||
%{_datadir}/compiz/kconfig.xml
|
%{_datadir}/compiz/kconfig.xml
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
|
@ -291,6 +293,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Nov 30 2010 leigh scott <leigh123linux@googlemail.com> - 0.8.6-7
|
||||||
|
- add more upstream gdk fixes
|
||||||
|
|
||||||
* Wed Nov 17 2010 Adel Gadllah <adel.gadllah@gmail.com> - 0.8.6-6
|
* Wed Nov 17 2010 Adel Gadllah <adel.gadllah@gmail.com> - 0.8.6-6
|
||||||
- Backport fix for corruption bug (RH #614542)
|
- Backport fix for corruption bug (RH #614542)
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,184 @@
|
||||||
|
From: Danny Baumann <dannybaumann@web.de>
|
||||||
|
Date: Mon, 6 Sep 2010 09:25:02 +0000 (+0200)
|
||||||
|
Subject: Replace old gdk_draw_drawable method calls with cairo equivalents.
|
||||||
|
X-Git-Url: http://gitweb.compiz.org/?p=compiz%2Fcore;a=commitdiff_plain;h=777e5ecdb197105f770e7bcedd83eb54c53457f3
|
||||||
|
|
||||||
|
Replace old gdk_draw_drawable method calls with cairo equivalents.
|
||||||
|
---
|
||||||
|
|
||||||
|
diff --git a/gtk/window-decorator/gtk-window-decorator.c b/gtk/window-decorator/gtk-window-decorator.c
|
||||||
|
index 18b907e..adb20d5 100644
|
||||||
|
--- a/gtk/window-decorator/gtk-window-decorator.c
|
||||||
|
+++ b/gtk/window-decorator/gtk-window-decorator.c
|
||||||
|
@@ -380,7 +380,7 @@ typedef struct _decor {
|
||||||
|
guint button_states[BUTTON_NUM];
|
||||||
|
GdkPixmap *pixmap;
|
||||||
|
GdkPixmap *buffer_pixmap;
|
||||||
|
- GdkGC *gc;
|
||||||
|
+ cairo_t *cr;
|
||||||
|
decor_layout_t border_layout;
|
||||||
|
decor_context_t *context;
|
||||||
|
decor_shadow_t *shadow;
|
||||||
|
@@ -918,6 +918,17 @@ button_state_paint (cairo_t *cr,
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
+copy_to_front_buffer (decor_t *d)
|
||||||
|
+{
|
||||||
|
+ if (!d->buffer_pixmap)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ cairo_set_operator (d->cr, CAIRO_OPERATOR_SOURCE);
|
||||||
|
+ gdk_cairo_set_source_pixmap (d->cr, d->buffer_pixmap, 0, 0);
|
||||||
|
+ cairo_paint (d->cr);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void
|
||||||
|
draw_window_decoration (decor_t *d)
|
||||||
|
{
|
||||||
|
cairo_t *cr;
|
||||||
|
@@ -1298,16 +1309,7 @@ draw_window_decoration (decor_t *d)
|
||||||
|
|
||||||
|
cairo_destroy (cr);
|
||||||
|
|
||||||
|
- if (d->buffer_pixmap)
|
||||||
|
- gdk_draw_drawable (d->pixmap,
|
||||||
|
- d->gc,
|
||||||
|
- d->buffer_pixmap,
|
||||||
|
- 0,
|
||||||
|
- 0,
|
||||||
|
- 0,
|
||||||
|
- 0,
|
||||||
|
- d->width,
|
||||||
|
- d->height);
|
||||||
|
+ copy_to_front_buffer (d);
|
||||||
|
|
||||||
|
if (d->prop_xid)
|
||||||
|
{
|
||||||
|
@@ -2103,16 +2105,7 @@ meta_draw_window_decoration (decor_t *d)
|
||||||
|
XRenderFreePicture (xdisplay, src);
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (d->buffer_pixmap)
|
||||||
|
- gdk_draw_drawable (d->pixmap,
|
||||||
|
- d->gc,
|
||||||
|
- d->buffer_pixmap,
|
||||||
|
- 0,
|
||||||
|
- 0,
|
||||||
|
- 0,
|
||||||
|
- 0,
|
||||||
|
- d->width,
|
||||||
|
- d->height);
|
||||||
|
+ copy_to_front_buffer (d);
|
||||||
|
|
||||||
|
if (d->prop_xid)
|
||||||
|
{
|
||||||
|
@@ -2361,18 +2354,9 @@ draw_switcher_background (decor_t *d)
|
||||||
|
alpha);
|
||||||
|
|
||||||
|
cairo_stroke (cr);
|
||||||
|
-
|
||||||
|
cairo_destroy (cr);
|
||||||
|
|
||||||
|
- gdk_draw_drawable (d->pixmap,
|
||||||
|
- d->gc,
|
||||||
|
- d->buffer_pixmap,
|
||||||
|
- 0,
|
||||||
|
- 0,
|
||||||
|
- 0,
|
||||||
|
- 0,
|
||||||
|
- d->width,
|
||||||
|
- d->height);
|
||||||
|
+ copy_to_front_buffer (d);
|
||||||
|
|
||||||
|
pixel = ((((a * style->bg[GTK_STATE_NORMAL].blue ) >> 24) & 0x0000ff) |
|
||||||
|
(((a * style->bg[GTK_STATE_NORMAL].green) >> 16) & 0x00ff00) |
|
||||||
|
@@ -2439,15 +2423,7 @@ draw_switcher_foreground (decor_t *d)
|
||||||
|
|
||||||
|
cairo_destroy (cr);
|
||||||
|
|
||||||
|
- gdk_draw_drawable (d->pixmap,
|
||||||
|
- d->gc,
|
||||||
|
- d->buffer_pixmap,
|
||||||
|
- 0,
|
||||||
|
- 0,
|
||||||
|
- 0,
|
||||||
|
- 0,
|
||||||
|
- d->width,
|
||||||
|
- d->height);
|
||||||
|
+ copy_to_front_buffer (d);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
@@ -3512,15 +3488,15 @@ update_window_decoration_size (WnckWindow *win)
|
||||||
|
if (d->buffer_pixmap)
|
||||||
|
g_object_unref (G_OBJECT (d->buffer_pixmap));
|
||||||
|
|
||||||
|
- if (d->gc)
|
||||||
|
- g_object_unref (G_OBJECT (d->gc));
|
||||||
|
-
|
||||||
|
if (d->picture)
|
||||||
|
XRenderFreePicture (xdisplay, d->picture);
|
||||||
|
|
||||||
|
+ if (d->cr)
|
||||||
|
+ cairo_destroy (d->cr);
|
||||||
|
+
|
||||||
|
d->pixmap = pixmap;
|
||||||
|
d->buffer_pixmap = buffer_pixmap;
|
||||||
|
- d->gc = gdk_gc_new (pixmap);
|
||||||
|
+ d->cr = gdk_cairo_create (pixmap);
|
||||||
|
|
||||||
|
d->picture = picture;
|
||||||
|
|
||||||
|
@@ -3642,6 +3618,7 @@ update_switcher_window (WnckWindow *win,
|
||||||
|
{
|
||||||
|
g_object_ref (G_OBJECT (switcher_pixmap));
|
||||||
|
d->pixmap = switcher_pixmap;
|
||||||
|
+ d->cr = gdk_cairo_create (switcher_pixmap);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!d->buffer_pixmap && switcher_buffer_pixmap)
|
||||||
|
@@ -3729,9 +3706,6 @@ update_switcher_window (WnckWindow *win,
|
||||||
|
|
||||||
|
if (width == d->width && height == d->height)
|
||||||
|
{
|
||||||
|
- if (!d->gc)
|
||||||
|
- d->gc = gdk_gc_new (d->pixmap);
|
||||||
|
-
|
||||||
|
if (!d->picture)
|
||||||
|
d->picture =
|
||||||
|
XRenderCreatePicture (xdisplay,
|
||||||
|
@@ -3765,8 +3739,8 @@ update_switcher_window (WnckWindow *win,
|
||||||
|
if (d->buffer_pixmap)
|
||||||
|
g_object_unref (G_OBJECT (d->buffer_pixmap));
|
||||||
|
|
||||||
|
- if (d->gc)
|
||||||
|
- g_object_unref (G_OBJECT (d->gc));
|
||||||
|
+ if (d->cr)
|
||||||
|
+ cairo_destroy (d->cr);
|
||||||
|
|
||||||
|
if (d->picture)
|
||||||
|
XRenderFreePicture (xdisplay, d->picture);
|
||||||
|
@@ -3782,7 +3756,7 @@ update_switcher_window (WnckWindow *win,
|
||||||
|
|
||||||
|
d->pixmap = pixmap;
|
||||||
|
d->buffer_pixmap = buffer_pixmap;
|
||||||
|
- d->gc = gdk_gc_new (pixmap);
|
||||||
|
+ d->cr = gdk_cairo_create (pixmap);
|
||||||
|
|
||||||
|
d->picture = XRenderCreatePicture (xdisplay, GDK_PIXMAP_XID (buffer_pixmap),
|
||||||
|
xformat, 0, NULL);
|
||||||
|
@@ -3817,10 +3791,10 @@ remove_frame_window (WnckWindow *win)
|
||||||
|
d->buffer_pixmap = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (d->gc)
|
||||||
|
+ if (d->cr)
|
||||||
|
{
|
||||||
|
- g_object_unref (G_OBJECT (d->gc));
|
||||||
|
- d->gc = NULL;
|
||||||
|
+ cairo_destroy (d->cr);
|
||||||
|
+ d->cr = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (d->picture)
|
Loading…
Reference in New Issue