Here's how to install a patched version of libcairo2 1.12 on your system:
open a terminal and cd in to a directory where you want the cairo source. Download the source with
Code: Select all
apt-get source libcairo2
Now create a patchfile in ./debian/patches with your favourite text editor:
Code: Select all
nano ./debian/patches/07_server_side_gradients.patch
Code: Select all
# Description: don't use server side gradients most drivers don't handle it
Index: cairo-1.12.2/src/cairo-xlib-display.c
===================================================================
--- cairo-1.12.2.orig/src/cairo-xlib-display.c 2012-04-25 21:53:19.000000000 +1200
+++ cairo-1.12.2/src/cairo-xlib-display.c 2012-05-17 16:06:18.543220800 +1200
@@ -266,11 +266,7 @@
/* Prior to Render 0.10, there is no protocol support for gradients and
* we call function stubs instead, which would silently consume the drawing.
*/
-#if RENDER_MAJOR == 0 && RENDER_MINOR < 10
display->buggy_gradients = TRUE;
-#else
- display->buggy_gradients = FALSE;
-#endif
display->buggy_pad_reflect = FALSE;
display->buggy_repeat = FALSE;
Code: Select all
echo 07_server_side_gradients.patch >> ./debian/patches/series
Code: Select all
dpkg-buildpackage -rfakeroot -uc -b
Once finished without serious error messages, you should find a bunch of .deb files in this directory. Install them with:
Code: Select all
dpkg -i [packagename]
Now reboot (or alternatively relaunch X server) and the unresponsiveness should be fixed.
--The credit for this solution goes completely to the Ubuntu package maintainer of cairo and/or whoever wrote this patch--