Add comments in the code about the recent dialog sizes problem fix.
[synfig.git] / synfig-studio / src / gtkmm / app.cpp
index 24e2bcf..ae8c8ba 100644 (file)
@@ -9,6 +9,7 @@
 **     Copyright (c) 2007, 2008 Chris Moore
 **     Copyright (c) 2008 Gerald Young
 **  Copyright (c) 2008 Carlos López
+**     Copyright (c) 2009 Nikita Kitaev
 **
 **     This package is free software; you can redistribute it and/or
 **     modify it under the terms of the GNU General Public License as
@@ -728,7 +729,7 @@ init_ui_manager()
 
        Glib::RefPtr<Gtk::ActionGroup> toolbox_action_group = Gtk::ActionGroup::create("toolbox");
 
-       Glib::RefPtr<Gtk::ActionGroup> actions_action_group = Gtk::ActionGroup::create();
+       Glib::RefPtr<Gtk::ActionGroup> actions_action_group = Gtk::ActionGroup::create("actions");
 
        menus_action_group->add( Gtk::Action::create("menu-file", _("_File")) );
        menus_action_group->add( Gtk::Action::create("menu-edit", _("_Edit")) );
@@ -1059,79 +1060,79 @@ init_ui_manager()
        }
 
        // the toolbox
-       ACCEL("<Mod1>a",                                                                                                        "<Actions>//state-normal"                                       );
-       ACCEL("<Mod1>v",                                                                                                        "<Actions>//state-smooth_move"                          );
-       ACCEL("<Mod1>s",                                                                                                        "<Actions>//state-scale"                                        );
-       ACCEL("<Mod1>t",                                                                                                        "<Actions>//state-rotate"                                       );
-       ACCEL("<Mod1>m",                                                                                                        "<Actions>//state-mirror"                                       );
-       ACCEL("<Mod1>c",                                                                                                        "<Actions>//state-circle"                                       );
-       ACCEL("<Mod1>r",                                                                                                        "<Actions>//state-rectangle"                            );
-       ACCEL("<Mod1>q",                                                                                                        "<Actions>//state-star"                                         );
-       ACCEL("<Mod1>g",                                                                                                        "<Actions>//state-gradient"                                     );
-       ACCEL("<Mod1>p",                                                                                                        "<Actions>//state-polygon"                                      );
-       ACCEL("<Mod1>b",                                                                                                        "<Actions>//state-bline"                                        );
-       ACCEL("<Mod1>x",                                                                                                        "<Actions>//state-text"                                         );
-       ACCEL("<Mod1>f",                                                                                                        "<Actions>//state-fill"                                         );
-       ACCEL("<Mod1>e",                                                                                                        "<Actions>//state-eyedrop"                                      );
-       ACCEL("<Mod1>z",                                                                                                        "<Actions>//state-zoom"                                         );
-       ACCEL("<Mod1>d",                                                                                                        "<Actions>//state-draw"                                         );
-       ACCEL("<Mod1>k",                                                                                                        "<Actions>//state-sketch"                                       );
-       ACCEL("<Mod1>w",                                                                                                        "<Actions>//state-width"                                        );
+       ACCEL("<Mod1>a",                                                                                                        "<Actions>/action_group_state_manager/state-normal"                                     );
+       ACCEL("<Mod1>v",                                                                                                        "<Actions>/action_group_state_manager/state-smooth_move"                                );
+       ACCEL("<Mod1>s",                                                                                                        "<Actions>/action_group_state_manager/state-scale"                                      );
+       ACCEL("<Mod1>t",                                                                                                        "<Actions>/action_group_state_manager/state-rotate"                                     );
+       ACCEL("<Mod1>m",                                                                                                        "<Actions>/action_group_state_manager/state-mirror"                                     );
+       ACCEL("<Mod1>c",                                                                                                        "<Actions>/action_group_state_manager/state-circle"                                     );
+       ACCEL("<Mod1>r",                                                                                                        "<Actions>/action_group_state_manager/state-rectangle"                          );
+       ACCEL("<Mod1>q",                                                                                                        "<Actions>/action_group_state_manager/state-star"                                               );
+       ACCEL("<Mod1>g",                                                                                                        "<Actions>/action_group_state_manager/state-gradient"                                   );
+       ACCEL("<Mod1>p",                                                                                                        "<Actions>/action_group_state_manager/state-polygon"                                    );
+       ACCEL("<Mod1>b",                                                                                                        "<Actions>/action_group_state_manager/state-bline"                                      );
+       ACCEL("<Mod1>x",                                                                                                        "<Actions>/action_group_state_manager/state-text"                                               );
+       ACCEL("<Mod1>f",                                                                                                        "<Actions>/action_group_state_manager/state-fill"                                               );
+       ACCEL("<Mod1>e",                                                                                                        "<Actions>/action_group_state_manager/state-eyedrop"                                    );
+       ACCEL("<Mod1>z",                                                                                                        "<Actions>/action_group_state_manager/state-zoom"                                               );
+       ACCEL("<Mod1>d",                                                                                                        "<Actions>/action_group_state_manager/state-draw"                                               );
+       ACCEL("<Mod1>k",                                                                                                        "<Actions>/action_group_state_manager/state-sketch"                                     );
+       ACCEL("<Mod1>w",                                                                                                        "<Actions>/action_group_state_manager/state-width"                                      );
 
        // everything else
