Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Aayush
purr-data
Commits
253b8bfd
Commit
253b8bfd
authored
Mar 04, 2011
by
Ivica Bukvic
Committed by
Hans-Christoph Steiner
Nov 02, 2011
Browse files
Pd-0.42.5-extended-l2ork-dev-20110303.tar.bz2
parent
144a0443
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/g_editor.c
View file @
253b8bfd
...
...
@@ -2285,9 +2285,11 @@ void canvas_selectinrect(t_canvas *x, int lox, int loy, int hix, int hiy)
{
int
x1
,
y1
,
x2
,
y2
;
gobj_getrect
(
y
,
x
,
&
x1
,
&
y1
,
&
x2
,
&
y2
);
if
(
hix
>=
x1
&&
lox
<=
x2
&&
hiy
>=
y1
&&
loy
<=
y2
&&
!
glist_isselected
(
x
,
y
))
glist_select
(
x
,
y
);
if
(
hix
>=
x1
&&
lox
<=
x2
&&
hiy
>=
y1
&&
loy
<=
y2
)
{
if
(
!
glist_isselected
(
x
,
y
))
glist_select
(
x
,
y
);
else
glist_deselect
(
x
,
y
);
}
}
}
...
...
@@ -2734,6 +2736,15 @@ void glob_verifyquit(void *dummy, t_floatarg f)
/* close a window (or possibly quit Pd), checking for dirty flags.
The "force" parameter is interpreted as follows:
FOR INTERNAL USE (using it explicitly via pd messages induces
a crash because pd_free is called before the previous function
has run its course and thus you end up with hard-to-trace crash)
-1 - request from GUI to close, no verification
(after it returns back from tcl/tk side of things to avoid
freeing before the last method has run its course)
OFFICIAL USE
0 - request from GUI to close, verifying whether clean or dirty
1 - request from GUI to close, no verification
2 - verified - mark this one clean, then continue as in 1
...
...
@@ -2743,7 +2754,9 @@ void canvas_menuclose(t_canvas *x, t_floatarg fforce)
{
int
force
=
fforce
;
t_glist
*
g
;
if
(
x
->
gl_owner
&&
(
force
==
0
||
force
==
1
))
if
(
force
==
-
1
)
pd_free
(
&
x
->
gl_pd
);
else
if
(
x
->
gl_owner
&&
(
force
==
0
||
force
==
1
))
canvas_vis
(
x
,
0
);
/* if subpatch, just invis it */
else
if
(
force
==
0
)
{
...
...
@@ -2776,10 +2789,12 @@ void canvas_menuclose(t_canvas *x, t_floatarg fforce)
canvas_getrootfor(x), canvas_getrootfor(x)->gl_name->s_name, x);
}
*/
else
pd_free
(
&
x
->
gl_pd
);
else
//pd_free(&x->gl_pd);
sys_vgui
(
"pd {.x%lx menuclose -1;}
\n
"
,
x
);
}
else
if
(
force
==
1
)
pd_free
(
&
x
->
gl_pd
);
//pd_free(&x->gl_pd);
sys_vgui
(
"pd {.x%lx menuclose -1;}
\n
"
,
x
);
else
if
(
force
==
2
)
{
canvas_dirty
(
x
,
0
);
...
...
@@ -2801,7 +2816,8 @@ void canvas_menuclose(t_canvas *x, t_floatarg fforce)
// canvas_getrootfor(x), g);
return
;
}
else
pd_free
(
&
x
->
gl_pd
);
else
//pd_free(&x->gl_pd);
sys_vgui
(
"pd {.x%lx menuclose -1;}
\n
"
,
x
);
}
else
if
(
force
==
3
)
{
...
...
src/m_pd.h
View file @
253b8bfd
...
...
@@ -11,7 +11,7 @@ extern "C" {
#define PD_MAJOR_VERSION 0
#define PD_MINOR_VERSION 42
#define PD_BUGFIX_VERSION 5
#define PD_TEST_VERSION "extended-l2ork-2011030
1
"
#define PD_TEST_VERSION "extended-l2ork-2011030
3
"
/* old name for "MSW" flag -- we have to take it for the sake of many old
"nmakefiles" for externs, which will define NT and not MSW */
...
...
src/x_connective.c
View file @
253b8bfd
...
...
@@ -931,9 +931,14 @@ static t_class *trigger_class;
#define TR_LIST 4
#define TR_ANYTHING 5
#define TR_STATIC_FLOAT 6
#define TR_STATIC_SYMBOL 7
typedef
struct
triggerout
{
int
u_type
;
/* outlet type from above */
t_symbol
u_sym
;
/* static value */
t_float
u_float
;
/* static value */
t_outlet
*
u_outlet
;
}
t_triggerout
;
...
...
@@ -963,8 +968,13 @@ static void *trigger_new(t_symbol *s, int argc, t_atom *argv)
{
t_atomtype
thistype
=
ap
->
a_type
;
char
c
;
if
(
thistype
==
TR_SYMBOL
)
c
=
ap
->
a_w
.
w_symbol
->
s_name
[
0
];
else
if
(
thistype
==
TR_FLOAT
)
c
=
'f'
;
if
(
thistype
==
TR_SYMBOL
)
{
if
(
strlen
(
ap
->
a_w
.
w_symbol
->
s_name
)
==
1
)
c
=
ap
->
a_w
.
w_symbol
->
s_name
[
0
];
else
c
=
'S'
;
}
else
if
(
thistype
==
TR_FLOAT
)
c
=
'F'
;
else
c
=
0
;
if
(
c
==
'p'
)
u
->
u_type
=
TR_POINTER
,
...
...
@@ -981,8 +991,18 @@ static void *trigger_new(t_symbol *s, int argc, t_atom *argv)
else
if
(
c
==
'a'
)
u
->
u_type
=
TR_ANYTHING
,
u
->
u_outlet
=
outlet_new
(
&
x
->
x_obj
,
&
s_symbol
);
else
{
else
if
(
c
==
'F'
)
{
//static float
u
->
u_float
=
ap
->
a_w
.
w_float
;
u
->
u_type
=
TR_STATIC_FLOAT
;
u
->
u_outlet
=
outlet_new
(
&
x
->
x_obj
,
&
s_float
);
}
else
if
(
c
==
'S'
)
{
//static symbol
u
->
u_sym
=
*
ap
->
a_w
.
w_symbol
;
u
->
u_type
=
TR_STATIC_SYMBOL
;
u
->
u_outlet
=
outlet_new
(
&
x
->
x_obj
,
&
s_symbol
);
}
else
{
pd_error
(
x
,
"trigger: %s: bad type"
,
ap
->
a_w
.
w_symbol
->
s_name
);
u
->
u_type
=
TR_FLOAT
,
u
->
u_outlet
=
outlet_new
(
&
x
->
x_obj
,
&
s_float
);
}
...
...
@@ -1009,6 +1029,14 @@ static void trigger_list(t_trigger *x, t_symbol *s, int argc, t_atom *argv)
pd_error
(
x
,
"unpack: bad pointer"
);
else
outlet_pointer
(
u
->
u_outlet
,
argv
->
a_w
.
w_gpointer
);
}
else
if
(
u
->
u_type
==
TR_STATIC_FLOAT
)
{
outlet_float
(
u
->
u_outlet
,
u
->
u_float
);
}
else
if
(
u
->
u_type
==
TR_STATIC_SYMBOL
)
{
outlet_symbol
(
u
->
u_outlet
,
&
u
->
u_sym
);
}
else
outlet_list
(
u
->
u_outlet
,
&
s_list
,
argc
,
argv
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment