diff --git a/pd/src/g_editor.c b/pd/src/g_editor.c index 30637623704c4573498929952070db8f4f2b5fb0..794f75897038c953c3a7cf873ad1defaf5d22fef 100644 --- a/pd/src/g_editor.c +++ b/pd/src/g_editor.c @@ -2307,7 +2307,7 @@ t_gobj *canvas_findhitbox(t_canvas *x, int xpos, int ypos, return (rval); } -extern int scalar_hascanvasfield(t_scalar *x); +extern int scalar_getcanvasfield(t_scalar *x); /* right-clicking on a canvas object pops up a menu. */ static void canvas_rightclick(t_canvas *x, int xpos, int ypos, t_gobj *y_sel) @@ -2350,7 +2350,7 @@ static void canvas_rightclick(t_canvas *x, int xpos, int ypos, t_gobj *y_sel) if they happen to have a canvas field inside them. */ if (pd_class(&y->g_pd) == scalar_class) { - if (scalar_hascanvasfield((t_scalar *)y)) + if (scalar_getcanvasfield((t_scalar *)y)) scalar_has_canvas = 1; canopen = scalar_has_canvas; } diff --git a/pd/src/g_scalar.c b/pd/src/g_scalar.c index cbb4355f8ef2b8346980a7f3839960c7f6b466c8..141b7f252abe29823c7f9eec469f2f9fd605b64a 100644 --- a/pd/src/g_scalar.c +++ b/pd/src/g_scalar.c @@ -255,7 +255,8 @@ int template_cancreate(t_template *template) return (template_check_array_fields(0, template) == 1); } -int scalar_hascanvasfield(t_scalar *x) + /* get the first canvas field for a scalar */ +t_canvas *scalar_getcanvasfield(t_scalar *x) { t_template *template = template_findbyname(x->sc_template); if (template) @@ -265,7 +266,7 @@ int scalar_hascanvasfield(t_scalar *x) for (i = 0; i < nitems; i++, datatypes++) { if (datatypes->ds_type == DT_LIST) - return 1; + return x->sc_vec[i].w_list; } } return 0; @@ -1227,7 +1228,8 @@ static void scalar_save(t_gobj *z, t_binbuf *b) static void scalar_menuopen(t_scalar *x) { - post("tried to open a thing"); + t_canvas *c = scalar_getcanvasfield(x); + canvas_vis(c, 1); } static void scalar_properties(t_gobj *z, struct _glist *owner) diff --git a/pd/src/g_traversal.c b/pd/src/g_traversal.c index 10c1709a5a066ad7e0db5dd5c4e41aa3a48e1eef..2d5ee264f4f19c6902ffdce4cec61ccea5903d76 100644 --- a/pd/src/g_traversal.c +++ b/pd/src/g_traversal.c @@ -1336,7 +1336,6 @@ static void field_set(t_field *x, t_symbol *s) static void field_bang(t_field *x) { - post("sanity is %d", x->x_canvas->sanity); t_word *vec = x->x_canvas->gl_vec; t_template *template = x->x_template; t_symbol *fieldsym = x->x_s;