diff --git a/eek/eek-renderer.c b/eek/eek-renderer.c index fb38f320e1dd9298dfbb36e920edec4545957e75..034f1ce97d813e3ebb7b16bb991b05144d311d47 100644 --- a/eek/eek-renderer.c +++ b/eek/eek-renderer.c @@ -162,9 +162,14 @@ create_keyboard_surface (EekRenderer *renderer) &background); eek_element_get_bounds (EEK_ELEMENT(priv->keyboard), &bounds); - keyboard_surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, - ceil(bounds.width * priv->scale), - ceil(bounds.height * priv->scale)); + + /* Create a surface that encompasses the dimensions of the keyboard as well + as the margin around the edge. */ + keyboard_surface = cairo_image_surface_create ( + CAIRO_FORMAT_ARGB32, + ceil(((bounds.x * 2) + bounds.width) * priv->scale), + ceil(((bounds.y * 2) + bounds.height) * priv->scale)); + data.cr = cairo_create (keyboard_surface); data.renderer = renderer;