-       ACCEL("<Control>a",                                                                                                     "<Actions>//select-all-ducks"                           );
-       ACCEL("<Control>d",                                                                                                     "<Actions>//unselect-all-ducks"                         );
-       ACCEL("<Control><Shift>a",                                                                                      "<Actions>//select-all-layers"                          );
-       ACCEL("<Control><Shift>d",                                                                                      "<Actions>//unselect-all-layers"                        );
-       ACCEL("F9",                                                                                                                     "<Actions>//render"                                                     );
-       ACCEL("F11",                                                                                                            "<Actions>//preview"                                            );
-       ACCEL("F8",                                                                                                                     "<Actions>//properties"                                         );
-       ACCEL("F12",                                                                                                            "<Actions>//options"                                            );
-       ACCEL("<control>i",                                                                                                     "<Actions>//import"                                                     );
-       ACCEL2(Gtk::AccelKey(GDK_Escape,static_cast<Gdk::ModifierType>(0),      "<Actions>//stop"                                                       ));
-       ACCEL("<Control>g",                                                                                                     "<Actions>//toggle-grid-show"                           );
-       ACCEL("<Control>l",                                                                                                     "<Actions>//toggle-grid-snap"                           );
-       ACCEL2(Gtk::AccelKey('`',Gdk::CONTROL_MASK,                                                     "<Actions>//toggle-low-res"                                     ));
-       ACCEL("<Mod1>1",                                                                                                        "<Actions>//mask-position-ducks"                        );
-       ACCEL("<Mod1>2",                                                                                                        "<Actions>//mask-vertex-ducks"                          );
-       ACCEL("<Mod1>3",                                                                                                        "<Actions>//mask-tangent-ducks"                         );
-       ACCEL("<Mod1>4",                                                                                                        "<Actions>//mask-radius-ducks"                          );
-       ACCEL("<Mod1>5",                                                                                                        "<Actions>//mask-width-ducks"                           );
-       ACCEL("<Mod1>6",                                                                                                        "<Actions>//mask-angle-ducks"                           );
-       ACCEL2(Gtk::AccelKey(GDK_Page_Up,Gdk::SHIFT_MASK,                                       "<Actions>//action-LayerRaise"                          ));
-       ACCEL2(Gtk::AccelKey(GDK_Page_Down,Gdk::SHIFT_MASK,                                     "<Actions>//action-LayerLower"                          ));
-       ACCEL("<Control>1",                                                                                                     "<Actions>//quality-01"                                         );
-       ACCEL("<Control>2",                                                                                                     "<Actions>//quality-02"                                         );
-       ACCEL("<Control>3",                                                                                                     "<Actions>//quality-03"                                         );
-       ACCEL("<Control>4",                                                                                                     "<Actions>//quality-04"                                         );
-       ACCEL("<Control>5",                                                                                                     "<Actions>//quality-05"                                         );
-       ACCEL("<Control>6",                                                                                                     "<Actions>//quality-06"                                         );
-       ACCEL("<Control>7",                                                                                                     "<Actions>//quality-07"                                         );
-       ACCEL("<Control>8",                                                                                                     "<Actions>//quality-08"                                         );
-       ACCEL("<Control>9",                                                                                                     "<Actions>//quality-09"                                         );
-       ACCEL("<Control>0",                                                                                                     "<Actions>//quality-10"                                         );
-       ACCEL("<Control>z",                                                                                                     "<Actions>//undo"                                                       );
-       ACCEL("<Control>r",                                                                                                     "<Actions>//redo"                                                       );
-       ACCEL2(Gtk::AccelKey(GDK_Delete,Gdk::CONTROL_MASK,                                      "<Actions>//action-LayerRemove"                         ));
-       ACCEL2(Gtk::AccelKey('(',Gdk::CONTROL_MASK,                                                     "<Actions>//decrease-low-res-pixel-size"        ));
-       ACCEL2(Gtk::AccelKey(')',Gdk::CONTROL_MASK,                                                     "<Actions>//increase-low-res-pixel-size"        ));
-       ACCEL2(Gtk::AccelKey('(',Gdk::MOD1_MASK|Gdk::CONTROL_MASK,                      "<Actions>//amount-dec"                                         ));
-       ACCEL2(Gtk::AccelKey(')',Gdk::MOD1_MASK|Gdk::CONTROL_MASK,                      "<Actions>//amount-inc"                                         ));
-       ACCEL2(Gtk::AccelKey(']',Gdk::CONTROL_MASK,                                                     "<Actions>//jump-next-keyframe"                         ));
-       ACCEL2(Gtk::AccelKey('[',Gdk::CONTROL_MASK,                                                     "<Actions>//jump-prev-keyframe"                         ));
-       ACCEL2(Gtk::AccelKey('=',Gdk::CONTROL_MASK,                                                     "<Actions>//canvas-zoom-in"                                     ));
-       ACCEL2(Gtk::AccelKey('-',Gdk::CONTROL_MASK,                                                     "<Actions>//canvas-zoom-out"                            ));
-       ACCEL2(Gtk::AccelKey('+',Gdk::CONTROL_MASK,                                                     "<Actions>//time-zoom-in"                                       ));
-       ACCEL2(Gtk::AccelKey('_',Gdk::CONTROL_MASK,                                                     "<Actions>//time-zoom-out"                                      ));
-       ACCEL2(Gtk::AccelKey('.',Gdk::CONTROL_MASK,                                                     "<Actions>//seek-next-frame"                            ));
-       ACCEL2(Gtk::AccelKey(',',Gdk::CONTROL_MASK,                                                     "<Actions>//seek-prev-frame"                            ));
-       ACCEL2(Gtk::AccelKey('>',Gdk::CONTROL_MASK,                                                     "<Actions>//seek-next-second"                           ));
-       ACCEL2(Gtk::AccelKey('<',Gdk::CONTROL_MASK,                                                     "<Actions>//seek-prev-second"                           ));
-       ACCEL("<Mod1>o",                                                                                                        "<Actions>//toggle-onion-skin"                          );
-       ACCEL("<Control><Shift>z",                                                                                      "<Actions>//canvas-zoom-fit"                            );
-       ACCEL("<Control>p",                                                                                                     "<Actions>//play"                                                       );
-       ACCEL("Home",                                                                                                           "<Actions>//seek-begin"                                         );
-       ACCEL("End",                                                                                                            "<Actions>//seek-end"                                           );
+       ACCEL("<Control>a",                                                                                                     "<Actions>/canvasview/select-all-ducks"                         );
+       ACCEL("<Control>d",                                                                                                     "<Actions>/canvasview/unselect-all-ducks"                               );
+       ACCEL("<Control><Shift>a",                                                                                      "<Actions>/canvasview/select-all-layers"                                );
+       ACCEL("<Control><Shift>d",                                                                                      "<Actions>/canvasview/unselect-all-layers"                      );
+       ACCEL("F9",                                                                                                                     "<Actions>/canvasview/render"                                                   );
+       ACCEL("F11",                                                                                                            "<Actions>/canvasview/preview"                                          );
+       ACCEL("F8",                                                                                                                     "<Actions>/canvasview/properties"                                               );
+       ACCEL("F12",                                                                                                            "<Actions>/canvasview/options"                                          );
+       ACCEL("<control>i",                                                                                                     "<Actions>/canvasview/import"                                                   );
+       ACCEL2(Gtk::AccelKey(GDK_Escape,static_cast<Gdk::ModifierType>(0),      "<Actions>/canvasview/stop"                                                     ));
+       ACCEL("<Control>g",                                                                                                     "<Actions>/canvasview/toggle-grid-show"                         );
+       ACCEL("<Control>l",                                                                                                     "<Actions>/canvasview/toggle-grid-snap"                         );
+       ACCEL2(Gtk::AccelKey('`',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/toggle-low-res"                                   ));
+       ACCEL("<Mod1>1",                                                                                                        "<Actions>/canvasview/mask-position-ducks"                      );
+       ACCEL("<Mod1>2",                                                                                                        "<Actions>/canvasview/mask-vertex-ducks"                                );
+       ACCEL("<Mod1>3",                                                                                                        "<Actions>/canvasview/mask-tangent-ducks"                               );
+       ACCEL("<Mod1>4",                                                                                                        "<Actions>/canvasview/mask-radius-ducks"                                );
+       ACCEL("<Mod1>5",                                                                                                        "<Actions>/canvasview/mask-width-ducks"                         );
+       ACCEL("<Mod1>6",                                                                                                        "<Actions>/canvasview/mask-angle-ducks"                         );
+       ACCEL2(Gtk::AccelKey(GDK_Page_Up,Gdk::SHIFT_MASK,                                       "<Actions>/action_group_layer_action_manager/action-LayerRaise"                         ));
+       ACCEL2(Gtk::AccelKey(GDK_Page_Down,Gdk::SHIFT_MASK,                                     "<Actions>/action_group_layer_action_manager/action-LayerLower"                         ));
+       ACCEL("<Control>1",                                                                                                     "<Actions>/canvasview/quality-01"                                               );
+       ACCEL("<Control>2",                                                                                                     "<Actions>/canvasview/quality-02"                                               );
+       ACCEL("<Control>3",                                                                                                     "<Actions>/canvasview/quality-03"                                               );
+       ACCEL("<Control>4",                                                                                                     "<Actions>/canvasview/quality-04"                                               );
+       ACCEL("<Control>5",                                                                                                     "<Actions>/canvasview/quality-05"                                               );
+       ACCEL("<Control>6",                                                                                                     "<Actions>/canvasview/quality-06"                                               );
+       ACCEL("<Control>7",                                                                                                     "<Actions>/canvasview/quality-07"                                               );
+       ACCEL("<Control>8",                                                                                                     "<Actions>/canvasview/quality-08"                                               );
+       ACCEL("<Control>9",                                                                                                     "<Actions>/canvasview/quality-09"                                               );
+       ACCEL("<Control>0",                                                                                                     "<Actions>/canvasview/quality-10"                                               );
+       ACCEL("<Control>z",                                                                                                     "<Actions>/action_group_dock_history/undo"                                                      );
+       ACCEL("<Control>r",                                                                                                     "<Actions>/action_group_dock_history/redo"                                                      );
+       ACCEL2(Gtk::AccelKey(GDK_Delete,Gdk::CONTROL_MASK,                                      "<Actions>/action_group_layer_action_manager/action-LayerRemove"                                ));
+       ACCEL2(Gtk::AccelKey('(',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/decrease-low-res-pixel-size"      ));
+       ACCEL2(Gtk::AccelKey(')',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/increase-low-res-pixel-size"      ));
+       ACCEL2(Gtk::AccelKey('(',Gdk::MOD1_MASK|Gdk::CONTROL_MASK,                      "<Actions>/action_group_layer_action_manager/amount-dec"                                                ));
+       ACCEL2(Gtk::AccelKey(')',Gdk::MOD1_MASK|Gdk::CONTROL_MASK,                      "<Actions>/action_group_layer_action_manager/amount-inc"                                                ));
+       ACCEL2(Gtk::AccelKey(']',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/jump-next-keyframe"                               ));
+       ACCEL2(Gtk::AccelKey('[',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/jump-prev-keyframe"                               ));
+       ACCEL2(Gtk::AccelKey('=',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/canvas-zoom-in"                                   ));
+       ACCEL2(Gtk::AccelKey('-',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/canvas-zoom-out"                          ));
+       ACCEL2(Gtk::AccelKey('+',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/time-zoom-in"                                     ));
+       ACCEL2(Gtk::AccelKey('_',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/time-zoom-out"                                    ));
+       ACCEL2(Gtk::AccelKey('.',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/seek-next-frame"                          ));
+       ACCEL2(Gtk::AccelKey(',',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/seek-prev-frame"                          ));
+       ACCEL2(Gtk::AccelKey('>',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/seek-next-second"                         ));
+       ACCEL2(Gtk::AccelKey('<',Gdk::CONTROL_MASK,                                                     "<Actions>/canvasview/seek-prev-second"                         ));
+       ACCEL("<Mod1>o",                                                                                                        "<Actions>/canvasview/toggle-onion-skin"                                );
+       ACCEL("<Control><Shift>z",                                                                                      "<Actions>/canvasview/canvas-zoom-fit"                          );
+       ACCEL("<Control>p",                                                                                                     "<Actions>/canvasview/play"                                                     );
+       ACCEL("Home",                                                                                                           "<Actions>/canvasview/seek-begin"                                               );
+       ACCEL("End",                                                                                                            "<Actions>/canvasview/seek-end"                                         );
 
 #undef ACCEL
 }
@@ -1181,7 +1182,7 @@ App::App(int *argc, char ***argv):
                        "different version of libsynfig than what is currently\n"
                        "installed. Synfig Studio will now abort. Try downloading\n"
                        "the latest version from the Synfig website at\n"
-                       "http://synfig.org/Download"
+                       "http://synfig.org/en/current-release"
                );
                throw 40;
        }
@@ -1292,30 +1293,31 @@ App::App(int *argc, char ***argv):
 
                studio_init_cb.task(_("Init Tools..."));
 
-               /* row 1 */
+               /* editing tools */
                state_manager->add_state(&state_normal);
                state_manager->add_state(&state_smooth_move);
                state_manager->add_state(&state_scale);
                state_manager->add_state(&state_rotate);
                studio_init_cb.task(_("Init ModMirror...")); module_list_.push_back(new ModMirror()); module_list_.back()->start();
 
-               /* row 2 */
+               /* geometry */
                state_manager->add_state(&state_circle);
                state_manager->add_state(&state_rectangle);
                state_manager->add_state(&state_star);
                state_manager->add_state(&state_gradient);
                if(!getenv("SYNFIG_DISABLE_POLYGON")) state_manager->add_state(&state_polygon); // Enabled - for working without ducks
 
-               /* row 3 */
+               /* bline tools */
                state_manager->add_state(&state_bline);
-               state_manager->add_state(&state_text);
+               if(!getenv("SYNFIG_DISABLE_DRAW"   )) state_manager->add_state(&state_draw); // Enabled for now.  Let's see whether they're good enough yet.
+               if(!getenv("SYNFIG_DISABLE_WIDTH"  )) state_manager->add_state(&state_width); // Enabled since 0.61.09
                state_manager->add_state(&state_fill);
                state_manager->add_state(&state_eyedrop);
-               state_manager->add_state(&state_zoom);
 
-               if(!getenv("SYNFIG_DISABLE_DRAW"   )) state_manager->add_state(&state_draw); // Enabled for now.  Let's see whether they're good enough yet.
+               /* other */
+               state_manager->add_state(&state_text);
                if(!getenv("SYNFIG_DISABLE_SKETCH" )) state_manager->add_state(&state_sketch);
-               if(!getenv("SYNFIG_DISABLE_WIDTH"  )) state_manager->add_state(&state_width); // Enabled since 0.61.09
+               state_manager->add_state(&state_zoom);
 
                studio_init_cb.task(_("Init ModPalette..."));
                module_list_.push_back(new ModPalette()); module_list_.back()->start();
@@ -1389,7 +1391,16 @@ App::App(int *argc, char ***argv):
 
                studio_init_cb.task(_("Done."));
                studio_init_cb.amount_complete(10000,10000);
-
+        
+               // To avoid problems with some window managers and gtk >= 2.18
+               // we should show dock dialogs after the settings load.
+               // If dock dialogs are shown before the settings are loaded,
+               // the windows manager can act over it.
+               // See discussions here:
+               // * http://synfig.org/forums/viewtopic.php?f=1&t=1131&st=0&sk=t&sd=a&start=30
+               // * http://synfig.org/forums/viewtopic.php?f=15&t=1062
+               dock_manager->show_all_dock_dialogs();
+               
                toolbox->present();
        }
        catch(String x)
@@ -1468,13 +1479,10 @@ App::get_config_file(const synfig::String& file)
        return Glib::build_filename(get_user_app_directory(),file);
 }
 
-#define SCALE_FACTOR   (1280)
 //! set the \a instance's canvas(es) position and size to be those specified in the first entry of recent_files_window_size
 void
 App::set_recent_file_window_size(etl::handle<Instance> instance)
 {
-       int screen_w(Gdk::screen_width());
-       int screen_h(Gdk::screen_height());
 
        const std::string &canvas_window_size = *recent_files_window_size.begin();
 
@@ -1520,22 +1528,9 @@ App::set_recent_file_window_size(etl::handle<Instance> instance)
                        current = separator+1;
                        continue;
                }
-
-               if (x > SCALE_FACTOR) x = SCALE_FACTOR - 150; if (x < 0) x = 0;
-               if (y > SCALE_FACTOR) y = SCALE_FACTOR - 150; if (y < 0) y = 0;
-               x=x*screen_w/SCALE_FACTOR;
-               y=y*screen_h/SCALE_FACTOR;
-               if(getenv("SYNFIG_WINDOW_POSITION_X_OFFSET"))
-                       x += atoi(getenv("SYNFIG_WINDOW_POSITION_X_OFFSET"));
-               if(getenv("SYNFIG_WINDOW_POSITION_Y_OFFSET"))
-                       y += atoi(getenv("SYNFIG_WINDOW_POSITION_Y_OFFSET"));
-
-               if (w > SCALE_FACTOR) w = 150; if (w < 0) w = 0;
-               if (h > SCALE_FACTOR) h = 150; if (h < 0) h = 0;
-
                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->resize(w,h);
                canvasview->present();
 
                current = separator+1;
@@ -1548,8 +1543,6 @@ App::set_recent_file_window_size(etl::handle<Instance> instance)
 void
 App::add_recent_file(const etl::handle<Instance> instance)
 {
-       int screen_w(Gdk::screen_width());
-       int screen_h(Gdk::screen_height());
 
        std::string canvas_window_size;
 
@@ -1568,13 +1561,12 @@ App::add_recent_file(const etl::handle<Instance> instance)
 
                canvas_window_size += strprintf("%s %d %d %d %d\t",
                                                                                canvas->get_relative_id(canvas->get_root()).c_str(),
-                                                                               x_pos*SCALE_FACTOR/screen_w,  y_pos*SCALE_FACTOR/screen_h,
-                                                                               x_size*SCALE_FACTOR/screen_w, y_size*SCALE_FACTOR/screen_h);
+                                                                               x_pos,  y_pos,
+                                                                               x_size, y_size);
        }
 
        add_recent_file(absolute_path(instance->get_file_name()), canvas_window_size);
 }
-#undef SCALE_FACTOR
 
 void
 App::add_recent_file(const std::string &file_name, const std::string &window_size)
@@ -1786,7 +1778,7 @@ App::reset_initial_window_configuration()
        synfigapp::Main::settings().set_value("pref.distance_system","pt");
        synfigapp::Main::settings().set_value("pref.use_colorspace_gamma","1");
 #ifdef SINGLE_THREADED
-       synfigapp::Main::settings().set_value("pref.single_threaded","0");
+       synfigapp::Main::settings().set_value("pref.single_threaded","1");
 #endif
        synfigapp::Main::settings().set_value("pref.restrict_radius_ducks","0");
        synfigapp::Main::settings().set_value("pref.resize_imported_images","0");
@@ -2101,7 +2093,8 @@ App::dialog_save_file(const std::string &title, std::string &filename, std::stri
        {
                file_type_enum = manage(new Widget_Enum());
                file_type_enum->set_param_desc(ParamDesc().set_hint("enum")
-                                                                          .add_enum_value(synfig::RELEASE_VERSION_0_61_09, "0.61.09", strprintf("0.61.09 (%s)", _("current")))
+                                                                          .add_enum_value(synfig::RELEASE_VERSION_0_62_00, "0.62.00", strprintf("0.62.00 (%s)", _("current")))
+                                                                          .add_enum_value(synfig::RELEASE_VERSION_0_61_09, "0.61.09", "0.61.09")
                                                                           .add_enum_value(synfig::RELEASE_VERSION_0_61_08, "0.61.08", "0.61.08")
                                                                           .add_enum_value(synfig::RELEASE_VERSION_0_61_07, "0.61.07", "0.61.07")
                                                                           .add_enum_value(synfig::RELEASE_VERSION_0_61_06, "0.61.06", strprintf("0.61.06 %s", _("and older"))));
@@ -2291,10 +2284,10 @@ try_open_url(const std::string &url)
 void
 App::dialog_help()
 {
-       if (!try_open_url("http://synfig.org/Documentation"))
+       if (!try_open_url("http://synfig.org/wiki/Category:Manual"))
        {
                Gtk::MessageDialog dialog(_("Documentation"), false, Gtk::MESSAGE_INFO, Gtk::BUTTONS_CLOSE, true);
-               dialog.set_secondary_text(_("Documentation for Synfig Studio is available on the website:\n\nhttp://www.synfig.org/Documentation"));
+               dialog.set_secondary_text(_("Documentation for Synfig Studio is available on the website:\n\nhttp://synfig.org/wiki/Category:Manual"));
                dialog.set_title(_("Help"));
                dialog.run();
        }