Add a simple invalidate-handler that redraws the the moving cards window with its
pre-set background.
It appears that the change to 'native window' added to work around some GDK bug
also causes GDK to give up entirely the responsibility of painting the window.
Therefore without a handler, the window is created in 'invalid' state and is never
actually painted (it simply retains the card images from the board when dragging
begins), making the card images messed up if they are dragged partially out of
the parent window's boundary.

(c) 2015 snarfbeest
diff -ur --exclude help --exclude po aisleriot-3.10.2/src/board-noclutter.c ar-lk/src/board-noclutter.c
--- aisleriot-3.10.2/src/board-noclutter.c	2013-11-05 15:50:21.000000000 +0200
+++ ar-lk/src/board-noclutter.c	2015-02-14 13:42:35.624992448 +0200
@@ -817,6 +817,13 @@
 }
 
 static void
+moving_cards_redraw(GdkWindow *window, cairo_region_t *region)
+{
+gdk_window_begin_paint_region(window,region);
+gdk_window_end_paint(window);
+}
+
+static void
 drag_begin (AisleriotBoard *board)
 {
   AisleriotBoardPrivate *priv = board->priv;
@@ -897,6 +904,7 @@
 
   /* FIXME: workaround for gtk+ bug #702951 */
   gdk_window_ensure_native (priv->moving_cards_window);
+  gdk_window_set_invalidate_handler(priv->moving_cards_window,moving_cards_redraw);
 
   surface = gdk_window_create_similar_surface (priv->moving_cards_window, CAIRO_CONTENT_COLOR_ALPHA,
                                                width, height);
