[PD-cvs] pd/src desire.c, 1.1.2.140, 1.1.2.141 desire.h, 1.1.2.15, 1.1.2.16
Mathieu Bouchard
matju at users.sourceforge.net
Sun Sep 3 06:23:45 CEST 2006
Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27623
Modified Files:
Tag: devel_0_39
desire.c desire.h
Log Message:
.
Index: desire.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.h,v
retrieving revision 1.1.2.15
retrieving revision 1.1.2.16
diff -C2 -d -r1.1.2.15 -r1.1.2.16
*** desire.h 3 Sep 2006 03:47:14 -0000 1.1.2.15
--- desire.h 3 Sep 2006 04:23:43 -0000 1.1.2.16
***************
*** 61,75 ****
#define t_tscalar struct _tscalar
EXTERN_STRUCT _canvasenvironment;
! #define t_canvasenvironment struct _canvasenvironment
EXTERN_STRUCT _fielddesc;
#define t_fielddesc struct _fielddesc
- typedef struct _selection {
- t_gobj *sel_what;
- struct _selection *sel_next;
- } t_selection;
-
/* this structure is instantiated whenever a glist becomes visible. */
- /* commented-out fields are not in DesireData */
typedef struct _editor {
t_rtext *e_rtext; /* text responder linked list */
--- 61,69 ----
#define t_tscalar struct _tscalar
EXTERN_STRUCT _canvasenvironment;
! #define t_canvasenvironment struct _canvasenvironment
EXTERN_STRUCT _fielddesc;
#define t_fielddesc struct _fielddesc
/* this structure is instantiated whenever a glist becomes visible. */
typedef struct _editor {
t_rtext *e_rtext; /* text responder linked list */
***************
*** 77,86 ****
t_gobj *e_grab; /* object being "dragged" */
t_binbuf *e_connectbuf; /* connections to deleted objects */
- t_binbuf *e_deleted; /* last stuff we deleted */
t_guiconnect *e_guiconnect; /* GUI connection for filtering messages */
struct _glist *e_glist; /* glist which owns this */
- unsigned int e_lastmoved: 1; /* one if mouse has moved since click */
- unsigned int e_textdirty: 1; /* one if e_textedfor has changed */
- unsigned int e_selectedline: 1; /* one if a line is selected */
} t_editor;
--- 71,76 ----
***************
*** 116,120 ****
int gl_font; /* nominal font size in points, e.g., 10 */
struct _glist *gl_next; /* link in list of toplevels */
! t_canvasenvironment *gl_env; /* root canvases and abstractions only */
unsigned int gl_havewindow:1; /* true if we own a window */
unsigned int gl_mapped:1; /* true if, moreover, it's "mapped" */
--- 106,110 ----
int gl_font; /* nominal font size in points, e.g., 10 */
struct _glist *gl_next; /* link in list of toplevels */
! t_canvasenvironment *gl_env; /* for root canvases and abstractions only */
unsigned int gl_havewindow:1; /* true if we own a window */
unsigned int gl_mapped:1; /* true if, moreover, it's "mapped" */
***************
*** 123,132 ****
unsigned int gl_willvis:1; /* make me visible after loading */
unsigned int gl_edit:1; /* edit mode */
- /* unsigned int gl_isdeleting:1; we're inside glist_delete -- hack! */
unsigned int gl_goprect:1; /* draw rectangle for graph-on-parent */
unsigned int gl_isgraph:1; /* show as graph on parent */
! #ifdef DESIRE
! long gl_next_add; /* insertion point for next call to glist_add */
! #endif
};
--- 113,119 ----
unsigned int gl_willvis:1; /* make me visible after loading */
unsigned int gl_edit:1; /* edit mode */
unsigned int gl_goprect:1; /* draw rectangle for graph-on-parent */
unsigned int gl_isgraph:1; /* show as graph on parent */
! long gl_next_add; /* insertion point for next call to glist_add (for future use!?) */
};
***************
*** 177,181 ****
};
! /* structure for traversing all the connections in a glist */
typedef struct _linetraverser {
t_canvas *tr_x;
--- 164,168 ----
};
! /* structure for traversing all the connections in a glist */
typedef struct _linetraverser {
t_canvas *tr_x;
***************
*** 195,210 ****
doesn't work on array elements... LATER reconsider this */
! typedef void (*t_parentgetrectfn)( t_gobj *x, struct _glist *glist, t_word *data, t_template *tmpl,
! float basex, float basey, int *x1, int *y1, int *x2, int *y2);
! typedef void (*t_parentdisplacefn)(t_gobj *x, struct _glist *glist, t_word *data, t_template *tmpl,
! float basex, float basey, int dx, int dy);
! typedef void (*t_parentselectfn)( t_gobj *x, struct _glist *glist, t_word *data, t_template *tmpl,
! float basex, float basey, int state);
! typedef void (*t_parentactivatefn)(t_gobj *x, struct _glist *glist, t_word *data, t_template *tmpl,
! float basex, float basey, int state);
! typedef void (*t_parentvisfn)( t_gobj *x, struct _glist *glist, t_word *data, t_template *tmpl,
! float basex, float basey, int flag);
! typedef int (*t_parentclickfn)( t_gobj *x, struct _glist *glist, t_word *data, t_template *tmpl,
! t_scalar *sc, t_array *ap,
float basex, float basey, int xpix, int ypix, int shift, int alt, int dbl, int doit);
--- 182,192 ----
doesn't work on array elements... LATER reconsider this */
! #define STUFF t_gobj *x, struct _glist *glist, t_word *data, t_template *tmpl
! typedef void (*t_parentgetrectfn)( STUFF, float basex, float basey, int *x1, int *y1, int *x2, int *y2);
! typedef void (*t_parentdisplacefn)(STUFF, float basex, float basey, int dx, int dy);
! typedef void (*t_parentselectfn)( STUFF, float basex, float basey, int state);
! typedef void (*t_parentactivatefn)(STUFF, float basex, float basey, int state);
! typedef void (*t_parentvisfn)( STUFF, float basex, float basey, int flag);
! typedef int (*t_parentclickfn)( STUFF, t_scalar *sc, t_array *ap,
float basex, float basey, int xpix, int ypix, int shift, int alt, int dbl, int doit);
***************
*** 308,313 ****
EXTERN void canvas_setusedastemplate(t_canvas *x);
EXTERN t_canvas *canvas_getcurrent(void);
- EXTERN void canvas_setcurrent(t_canvas *x);
- EXTERN void canvas_unsetcurrent(t_canvas *x);
EXTERN t_symbol *canvas_realizedollar(t_canvas *x, t_symbol *s);
EXTERN t_canvas *canvas_getrootfor(t_canvas *x);
--- 290,293 ----
Index: desire.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v
retrieving revision 1.1.2.140
retrieving revision 1.1.2.141
diff -C2 -d -r1.1.2.140 -r1.1.2.141
*** desire.c 3 Sep 2006 03:47:13 -0000 1.1.2.140
--- desire.c 3 Sep 2006 04:23:42 -0000 1.1.2.141
***************
*** 353,362 ****
}
! t_canvas *canvas_getcurrent(void) {
! return ((t_canvas *)pd_findbyclass(&s__X, canvas_class));
! }
!
! void canvas_setcurrent (t_canvas *x) {pd_pushsym(&x->gl_pd);}
! void canvas_unsetcurrent(t_canvas *x) { pd_popsym(&x->gl_pd);}
t_canvasenvironment *canvas_getenv(t_canvas *x) {
--- 353,357 ----
}
! t_canvas *canvas_getcurrent(void) {return ((t_canvas *)pd_findbyclass(&s__X, canvas_class));}
t_canvasenvironment *canvas_getenv(t_canvas *x) {
***************
*** 383,389 ****
if (*name == '$' && name[1] >= '0' && name[1] <= '9') {
t_canvasenvironment *env = canvas_getenv(x);
! canvas_setcurrent(x);
ret = binbuf_realizedollsym(gensym(name+1), env->ce_argc, env->ce_argv, 1);
! canvas_unsetcurrent(x);
}
else ret = s;
--- 378,384 ----
if (*name == '$' && name[1] >= '0' && name[1] <= '9') {
t_canvasenvironment *env = canvas_getenv(x);
! pd_pushsym((t_pd *)x);
ret = binbuf_realizedollsym(gensym(name+1), env->ce_argc, env->ce_argv, 1);
! pd_popsym((t_pd *)x);
}
else ret = s;
***************
*** 706,710 ****
t_editor *x = (t_editor *)getbytes(sizeof(*x));
x->e_connectbuf = binbuf_new();
- x->e_deleted = binbuf_new();
x->e_glist = owner;
sprintf(buf, ".x%lx", (long)owner);
--- 701,704 ----
***************
*** 716,720 ****
guiconnect_notarget(x->e_guiconnect, 1000);
binbuf_free(x->e_connectbuf);
- binbuf_free(x->e_deleted);
freebytes((void *)x, sizeof(*x));
}
--- 710,713 ----
***************
*** 997,1003 ****
else if (ac && av->a_type == A_DOLLSYM) {
t_canvasenvironment *e = canvas_getenv(x);
! canvas_setcurrent(x);
canvas_rename(x, binbuf_realizedollsym(av->a_w.w_symbol, e->ce_argc, e->ce_argv, 1), 0);
! canvas_unsetcurrent(x);
}
else canvas_rename(x, gensym("Pd"), 0);
--- 990,996 ----
else if (ac && av->a_type == A_DOLLSYM) {
t_canvasenvironment *e = canvas_getenv(x);
! pd_pushsym((t_pd *)x);
canvas_rename(x, binbuf_realizedollsym(av->a_w.w_symbol, e->ce_argc, e->ce_argv, 1), 0);
! pd_popsym((t_pd *)x);
}
else canvas_rename(x, gensym("Pd"), 0);
***************
*** 1700,1706 ****
}
static void array_resize_and_redraw(t_array *array, t_glist *glist, int n) {
t_array *a2 = array;
! while (a2->a_gp.gp_stub->gs_which == GP_ARRAY) a2 = a2->a_gp.gp_stub->gs_un.gs_array;
array_resize(array, n);
gobj_changed(array,0);
--- 1693,1701 ----
}
+ #define STUB(x) x->a_gp.gp_stub
+
static void array_resize_and_redraw(t_array *array, t_glist *glist, int n) {
t_array *a2 = array;
! while (STUB(a2)->gs_which == GP_ARRAY) a2 = STUB(a2)->gs_un.gs_array;
array_resize(array, n);
gobj_changed(array,0);
***************
*** 1876,1887 ****
saveit = ((flags & 1) != 0);
x = graph_scalar(gl, s, templatesym, saveit);
-
if (n <= 0) n = 100;
array_resize(x->x_scalar->sc_vec[zonset].w_array, n);
!
! template_setfloat(template, gensym("style"), x->x_scalar->sc_vec,
! style, 1);
! template_setfloat(template, gensym("linewidth"), x->x_scalar->sc_vec,
! ((style == PLOTSTYLE_POINTS) ? 2 : 1), 1);
x2 = pd_findbyclass(gensym("#A"), garray_class);
if (x2) pd_unbind(x2, gensym("#A"));
--- 1871,1878 ----
saveit = ((flags & 1) != 0);
x = graph_scalar(gl, s, templatesym, saveit);
if (n <= 0) n = 100;
array_resize(x->x_scalar->sc_vec[zonset].w_array, n);
! template_setfloat(template, gensym("style"), x->x_scalar->sc_vec, style, 1);
! template_setfloat(template, gensym("linewidth"), x->x_scalar->sc_vec, style==PLOTSTYLE_POINTS?2:1, 1);
x2 = pd_findbyclass(gensym("#A"), garray_class);
if (x2) pd_unbind(x2, gensym("#A"));
***************
*** 1904,1908 ****
}
! /* this is called from the properties dialog window for an existing array */
void garray_arraydialog(t_garray *x, t_symbol *name, t_floatarg fsize,
t_floatarg fflags, t_floatarg deleteit) {
--- 1895,1899 ----
}
! /* this is called from the properties dialog window for an existing array */
void garray_arraydialog(t_garray *x, t_symbol *name, t_floatarg fsize,
t_floatarg fflags, t_floatarg deleteit) {
***************
*** 1933,1948 ****
/* redraw the whole glist, just so the name change shows up */
if (x->x_glist->gl_havewindow) canvas_redraw(x->x_glist);
! else if (glist_isvisible(x->x_glist->gl_owner)) {
! gobj_changed(x,0);
! }
}
size = fsize;
if (size < 1) size = 1;
! if (size != a->a_n)
! garray_resize(x, size);
! else if (style != stylewas)
! garray_fittograph(x, size, style);
! template_setfloat(scalartemplate, gensym("style"),
! x->x_scalar->sc_vec, (float)style, 0);
garray_setsaveit(x, (saveit != 0));
garray_redraw(x);
--- 1924,1934 ----
/* redraw the whole glist, just so the name change shows up */
if (x->x_glist->gl_havewindow) canvas_redraw(x->x_glist);
! else if (glist_isvisible(x->x_glist->gl_owner)) gobj_changed(x,0);
}
size = fsize;
if (size < 1) size = 1;
! if (size != a->a_n) garray_resize(x, size);
! else if (style != stylewas) garray_fittograph(x, size, style);
! template_setfloat(scalartemplate, gensym("style"), x->x_scalar->sc_vec, (float)style, 0);
garray_setsaveit(x, (saveit != 0));
garray_redraw(x);
***************
*** 1962,1967 ****
for (i = 0; i < ARRAYPAGESIZE && i < a->a_n; i++) {
yval = *(float *)(a->a_vec + elemsize * i + yonset);
! sys_vgui(".%sArrayWindow.lb insert %d {%d) %g}\n",
! x->x_realname->s_name, i, i, yval);
}
}
--- 1948,1952 ----
for (i = 0; i < ARRAYPAGESIZE && i < a->a_n; i++) {
yval = *(float *)(a->a_vec + elemsize * i + yonset);
! sys_vgui(".%sArrayWindow.lb insert %d {%d) %g}\n", x->x_realname->s_name, i, i, yval);
}
}
***************
*** 2007,2012 ****
void array_redraw(t_array *a, t_glist *glist) {
! while (a->a_gp.gp_stub->gs_which == GP_ARRAY)
! a = a->a_gp.gp_stub->gs_un.gs_array;
scalar_redraw(a->a_gp.gp_un.gp_scalar, glist);
}
--- 1992,1996 ----
void array_redraw(t_array *a, t_glist *glist) {
! while (STUB(a)->gs_which == GP_ARRAY) a = STUB(a)->gs_un.gs_array;
scalar_redraw(a->a_gp.gp_un.gp_scalar, glist);
}
***************
*** 2026,2030 ****
wpix = glist_ytopixels(glist, basey +
fielddesc_cvttocoord(yfielddesc, yval) +
! fielddesc_cvttocoord(wfielddesc, wval)) - ypix;
if (wpix < 0) wpix = -wpix;
}
--- 2010,2014 ----
wpix = glist_ytopixels(glist, basey +
fielddesc_cvttocoord(yfielddesc, yval) +
! fielddesc_cvttocoord(wfielddesc, wval)) - ypix;
if (wpix < 0) wpix = -wpix;
}
***************
*** 2052,2058 ****
static int array_motion_fatten;
! /* LATER protect against the template changing or the scalar disappearing
! probably by attaching a gpointer here ... */
!
#if 0
static void array_motion(void *z, t_floatarg dx, t_floatarg dy) {
--- 2036,2041 ----
static int array_motion_fatten;
! /* LATER protect against the template changing or the scalar disappearing
! probably by attaching a gpointer here ... */
#if 0
static void array_motion(void *z, t_floatarg dx, t_floatarg dy) {
***************
*** 2121,2126 ****
int shift, int alt, int dbl, int doit);
! /* try clicking on an element of the array as a scalar (if clicking
! on the trace of the array failed) */
static int array_doclick_element(t_array *array, t_glist *glist, t_scalar *sc, t_array *ap,
t_symbol *elemtemplatesym, float linewidth, float xloc, float xinc, float yloc,
--- 2104,2109 ----
int shift, int alt, int dbl, int doit);
! /* try clicking on an element of the array as a scalar (if clicking
! on the trace of the array failed) */
static int array_doclick_element(t_array *array, t_glist *glist, t_scalar *sc, t_array *ap,
t_symbol *elemtemplatesym, float linewidth, float xloc, float xinc, float yloc,
***************
*** 2192,2201 ****
}
} if (best > 8) {
! if (scalarvis != 0)
! return array_doclick_element(array, glist, sc, ap,
! elemtemplatesym, linewidth, xloc, xinc, yloc,
! xfield, yfield, wfield,
! xpix, ypix, shift, alt, dbl, doit);
! else return 0;
}
best += 0.001; /* add truncation error margin */
--- 2175,2181 ----
}
} if (best > 8) {
! if (scalarvis != 0) return array_doclick_element(array, glist, sc, ap, elemtemplatesym, linewidth,
! xloc, xinc, yloc, xfield, yfield, wfield, xpix, ypix, shift, alt, dbl, doit);
! return 0;
}
best += 0.001; /* add truncation error margin */
***************
*** 2206,2225 ****
xfield, yfield, wfield, &pxpix, &pypix, &pwpix);
if (pwpix < 4) pwpix = 4;
! dx = pxpix - xpix;
! if (dx < 0) dx = -dx;
! dy = pypix - ypix;
! if (dy < 0) dy = -dy;
if (wonset >= 0) {
! dy2 = (pypix+pwpix) - ypix; if (dy2 < 0) dy2 = -dy2;
! dy3 = (pypix-pwpix) - ypix; if (dy3 < 0) dy3 = -dy3;
if (yonset < 0) dy = 100;
! }
! else dy2 = dy3 = 100;
if (dx + dy <= best || dx + dy2 <= best || dx + dy3 <= best) {
! if (dy < dy2 && dy < dy3)
! array_motion_fatten = 0;
! else if (dy2 < dy3)
! array_motion_fatten = -1;
! else array_motion_fatten = 1;
if (doit) {
char *elem = (char *)array->a_vec;
--- 2186,2200 ----
xfield, yfield, wfield, &pxpix, &pypix, &pwpix);
if (pwpix < 4) pwpix = 4;
! dx = pxpix-xpix; if (dx<0) dx=-dx;
! dy = pypix-ypix; if (dy<0) dy=-dy;
if (wonset >= 0) {
! dy2 = pypix+pwpix-ypix; if (dy2<0) dy2=-dy2;
! dy3 = pypix-pwpix-ypix; if (dy3<0) dy3=-dy3;
if (yonset < 0) dy = 100;
! } else dy2 = dy3 = 100;
if (dx + dy <= best || dx + dy2 <= best || dx + dy3 <= best) {
! if (dy<dy2 && dy<dy3) array_motion_fatten = 0;
! else if (dy2<dy3) array_motion_fatten = -1;
! else array_motion_fatten = 1;
if (doit) {
char *elem = (char *)array->a_vec;
***************
*** 2347,2352 ****
sys_queuegui(&x->x_gobj, x->x_glist, garray_doredraw);
else {
! if (x->x_listviewing)
! sys_vgui("pdtk_array_listview_fillpage %s\n", x->x_realname->s_name);
}
garray_update(x);
--- 2322,2326 ----
sys_queuegui(&x->x_gobj, x->x_glist, garray_doredraw);
else {
! if (x->x_listviewing) sys_vgui("pdtk_array_listview_fillpage %s\n", x->x_realname->s_name);
}
garray_update(x);
***************
*** 5740,5758 ****
}
- static void plot_displace(t_gobj *z, t_glist *glist, t_word *data, t_template *template,
- float basex, float basey, int dx, int dy) {
- /* not yet */
- }
-
- static void plot_select(t_gobj *z, t_glist *glist, t_word *data, t_template *template,
- float basex, float basey, int state) {
- /* not yet */
- }
-
- static void plot_activate(t_gobj *z, t_glist *glist, t_word *data, t_template *template,
- float basex, float basey, int state) {
- /* not yet */
- }
-
static void plot_vis(t_gobj *z, t_glist *glist, t_word *data, t_template *template,
float basex, float basey, int tovis) {
--- 5714,5717 ----
***************
*** 5944,5955 ****
}
! t_parentwidgetbehavior plot_widgetbehavior = {
! plot_getrect,
! plot_displace,
! plot_select,
! plot_activate,
! plot_vis,
! plot_click,
! };
static void plot_setup(void) {
--- 5903,5907 ----
}
! t_parentwidgetbehavior plot_widgetbehavior = {plot_getrect,0,0,0,plot_vis,plot_click};
static void plot_setup(void) {
***************
*** 6066,6073 ****
}
- static void drawnumber_select(t_gobj *z, t_glist *glist, t_word *data, t_template *template,
- float basex, float basey, int state) {}
- static void drawnumber_activate(t_gobj *z, t_glist *glist, t_word *data, t_template *template,
- float basex, float basey, int state) {}
static void drawnumber_vis(t_gobj *z, t_glist *glist, t_word *data, t_template *template,
float basex, float basey, int vis) {
--- 6018,6021 ----
***************
*** 6134,6144 ****
t_parentwidgetbehavior drawnumber_widgetbehavior = {
! drawnumber_getrect,
! drawnumber_displace,
! drawnumber_select,
! drawnumber_activate,
! drawnumber_vis,
! drawnumber_click,
! };
static void drawnumber_free(t_drawnumber *x) {}
--- 6082,6086 ----
t_parentwidgetbehavior drawnumber_widgetbehavior = {
! drawnumber_getrect,drawnumber_displace,0,0,drawnumber_vis,drawnumber_click};
static void drawnumber_free(t_drawnumber *x) {}
***************
*** 6367,6373 ****
else {
t_array *owner_array = gs->gs_un.gs_array;
! while (owner_array->a_gp.gp_stub->gs_which == GP_ARRAY)
! owner_array = owner_array->a_gp.gp_stub->gs_un.gs_array;
! glist = owner_array->a_gp.gp_stub->gs_un.gs_glist;
}
canvas = (t_pd *)glist_getcanvas(glist);
--- 6309,6315 ----
else {
t_array *owner_array = gs->gs_un.gs_array;
! while (STUB(owner_array)->gs_which == GP_ARRAY)
! owner_array = STUB(owner_array)->gs_un.gs_array;
! glist = STUB(owner_array)->gs_un.gs_glist;
}
canvas = (t_pd *)glist_getcanvas(glist);
***************
*** 6529,6534 ****
else sp->gv_w.w_float = 0;
if (i) {
! if (x->x_issymbol) symbolinlet_new(&x->x_obj, &sp->gv_w.w_symbol);
! else floatinlet_new(&x->x_obj, &sp->gv_w.w_float);
}
}
--- 6471,6476 ----
else sp->gv_w.w_float = 0;
if (i) {
! if (x->x_issymbol) symbolinlet_new((t_text *)x, &sp->gv_w.w_symbol);
! else floatinlet_new((t_text *)x, &sp->gv_w.w_float);
}
}
***************
*** 6564,6571 ****
else {
t_array *owner_array = gs->gs_un.gs_array;
! while (owner_array->a_gp.gp_stub->gs_which == GP_ARRAY)
! owner_array = owner_array->a_gp.gp_stub->gs_un.gs_array;
! scalar_redraw(owner_array->a_gp.gp_un.gp_scalar,
! owner_array->a_gp.gp_stub->gs_un.gs_glist);
}
}
--- 6506,6511 ----
else {
t_array *owner_array = gs->gs_un.gs_array;
! while (STUB(owner_array)->gs_which == GP_ARRAY) owner_array = STUB(owner_array)->gs_un.gs_array;
! scalar_redraw(owner_array->a_gp.gp_un.gp_scalar, STUB(owner_array)->gs_un.gs_glist);
}
}
***************
*** 6776,6781 ****
} else {
t_array *o = gs->gs_un.gs_array;
! while (o->a_gp.gp_stub->gs_which == GP_ARRAY) o = o->a_gp.gp_stub->gs_un.gs_array;
! if (glist_isvisible(o->a_gp.gp_stub->gs_un.gs_glist))
sys_mgui((t_gobj *)(o->a_gp.gp_un.gp_scalar), "delete","");
}
--- 6716,6721 ----
} else {
t_array *o = gs->gs_un.gs_array;
! while (STUB(o)->gs_which == GP_ARRAY) o = STUB(o)->gs_un.gs_array;
! if (glist_isvisible(STUB(o)->gs_un.gs_glist))
sys_mgui((t_gobj *)(o->a_gp.gp_un.gp_scalar), "delete","");
}
***************
*** 6798,6803 ****
} else {
t_array *o = gs->gs_un.gs_array;
! while (o->a_gp.gp_stub->gs_which == GP_ARRAY) o = o->a_gp.gp_stub->gs_un.gs_array;
! if (glist_isvisible(o->a_gp.gp_stub->gs_un.gs_glist))
gobj_changed((t_gobj *)(o->a_gp.gp_un.gp_scalar),0);
}
--- 6738,6743 ----
} else {
t_array *o = gs->gs_un.gs_array;
! while (STUB(o)->gs_which == GP_ARRAY) o = STUB(o)->gs_un.gs_array;
! if (glist_isvisible(STUB(o)->gs_un.gs_glist))
gobj_changed((t_gobj *)(o->a_gp.gp_un.gp_scalar),0);
}
***************
*** 7108,7112 ****
newest = 0;
binbuf_gettext(b,&s,&n);
! canvas_setcurrent((t_canvas *)gl);
canvas_getargs(&argc, &argv);
binbuf_eval(b, &pd_objectmaker, argc, argv);
--- 7048,7052 ----
newest = 0;
binbuf_gettext(b,&s,&n);
! pd_pushsym((t_pd *)x);
canvas_getargs(&argc, &argv);
binbuf_eval(b, &pd_objectmaker, argc, argv);
***************
*** 7129,7133 ****
if (pd_class(&x->ob_pd) == vinlet_class) canvas_resortinlets(glist_getcanvas(gl));
if (pd_class(&x->ob_pd) == voutlet_class) canvas_resortoutlets(glist_getcanvas(gl));
! canvas_unsetcurrent((t_canvas *)gl);
}
--- 7069,7073 ----
if (pd_class(&x->ob_pd) == vinlet_class) canvas_resortinlets(glist_getcanvas(gl));
if (pd_class(&x->ob_pd) == voutlet_class) canvas_resortoutlets(glist_getcanvas(gl));
! pd_popsym((t_pd *)gl);
}
***************
*** 7613,7617 ****
/* canvas_reorder_last(x,i); */
gobj_changed(x,0);
! /*err: canvas_unsetcurrent(x);*/
}
--- 7553,7557 ----
/* canvas_reorder_last(x,i); */
gobj_changed(x,0);
! /*err: pd_popsym((t_pd *)x);*/
}
More information about the Pd-cvs
mailing list