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
nerrons
purr-data
Commits
7c054d12
Commit
7c054d12
authored
Jan 12, 2018
by
Jonathan Wilkes
Browse files
Merge remote-tracking branch 'origin/master' into pdgui-refactor
parents
e66428d7
c6485c39
Changes
35
Hide whitespace changes
Inline
Side-by-side
README.md
View file @
7c054d12
...
...
@@ -354,7 +354,7 @@ The following is adapted from Pd Vanilla's original source notes. (Found
in pd/src/CHANGELOG.txt for some reason...)
Sections 2-3 below are quite old. Someone needs to check whether they even
hold true for Pd Vanilla any
more.
hold true for Pd Vanilla anymore.
#### Structure definition roadmap.
...
...
@@ -364,19 +364,19 @@ and t_graph and t_canvas, should be unified...)
BEFORE 0.35:
m_pd.h
t_pd
anything with a class
t_gobj
"graphic object"
t_text
text object
g_canvas.h
t_glist
list of graphic objects
g_canvas.c
t_canvas Pd "document"
m_pd.h
t_pd
anything with a class
t_gobj
"graphic object"
t_text
text object
g_canvas.h
t_glist
list of graphic objects
g_canvas.c
t_canvas
Pd "document"
AFTER 0.35:
m_pd.h
t_pd
anything with a class
t_gobj
"graphic object"
t_text
patchable object, AKA t_object
g_canvas.h
t_glist list of graphic objects, AKA t_canvas
m_pd.h
t_pd
anything with a class
t_gobj
"graphic object"
t_text
patchable object, AKA t_object
g_canvas.h
t_glist
list of graphic objects, AKA t_canvas
Other structures:
...
...
@@ -390,7 +390,7 @@ Other structures:
#### 1. Coding Style
1.
0 C coding style. The source should pass most "warnings" of C compilers
(-Wall on
l
inux, for instance
;
see the makefile.) Some informalities
(-Wall on
L
inux, for instance
--
see the makefile.) Some informalities
are intentional, for instance the loose use of function prototypes (see
below) and uncast conversions from longer to shorter numerical formats.
The code doesn't respect "const" yet.
...
...
@@ -483,7 +483,7 @@ which are all frequently called and which don't fit into simple categories.
Important packages are:
(pd-gui:) pdgui -- everything
(pd:)
pd -- functions common to all "pd" objects
(pd:)
pd -- functions common to all "pd" objects
obj -- fuctions common to all "patchable" objects ala Max
sys -- "system" level functions
binbuf -- functions manipulating binbufs
...
...
debuild/Makefile
View file @
7c054d12
...
...
@@ -81,7 +81,8 @@ deb: $(debsrc) $(addprefix debian/nwjs/, $(nwjs))
# This can be removed once Ubuntu 12.04 finally goes the way of the dodo.
# cd $(debdist) && patch -p1 < ../precise-configure.patch
# Patch the user config dir name so that purr-data can coexist with pd-l2ork.
cd
$(debdist)
&&
patch
-Np1
<
../userconfig.patch
# Not needed with purr-data 2.4.5+ any more.
# cd $(debdist) && patch -Np1 < ../userconfig.patch
# Make sure to copy the Debian files which may have uncommitted changes.
# Then run debuild to create the package.
cd
$(debdist)
&&
cp
-R
../debian
.
&&
debuild
$(DEBUILD_FLAGS)
...
...
externals/ggee/gui/image.c
View file @
7c054d12
...
...
@@ -465,7 +465,7 @@ static void image_setwidget(void)
static
void
image_free
(
t_image
*
x
)
{
//sys_vgui("image delete img%x\n", x);
gui_vmess
(
"gui_
draw
image_free"
,
"x"
,
x
);
gui_vmess
(
"gui_image_free"
,
"x"
,
x
);
if
(
x
->
x_receive
)
{
pd_unbind
(
&
x
->
x_obj
.
ob_pd
,
x
->
x_receive
);
...
...
externals/tof/src/imagebang.c
View file @
7c054d12
...
...
@@ -305,8 +305,8 @@ static void imagebang_free(t_imagebang *x) {
sprintf
(
key_a
,
"%lx_a"
,
(
long
unsigned
int
)
x
);
sprintf
(
key_b
,
"%lx_b"
,
(
long
unsigned
int
)
x
);
gui_vmess
(
"gui_
draw
image_free"
,
"s"
,
key_a
);
gui_vmess
(
"gui_
draw
image_free"
,
"s"
,
key_b
);
gui_vmess
(
"gui_image_free"
,
"s"
,
key_a
);
gui_vmess
(
"gui_image_free"
,
"s"
,
key_b
);
if
(
x
->
receive
)
{
pd_unbind
(
&
x
->
x_obj
.
ob_pd
,
x
->
receive
);
}
...
...
packages/linux_make/Makefile
View file @
7c054d12
...
...
@@ -12,18 +12,16 @@ BUILDLAYOUT_DIR = $(cvs_root_dir)/packages
include
$(BUILDLAYOUT_DIR)/Makefile.buildlayout
# if machine has dpkg-deb, build a Debian package
#
ifeq ($(shell test -x /usr/bin/dpkg-deb && echo YES),YES)
#
PACKAGE_TYPE = deb
#
else
#
PACKAGE_TYPE = tarbz2
#
endif
ifeq
($(shell test -x /usr/bin/dpkg-deb && echo YES),YES)
PACKAGE_TYPE
=
deb
else
PACKAGE_TYPE
=
tarbz2
endif
# for command-line UNIX versions, you need to install Pd into the same
# directory as $(prefix) otherwise Pd won't be able to find extra, doc, etc.
ifeq
($(PACKAGE_TYPE),deb)
prefix
=
/usr
# generates the dependencies for all externals and pd itself
PACKAGE_DEPENDS
:=
$(
shell
find
$(DESTDIR)
\(
-name
"*.pd_linux"
-or
-name
pd-gui
-or
-wholename
\*
bin/pd
\)
-print0
| xargs
-0
dpkg-shlibdeps
-O
|
sed
's|shlibs:Depends=|, |'
)
else
prefix
=
/usr/local
endif
...
...
@@ -160,6 +158,9 @@ deb: debstage
cp
$(packages_src)/linux_make/debian/control
$(DESTDIR)/DEBIAN
cp
$(packages_src)/linux_make/debian/pd-l2ork.postrm
$(DESTDIR)/DEBIAN
cp
$(packages_src)/linux_make/debian/pd-l2ork.postinst
$(DESTDIR)/DEBIAN
# generate the dependencies for all externals and pd itself
$(eval PACKAGE_DEPENDS
:
= $(shell find $(DESTDIR)
\(
-name "*.pd_linux" -or -name pd-gui -or -wholename
\*
bin/pd
\)
-print0 | xargs -0 dpkg-shlibdeps -O | sed 's|shlibs:Depends=|
,
|' ))
# set build architecture and version for the package
sed -i 's|^Version
:
.*|Version: $(DEB_PD_VERSION)|'
\
$(DESTDIR)/DEBIAN/control
...
...
@@ -279,7 +280,7 @@ test_locations:
@
echo
"EXAMPLESDIR
$(examplesdir)
"
@
echo
--------------------------------------------------
# @echo "PACKAGE_DEPENDS $(PACKAGE_DEPENDS)"
#
@echo --------------------------------------------------
@echo
--------------------------------------------------
autoconf
--version
@echo
--------------------------------------------------
make
--version
...
...
packages/linux_make/debian/control
View file @
7c054d12
...
...
@@ -6,7 +6,7 @@ Maintainer: Ivica Ico Bukvic <ico@vt.edu>
Homepage: http://l2ork.music.vt.edu
Package: pd-l2ork
Architecture: i386
Depends:
libc6, xterm | x-terminal-emulator, libasound2, libjack-jackd2-0, libbluetooth3, libgl1-mesa-glx, libgl1-mesa-dri, libglu1-mesa, libftgl2, libgmerlin0, libgmerlin-avdec1, libavifile-0.7c2, libmpeg3-1 | libmpeg3-2, libquicktime2, libv4l-0, libraw1394-11, libdc1394-22, libfftw3-3, libvorbis0a, libmp3lame0, libspeex1, libgsl0ldbl | libgsl2, python, libsmpeg0, libjpeg62, libflite1, libgsm1, libxv1
, fluid-soundfont-gm
, byacc
Depends:
python
, fluid-soundfont-gm
Provides: pd-l2ork
Installed-Size: 90624
Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, slv2-jack, omins, ubuntustudio-audio-plugins, rev-plugins, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2
...
...
packages/linux_make/debian/control.desktop
View file @
7c054d12
...
...
@@ -6,7 +6,7 @@ Maintainer: Ivica Ico Bukvic <ico@vt.edu>
Homepage: http://l2ork.music.vt.edu
Package: pd-l2ork
Architecture: i386
Depends:
libc6, xterm | x-terminal-emulator, libasound2, libjack-jackd2-0, libbluetooth3, libgl1-mesa-glx, libgl1-mesa-dri, libglu1-mesa, libftgl2, libgmerlin0, libgmerlin-avdec1, libavifile-0.7c2, libmpeg3-1 | libmpeg3-2, libquicktime2, libv4l-0, libraw1394-11, libdc1394-22, libfftw3-3, libvorbis0a, libmp3lame0, libspeex1, libgsl0ldbl | libgsl2, python, libsmpeg0, libjpeg62, libflite1, libgsm1, libxv1
, fluid-soundfont-gm
, byacc
Depends:
python
, fluid-soundfont-gm
Provides: pd-l2ork
Installed-Size: 90624
Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, slv2-jack, omins, ubuntustudio-audio-plugins, rev-plugins, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2
...
...
packages/linux_make/debian/control.raspbian
View file @
7c054d12
...
...
@@ -6,7 +6,7 @@ Maintainer: Ivica Ico Bukvic <ico@vt.edu>
Homepage: http://l2ork.music.vt.edu
Package: pd-l2ork
Architecture: i386
Depends:
xterm | x-terminal-emulator, libasound2, libjack-jackd2-0, libbluetooth3, libgl1-mesa-glx, libglu1-mesa, libftgl2, libgmerlin0, libgmerlin-avdec1, libavifile-0.7c2, libmpeg3-1 | libmpeg3-2, libquicktime2, libv4l-0, libraw1394-11, libdc1394-22, libfftw3-3, libvorbis0a, libmp3lame0, libspeex1, libgsl0ldbl, python, libsmpeg0, libjpeg62, tkpng, libflite1, libgsm1, libxv1
, fluid-soundfont-gm
, byacc
Depends:
python
, fluid-soundfont-gm
Provides: pd-l2ork
Installed-Size: 90624
Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, slv2-jack, omins, ubuntustudio-audio-plugins, rev-plugins, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2
...
...
packages/linux_make/debian/control.ubuntu
View file @
7c054d12
...
...
@@ -6,7 +6,7 @@ Maintainer: Ivica Ico Bukvic <ico@vt.edu>
Homepage: http://l2ork.music.vt.edu
Package: pd-l2ork
Architecture: i386
Depends:
xterm | x-terminal-emulator, libc6 (>= 2.1.5), libasound2, libjack-jackd2-0, libbluetooth3, libgl1-mesa-glx, libgl1-mesa-dri, libglu1-mesa, libglew1.5, libmagick++4, libftgl2, libgmerlin0, libgmerlin-avdec1, libavifile-0.7c2, libmpeg3-1, libquicktime2, libv4l-0, libraw1394-11, libdc1394-22, libfftw3-3, libvorbis0a, libmp3lame0, libspeex1, libgsl0ldbl, python, libsmpeg0, libjpeg62, libflite1, libgsm1
Depends:
python, fluid-soundfont-gm
Provides: pd-l2ork
Installed-Size: 90624
Recommends: xdg-utils, pulseaudio-utils, tap-plugins, ladspa-foo-plugins, invada-studio-plugins-ladspa, blepvco, swh-plugins, mcp-plugins, cmt, blop, slv2-jack, omins, ubuntustudio-audio-plugins, rev-plugins, dssi-utils, vco-plugins, wah-plugins, fil-plugins, mda-lv2
...
...
pd/doc/4.data.structures/03.setting.data.pd
View file @
7c054d12
...
...
@@ -40,7 +40,7 @@
and one unit thick \, through the points (0 \, 0) \, (w \, 0) \, (w
\, h) \, and (0 \, h). Note that the three points containing variables
become hot spots for mouse dragging.;
#X text 26 204 Draw the value of q as an Arab
o
c numeral \, at (0 \,
#X text 26 204 Draw the value of q as an Arab
i
c numeral \, at (0 \,
0) \, in black.;
#X obj 24 39 struct template3 float x float y float w float h float
q;
...
...
pd/doc/5.reference/fudiformat-help.pd
0 → 100644
View file @
7c054d12
#N canvas 51 189 685 507 10;
#X text 36 21 fudiformat - convert lists to FUDI packets, f 61;
#X msg 72 127 1 2 3;
#X obj 180 312 fudiparse;
#X obj 72 311 print packet;
#X msg 342 389 disconnect;
#X obj 334 416 netsend -u -b;
#X msg 343 365 connect localhost 5000;
#X obj 335 315 list prepend send;
#X obj 335 340 list trim;
#X obj 180 337 print reassembled;
#X text 437 389 don't send;
#X text 530 364 send as UDP;
#X text 54 454 see also:;
#X obj 127 455 fudiparse;
#X obj 72 278 fudiformat;
#X msg 80 154 foo 4 5 weasel 6 7 rat;
#X text 125 128 FUDI messages with numbers and symbols.;
#X text 29 55 fudiformat makes FUDI messages suitable for sending over
the network via netsend (in UDP mode). Incoming messages are output
as FUDI messages \, byte by byte., f 61;
#X obj 439 250 fudiformat -u;
#X obj 127 475 oscformat;
#X text 281 193 The '-u' creation argument switches to "UDP" mode \,
omitting the packet separator. This saves some two bytes \, but only
works when sending single FUDI messages over UDP. It doesn't work with
TCP/IP (however \, you can use the default format even with UDP transport).
;
#X connect 1 0 14 0;
#X connect 2 0 9 0;
#X connect 4 0 5 0;
#X connect 6 0 5 0;
#X connect 7 0 8 0;
#X connect 8 0 5 0;
#X connect 14 0 3 0;
#X connect 14 0 7 0;
#X connect 14 0 2 0;
#X connect 15 0 14 0;
pd/doc/5.reference/fudiparse-help.pd
0 → 100644
View file @
7c054d12
#N canvas 6 49 673 427 10;
#X obj 171 286 fudiparse;
#X text 52 373 see also:;
#X obj 171 309 print parse-output;
#X obj 419 231 netreceive -u -b;
#X msg 419 176 listen 5000;
#X msg 431 204 listen 0;
#X text 520 203 stop listening;
#X msg 57 181 1 2 3 foo 5;
#X text 51 156 numbers and symbols;
#X obj 57 286 print packet;
#X text 416 152 packets from network;
#X text 558 231 UDP packets \, binary output, f 13;
#X text 80 11 fudiparse - parse FUDI packets into Pd messages, f 67
;
#X obj 57 206 fudiformat;
#X obj 222 206 fudiformat -u;
#X text 220 159 without packet separator;
#X msg 222 181 flab -1 1.1;
#X obj 140 373 fudiformat;
#X obj 224 373 oscparse;
#X obj 222 226 t a a;
#X obj 57 226 t a a;
#X text 45 40 fudiparse takes incoming lists of numbers \, interpreting
them as the bytes in a FUDI message (as received when sending Pd-messages
via [netreceive -b]).;
#X text 521 176 listen on port 5000;
#X connect 0 0 2 0;
#X connect 3 0 0 0;
#X connect 4 0 3 0;
#X connect 5 0 3 0;
#X connect 7 0 13 0;
#X connect 13 0 20 0;
#X connect 14 0 19 0;
#X connect 16 0 14 0;
#X connect 19 0 0 0;
#X connect 19 1 9 0;
#X connect 20 0 0 0;
#X connect 20 1 9 0;
pd/doc/5.reference/help-intro.pd
View file @
7c054d12
#N struct ;
#N canvas 3
55 65
579
812
12;
#N canvas 3
94 53
579
639
12;
#X declare;
#X obj 24 150 bang;
#X text 124 150 - output a bang message;
...
...
@@ -398,7 +398,6 @@ its "help window".;
#X text 118 3676 - make copies of a subpatch;
#X obj 26 3676 clone;
#X obj 157 1167 midirealtimein;
#X obj 301 1169 midiclkin;
#X text 124 3530 - read with a time-varying delay time;
#X obj 97 3532 vd~;
#X obj 26 2081 rsqrt~;
...
...
pd/nw/locales/de/translation.json
View file @
7c054d12
...
...
@@ -306,6 +306,8 @@
"viewbox_offsets"
:
"Anzeigebox-Offsets"
,
"arrays"
:
"Feld-Optionen"
},
"no_scroll"
:
"Rollbalken verbergen (experimentell)"
,
"no_scroll_tt"
:
"Rollbalken verbergen (experimentell)"
,
"gop"
:
"Anzeige im übergeordneten Patch"
,
"gop_tt"
:
"Zeige den Inhalt dieses Patches in einem Rechteck im übergeordneten Patch"
,
"hide_name"
:
"Namen und Argumente verbergen"
,
...
...
pd/nw/pd_canvas.js
View file @
7c054d12
...
...
@@ -117,7 +117,7 @@ function nw_window_focus_callback(name) {
function
nw_window_blur_callback
(
name
)
{
// Fake a mouseup event to keep from getting a dangling selection box
if
(
canvas_events
.
get_state
===
"
normal
"
)
{
if
(
canvas_events
.
get_state
()
===
"
normal
"
)
{
pdgui
.
pdsend
(
name
,
"
mouseup_fake
"
);
}
}
...
...
pd/nw/pdgui.js
View file @
7c054d12
...
...
@@ -3575,7 +3575,7 @@ function gui_drawimage_new(obj_tag, file_path, canvasdir, flags) {
pd_cache
.
set
(
obj_tag
,
drawimage_data
);
// add the data to container
}
function
gui_
draw
image_free
(
obj_tag
)
{
function
gui_image_free
(
obj_tag
)
{
var
c
=
pd_cache
.
get
(
obj_tag
);
if
(
c
)
{
pd_cache
.
free
(
obj_tag
);
// empty the image(s)
...
...
pd/src/g_all_guis.c
View file @
7c054d12
...
...
@@ -231,19 +231,15 @@ void iemgui_receive(t_iemgui *x, t_symbol *s)
void
iemgui_label
(
t_iemgui
*
x
,
t_symbol
*
s
)
{
t_symbol
*
old
;
if
(
s
==
&
s_
)
s
=
s_empty
;
//tb: fix for empty label
old
=
x
->
x_lab
;
t_symbol
*
lab
=
iemgui_raute2dollar
(
s
);
x
->
x_lab_unexpanded
=
lab
;
x
->
x_lab
=
lab
=
canvas_realizedollar
(
x
->
x_glist
,
lab
);
if
(
glist_isvisible
(
x
->
x_glist
))
{
gui_vmess
(
"gui_iemgui_label_set"
,
"xxs"
,
glist_getcanvas
(
x
->
x_glist
),
x
,
s
!=
s_empty
?
x
->
x_lab
->
s_name
:
""
);
if
(
glist_isvisible
(
x
->
x_glist
)
&&
lab
!=
old
)
iemgui_shouldvis
(
x
,
IEM_GUI_DRAW_MODE_CONFIG
);
}
}
void
iemgui_label_pos
(
t_iemgui
*
x
,
t_symbol
*
s
,
int
ac
,
t_atom
*
av
)
...
...
pd/src/g_canvas.c
View file @
7c054d12
...
...
@@ -745,12 +745,12 @@ void canvas_scalar_event(t_canvas *x, t_symbol *s, int argc, t_atom *argv)
void
canvas_show_scrollbars
(
t_canvas
*
x
,
t_floatarg
f
)
{
x
->
gl_noscroll
=
(
int
)
f
;
gui_vmess
(
"gui_canvas_set_scrollbars"
,
"xi"
,
x
,
(
int
)
f
);
if
(
x
->
gl_mapped
)
gui_vmess
(
"gui_canvas_set_scrollbars"
,
"xi"
,
x
,
(
int
)
f
);
}
void
canvas_show_menu
(
t_canvas
*
x
,
t_floatarg
f
)
{
post
(
"setting nomenu to %d"
,
f
);
x
->
gl_nomenu
=
(
int
)
f
;
}
...
...
@@ -826,28 +826,29 @@ void canvas_map(t_canvas *x, t_floatarg f)
t_gobj
*
y
;
if
(
flag
)
{
t_selection
*
sel
;
if
(
!
x
->
gl_havewindow
)
{
bug
(
"canvas_map"
);
canvas_vis
(
x
,
1
);
}
if
(
!
x
->
gl_list
)
{
//if there are no objects on the canvas
canvas_create_editor
(
x
);
}
else
for
(
y
=
x
->
gl_list
;
y
;
y
=
y
->
g_next
)
{
gobj_vis
(
y
,
x
,
1
);
if
(
!
glist_isvisible
(
x
))
{
t_selection
*
sel
;
if
(
!
x
->
gl_havewindow
)
{
bug
(
"canvas_map"
);
canvas_vis
(
x
,
1
);
}
if
(
!
x
->
gl_list
)
{
//if there are no objects on the canvas
canvas_create_editor
(
x
);
}
else
for
(
y
=
x
->
gl_list
;
y
;
y
=
y
->
g_next
)
{
gobj_vis
(
y
,
x
,
1
);
}
if
(
x
->
gl_editor
&&
x
->
gl_editor
->
e_selection
)
for
(
sel
=
x
->
gl_editor
->
e_selection
;
sel
;
sel
=
sel
->
sel_next
)
gobj_select
(
sel
->
sel_what
,
x
,
1
);
x
->
gl_mapped
=
1
;
canvas_drawlines
(
x
);
if
(
x
->
gl_isgraph
&&
x
->
gl_goprect
)
canvas_drawredrect
(
x
,
1
);
scrollbar_update
(
x
);
}
if
(
x
->
gl_editor
&&
x
->
gl_editor
->
e_selection
)
for
(
sel
=
x
->
gl_editor
->
e_selection
;
sel
;
sel
=
sel
->
sel_next
)
gobj_select
(
sel
->
sel_what
,
x
,
1
);
x
->
gl_mapped
=
1
;
canvas_drawlines
(
x
);
if
(
x
->
gl_isgraph
&&
x
->
gl_goprect
)
canvas_drawredrect
(
x
,
1
);
scrollbar_update
(
x
);
}
else
{
...
...
pd/src/g_editor.c
View file @
7c054d12
...
...
@@ -220,6 +220,13 @@ int gobj_shouldvis(t_gobj *x, struct _glist *glist)
//fprintf(stderr,"shouldvis %d %d %d %d\n",
// glist->gl_havewindow, glist->gl_isgraph,
// glist->gl_goprect, glist->gl_owner != NULL);
/* if our parent is a graph, and if that graph itself isn't
visible, then we aren't either. */
if
(
!
glist
->
gl_havewindow
&&
glist
->
gl_isgraph
&&
glist
->
gl_owner
&&
!
gobj_shouldvis
(
&
glist
->
gl_gobj
,
glist
->
gl_owner
))
return
(
0
);
/* if we're graphing-on-parent and the object falls outside the
graph rectangle, don't draw it. */
if
(
!
glist
->
gl_havewindow
&&
glist
->
gl_isgraph
&&
glist
->
gl_goprect
&&
glist
->
gl_owner
&&
(
pd_class
(
&
x
->
g_pd
)
!=
scalar_class
)
&&
(
pd_class
(
&
x
->
g_pd
)
!=
garray_class
))
...
...
@@ -1329,6 +1336,14 @@ static void glist_doreload(t_glist *gl, t_symbol *name, t_symbol *dir,
do g = g->g_next in this case. */
//int j = glist_getindex(gl, g);
//fprintf(stderr, "rebuildlicious %d\n", j);
// Bugfix for cases where canvas_vis doesn't actually create a
// new editor. We need to fix canvas_vis so that the bug doesn't
// get triggered. But since we know this fixes a regression we'll
// keep this as a point in the history as we fix canvas_vis. Once
// that's done we can remove this call.
canvas_create_editor
(
gl
);
if
(
!
gl
->
gl_havewindow
)
{
canvas_vis
(
glist_getcanvas
(
gl
),
1
);
...
...
@@ -1380,7 +1395,7 @@ static void glist_doreload(t_glist *gl, t_symbol *name, t_symbol *dir,
them to reload an abstraction; also suppress window list update */
int
glist_amreloadingabstractions
=
0
;
/* call
canvas
_doreload on everyone */
/* call
glist
_doreload on everyone */
void
canvas_reload
(
t_symbol
*
name
,
t_symbol
*
dir
,
t_gobj
*
except
)
{
t_canvas
*
x
;
...
...
@@ -2880,7 +2895,7 @@ static void canvas_donecanvasdialog(t_glist *x,
{
glist_noselect
(
x
);
gobj_vis
(
&
x
->
gl_gobj
,
x
->
gl_owner
,
0
);
if
(
gobj_shouldvis
(
&
x
->
gl_obj
,
x
->
gl_owner
))
if
(
gobj_shouldvis
(
&
x
->
gl_
g
obj
,
x
->
gl_owner
))
{
gobj_vis
(
&
x
->
gl_gobj
,
x
->
gl_owner
,
1
);
//fprintf(stderr,"yes\n");
...
...
pd/src/g_graph.c
View file @
7c054d12
...
...
@@ -311,11 +311,11 @@ void glist_grab(t_glist *x, t_gobj *y, t_glistmotionfn motionfn,
t_canvas
*
glist_getcanvas
(
t_glist
*
x
)
{
//fprintf(stderr,"glist_getcanvas\n");
while
(
x
->
gl_owner
&&
!
x
->
gl_havewindow
&&
x
->
gl_isgraph
&&
gobj_shouldvis
(
&
x
->
gl_gobj
,
x
->
gl_owner
))
while
(
x
->
gl_owner
&&
!
x
->
gl_havewindow
&&
x
->
gl_isgraph
)
{
//fprintf(stderr,"x=%lx x->gl_owner=%d x->gl_havewindow=%d x->gl_isgraph=%d gobj_shouldvis=%d\n",
// x, (x->gl_owner ? 1:0), x->gl_havewindow, x->gl_isgraph,
//fprintf(stderr,"x=%lx x->gl_owner=%d x->gl_havewindow=%d "
// "x->gl_isgraph=%d gobj_shouldvis=%d\n",
// x, (x->gl_owner ? 1:0), x->gl_havewindow, x->gl_isgraph,
// gobj_shouldvis(&x->gl_gobj, x->gl_owner));
x
=
x
->
gl_owner
;
//fprintf(stderr,"+\n");
...
...
@@ -1244,7 +1244,6 @@ static void graph_getrect(t_gobj *z, t_glist *glist,
int
hadwindow
;
t_gobj
*
g
;
int
x21
,
y21
,
x22
,
y22
;
graph_graphrect
(
z
,
glist
,
&
x1
,
&
y1
,
&
x2
,
&
y2
);
//fprintf(stderr,"%d %d %d %d\n", x1, y1, x2, y2);
...
...
@@ -1266,7 +1265,6 @@ static void graph_getrect(t_gobj *z, t_glist *glist,
hadwindow
=
x
->
gl_havewindow
;
x
->
gl_havewindow
=
0
;
for
(
g
=
x
->
gl_list
;
g
;
g
=
g
->
g_next
)
if
(
gobj_shouldvis
(
g
,
x
))
{
/* don't do this for arrays, just let them hang outside the
box. */
...
...
@@ -1435,7 +1433,7 @@ static void graph_select(t_gobj *z, t_glist *glist, int state)
}
if
(
glist_isvisible
(
glist
)
&&
(
glist_istoplevel
(
glist
)
||
gobj_shouldvis
(
x
,
glist
)))
gobj_shouldvis
(
z
,
glist
)))
{
if
(
state
)
gui_vmess
(
"gui_gobj_select"
,
"xs"
,
...
...
Prev
1
2
Next
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