** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
** Copyright (c) 2007, 2008 Chris Moore
+** Copyright (c) 2008 Gerald Young
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
# include <config.h>
#endif
+#ifdef WIN32
+#define WINVER 0x0500
+#include <windows.h>
+#endif
+
#include <fstream>
#include <iostream>
#include <locale>
#include <fmod.h>
#endif
-#ifdef WIN32
-#define _WIN32_WINNT 0x0500
-#include <windows.h>
-#endif
#include <gtkmm/accelmap.h>
#include <gtkmm/filechooser.h>
#include <gtkmm/filechooserdialog.h>
return;
synfig::String::size_type current=0;
+ bool seen_root(false), shown_non_root(false);
while(current != synfig::String::npos)
{
// find end of first field (canvas) or return
synfig::String::size_type separator = canvas_window_size.find_first_of(' ', current);
- if(separator == synfig::String::npos) return;
+ if(separator == synfig::String::npos) break;
// find the canvas
synfig::Canvas::Handle canvas;
continue;
}
- CanvasView::Handle canvasview = instance->find_canvas_view(canvas);
- canvasview->present();
+ if (canvas->is_root())
+ seen_root = true;
+ else
+ shown_non_root = true;
// check that we have the tab character the ends this canvas' data or return
current = separator+1;
x += atoi(getenv("SYNFIG_WINDOW_POSITION_X_OFFSET"));
if(getenv("SYNFIG_WINDOW_POSITION_Y_OFFSET"))
y += atoi(getenv("SYNFIG_WINDOW_POSITION_Y_OFFSET"));
- canvasview->move(x,y);
if (w > SCALE_FACTOR) w = 150; if (w < 0) w = 0;
if (h > SCALE_FACTOR) h = 150; if (h < 0) h = 0;
- w=w*screen_w/SCALE_FACTOR;
- h=h*screen_h/SCALE_FACTOR;
- canvasview->set_default_size(w,h);
- canvasview->set_size_request(w,h);
+
+ CanvasView::Handle canvasview = instance->find_canvas_view(canvas);
+ canvasview->move(x,y);
+ canvasview->resize(w*screen_w/SCALE_FACTOR,h*screen_h/SCALE_FACTOR);
+ canvasview->present();
current = separator+1;
}
+
+ if (shown_non_root && !seen_root)
+ instance->find_canvas_view(instance->get_canvas())->hide();
}
void