From 5f46312de68061108f3e6bca2dd7428c98e03974 Mon Sep 17 00:00:00 2001
From: Jonathan Wilkes <jon.w.wilkes@gmail.com>
Date: Fri, 17 Nov 2017 16:42:05 -0500
Subject: [PATCH] remove gobj_shouldvis from glist_getcanvas, add check for
 scrollbar vis update

---
 pd/src/g_canvas.c |  4 ++--
 pd/src/g_graph.c  | 11 +++++------
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/pd/src/g_canvas.c b/pd/src/g_canvas.c
index 736a9dbd9..20316a667 100644
--- a/pd/src/g_canvas.c
+++ b/pd/src/g_canvas.c
@@ -745,12 +745,12 @@ void canvas_scalar_event(t_canvas *x, t_symbol *s, int argc, t_atom *argv)
 void canvas_show_scrollbars(t_canvas *x, t_floatarg f)
 {
     x->gl_noscroll = (int)f;
-    gui_vmess("gui_canvas_set_scrollbars", "xi", x, (int)f);
+    if (x->gl_mapped)
+        gui_vmess("gui_canvas_set_scrollbars", "xi", x, (int)f);
 }
 
 void canvas_show_menu(t_canvas *x, t_floatarg f)
 {
-post("setting nomenu to %d", f);
     x->gl_nomenu = (int)f;
 }
 
diff --git a/pd/src/g_graph.c b/pd/src/g_graph.c
index 0f39f37d0..24d2a2714 100644
--- a/pd/src/g_graph.c
+++ b/pd/src/g_graph.c
@@ -311,11 +311,11 @@ void glist_grab(t_glist *x, t_gobj *y, t_glistmotionfn motionfn,
 t_canvas *glist_getcanvas(t_glist *x)
 {
     //fprintf(stderr,"glist_getcanvas\n");
-    while (x->gl_owner && !x->gl_havewindow && x->gl_isgraph &&
-        gobj_shouldvis(&x->gl_gobj, x->gl_owner))
+    while (x->gl_owner && !x->gl_havewindow && x->gl_isgraph)
     {
-            //fprintf(stderr,"x=%lx x->gl_owner=%d x->gl_havewindow=%d x->gl_isgraph=%d gobj_shouldvis=%d\n", 
-            //    x, (x->gl_owner ? 1:0), x->gl_havewindow, x->gl_isgraph, 
+            //fprintf(stderr,"x=%lx x->gl_owner=%d x->gl_havewindow=%d "
+            //               "x->gl_isgraph=%d gobj_shouldvis=%d\n", 
+            //    x, (x->gl_owner ? 1:0), x->gl_havewindow, x->gl_isgraph,
             //    gobj_shouldvis(&x->gl_gobj, x->gl_owner));
             x = x->gl_owner;
             //fprintf(stderr,"+\n");
@@ -1244,7 +1244,6 @@ static void graph_getrect(t_gobj *z, t_glist *glist,
         int hadwindow;
         t_gobj *g;
         int x21, y21, x22, y22;
-
         graph_graphrect(z, glist, &x1, &y1, &x2, &y2);
         //fprintf(stderr,"%d %d %d %d\n", x1, y1, x2, y2);
 
@@ -1435,7 +1434,7 @@ static void graph_select(t_gobj *z, t_glist *glist, int state)
         }
         if (glist_isvisible(glist) &&
                 (glist_istoplevel(glist) ||
-                 gobj_shouldvis(x, glist)))
+                 gobj_shouldvis(z, glist)))
         {
             if (state)
                 gui_vmess("gui_gobj_select", "xs",
-- 
GitLab