From 8ad0192e555faa7d7095b6df1b7d5f5eafd54bd6 Mon Sep 17 00:00:00 2001
From: David Boddie <david.boddie@puri.sm>
Date: Thu, 11 Jul 2019 23:04:29 +0000
Subject: [PATCH] Fix clipping issue at bottom of keyboard

Closes #47.
---
 eek/eek-renderer.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/eek/eek-renderer.c b/eek/eek-renderer.c
index fb38f320..034f1ce9 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;
 
-- 
GitLab