aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/source/flmsg.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'externals/grill/flext/source/flmsg.cpp')
-rwxr-xr-xexternals/grill/flext/source/flmsg.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/externals/grill/flext/source/flmsg.cpp b/externals/grill/flext/source/flmsg.cpp
index b31ddc41..9a57e4f2 100755
--- a/externals/grill/flext/source/flmsg.cpp
+++ b/externals/grill/flext/source/flmsg.cpp
@@ -138,6 +138,7 @@ bool flext_base::TryMethAny(Item *lst,const t_symbol *s,int argc,const t_atom *a
bool flext_base::FindMeth(int inlet,const t_symbol *s,int argc,const t_atom *argv)
{
Item *lst;
+ ItemCont *clmethhead = ClMeths(thisClassId());
// search for exactly matching tag
if((lst = methhead.FindList(s,inlet)) != NULL && TryMethTag(lst,s,argc,argv)) return true;
@@ -196,7 +197,7 @@ bool flext_base::CbMethodHandler(int inlet,const t_symbol *s,int argc,const t_at
#endif
// If float or int message is not explicitly handled: try list handler instead
- if(!trap && argc == 1 && (s == sym_float
+ if(!trap && argc == 1 && (s == sym_float || s == sym_symbol
#if FLEXT_SYS == FLEXT_SYS_MAX
|| s == sym_int
#endif
@@ -208,6 +209,8 @@ bool flext_base::CbMethodHandler(int inlet,const t_symbol *s,int argc,const t_at
else if(s == sym_int)
SetInt(list,GetInt(argv[0]));
#endif
+ else if(s == sym_symbol)
+ SetSymbol(list,GetSymbol(argv[0]));
trap = true;
ret = CbMethodHandler(inlet,sym_list,1,&list);
@@ -226,7 +229,7 @@ bool flext_base::CbMethodHandler(int inlet,const t_symbol *s,int argc,const t_at
if(ret) goto end;
// if distmsgs is switched on then distribute list elements over inlets (Max/MSP behavior)
- if(distmsgs && !trap && inlet == 0 && s == sym_list && insigs <= 1) {
+ if(DoDist() && !trap && inlet == 0 && s == sym_list && insigs <= 1) {
int i = incnt;
if(i > argc) i = argc;
for(--i; i >= 0; --i) { // right to left distribution