From 53a0e971c7e8c637fa849f65b19cd8b63a64af1e Mon Sep 17 00:00:00 2001
From: Ivica Ico Bukvic <ico@vt.edu>
Date: Tue, 30 Jul 2013 08:57:18 -0400
Subject: [PATCH] added pdtk_canvas_force_getscroll function to ensure critical
 getscroll events are executed immediately

---
 pd/src/g_canvas.c | 4 ++--
 pd/src/pd.tk      | 5 +++++
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/pd/src/g_canvas.c b/pd/src/g_canvas.c
index e86730828..a44bc6567 100644
--- a/pd/src/g_canvas.c
+++ b/pd/src/g_canvas.c
@@ -793,7 +793,7 @@ void canvas_map(t_canvas *x, t_floatarg f)
         canvas_drawlines(x);
         if (x->gl_isgraph && x->gl_goprect)
             canvas_drawredrect(x, 1);
-        sys_vgui("pdtk_canvas_getscroll .x%lx.c\n", x);
+        sys_vgui("pdtk_canvas_force_getscroll .x%lx.c\n", x);
         //}
     }
     else
@@ -1027,7 +1027,7 @@ static void canvas_pop(t_canvas *x, t_floatarg fvis)
     canvas_resortinlets(x);
     canvas_resortoutlets(x);
     x->gl_loading = 0;
-	sys_vgui("pdtk_canvas_getscroll .x%lx.c\n", x);
+	sys_vgui("pdtk_canvas_force_getscroll .x%lx.c\n", x);
 	//fprintf(stderr,"loading = 0 .x%lx owner=.x%lx\n", x, x->gl_owner);
 }
 
diff --git a/pd/src/pd.tk b/pd/src/pd.tk
index 2fb61c66f..0f715938f 100644
--- a/pd/src/pd.tk
+++ b/pd/src/pd.tk
@@ -3671,6 +3671,11 @@ proc pdtk_canvas_getscroll_configure {canvas} {
 	}
 }
 
+proc pdtk_canvas_force_getscroll {name} {
+	set ::update_tick([winfo parent $name]) 0
+	pdtk_canvas_getscroll $name
+}
+
 proc pdtk_canvas_getscroll {name} {
 	global pd_nt
     global pdtk_canvas_mouseup_name
-- 
GitLab