gtk/fix-layout.scm: Fix image-ink callback extents.
authorMatt Birkholz <puck@birchwood-abbey.net>
Sat, 7 May 2016 00:29:46 +0000 (17:29 -0700)
committerMatt Birkholz <puck@birchwood-abbey.net>
Sat, 7 May 2016 00:29:46 +0000 (17:29 -0700)
src/gtk/fix-layout.scm

index ceb8748fc0ac307f7f71e22b7190632787cb11dd..b5bae9a4a2ec71a766c7da934d884b3510381d0a 100644 (file)
@@ -867,17 +867,6 @@ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
             (set-fix-rect-position! extent x y)
             (drawing-damage ink)))))))
 
-(define (set-fix-ink-%size! ink width height)
-  (let ((extent (fix-ink-extent ink)))
-    (without-interrupts
-     (lambda ()
-       (if (not (and (fix:= width (fix-rect-width extent))
-                    (fix:= height (fix-rect-height extent))))
-          (begin
-            (drawing-damage ink)
-            (set-fix-rect-size! extent width height)
-            (drawing-damage ink)))))))
-
 (define (set-fix-ink! ink x y width height)
   (let ((extent (fix-ink-extent ink)))
     (without-interrupts
@@ -1686,7 +1675,13 @@ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 (define (image-ink-size-prepared ink)
   (named-lambda (image-ink-size-prepared-handler width height)
     (%trace ";image-ink-size-prepared-handler "ink" "width" "height"\n")
-    (set-fix-ink-%size! ink width height)))
+    (let ((extent (fix-ink-extent ink)))
+      (if (not (and (fix:= width (fix-rect-width extent))
+                   (fix:= height (fix-rect-height extent))))
+         (begin
+           (drawing-damage ink)
+           (set-fix-rect-size! extent width height)
+           (drawing-damage ink))))))
 
 (define (image-ink-pixbuf-prepared ink)
   (named-lambda (image-ink-pixbuf-prepared-handler pixbuf)
@@ -1695,7 +1690,11 @@ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 
 (define (image-ink-pixbuf-updated ink)
   (named-lambda (image-ink-pixbuf-updated-handler x y width height)
-    (let ((rect (make-fix-rect x y width height)))
+    (let* ((extent (fix-ink-extent ink))
+          (rect (make-fix-rect
+                 (fix:+ x (fix-rect-x extent))
+                 (fix:+ y (fix-rect-y extent))
+                 width height)))
       (%trace ";image-ink-pixbuf-updated-handler "ink" "rect"\n")
       (drawing-damage ink rect))))