aboutsummaryrefslogtreecommitdiff
path: root/pd/src/g_readwrite.c
diff options
context:
space:
mode:
Diffstat (limited to 'pd/src/g_readwrite.c')
-rw-r--r--pd/src/g_readwrite.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/pd/src/g_readwrite.c b/pd/src/g_readwrite.c
index 97b56c02..9f809759 100644
--- a/pd/src/g_readwrite.c
+++ b/pd/src/g_readwrite.c
@@ -704,7 +704,11 @@ static void canvas_savetofile(t_canvas *x, t_symbol *filename, t_symbol *dir)
{
/* if not an abstraction, reset title bar and directory */
if (!x->gl_owner)
+{
canvas_rename(x, filename, dir);
+ /* update window list in case Save As changed the window name */
+ canvas_updatewindowlist();
+}
post("saved to: %s/%s", dir->s_name, filename->s_name);
canvas_dirty(x, 0);
canvas_reload(filename, dir, &x->gl_gobj);
@@ -715,7 +719,7 @@ static void canvas_savetofile(t_canvas *x, t_symbol *filename, t_symbol *dir)
static void canvas_menusaveas(t_canvas *x)
{
t_canvas *x2 = canvas_getrootfor(x);
- sys_vgui("pdtk_canvas_saveas .x%lx \"%s\" \"%s\"\n", x2,
+ sys_vgui("pdtk_canvas_saveas .x%lx {%s} {%s}\n", x2,
x2->gl_name->s_name, canvas_getdir(x2)->s_name);
}
@@ -724,7 +728,8 @@ static void canvas_menusave(t_canvas *x)
t_canvas *x2 = canvas_getrootfor(x);
char *name = x2->gl_name->s_name;
if (*name && strncmp(name, "Untitled", 8)
- && (strlen(name) < 4 || strcmp(name + strlen(name)-4, ".pat")))
+ && (strlen(name) < 4 || strcmp(name + strlen(name)-4, ".pat")
+ || strcmp(name + strlen(name)-4, ".mxt")))
canvas_savetofile(x2, x2->gl_name, canvas_getdir(x2));
else canvas_menusaveas(x2);
}