[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