projects
/
synfig.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Prevent the "Gtk-CRITICAL **: gtk_label_set_label: assertion `str != NULL' failed...
[synfig.git]
/
synfig-studio
/
trunk
/
src
/
gtkmm
/
canvasview.cpp
diff --git
a/synfig-studio/trunk/src/gtkmm/canvasview.cpp
b/synfig-studio/trunk/src/gtkmm/canvasview.cpp
index
cbaed03
..
913a903
100644
(file)
--- a/
synfig-studio/trunk/src/gtkmm/canvasview.cpp
+++ b/
synfig-studio/trunk/src/gtkmm/canvasview.cpp
@@
-796,6
+796,13
@@
CanvasView::CanvasView(etl::loose_handle<Instance> instance,etl::handle<synfigap
int h=get_canvas()->rend_desc().get_h()+70;
while(w>700 || h>600)
{
int h=get_canvas()->rend_desc().get_h()+70;
while(w>700 || h>600)
{
+ // Minor hack:
+ // zoom_out() =>
+ // WorkArea::async_update_preview() =>
+ // WorkArea::set_zoom(float) =>
+ // WorkArea::async_update_preview() =>
+ // desc.set_time(cur_time), where cur_time isn't initialised
+ work_area->set_time(0);
work_area->zoom_out();
w=round_to_int(get_canvas()->rend_desc().get_w()*work_area->get_zoom()+70);
h=round_to_int(get_canvas()->rend_desc().get_h()*work_area->get_zoom()+70);
work_area->zoom_out();
w=round_to_int(get_canvas()->rend_desc().get_w()*work_area->get_zoom()+70);
h=round_to_int(get_canvas()->rend_desc().get_h()*work_area->get_zoom()+70);
@@
-905,6
+912,10
@@
CanvasView::~CanvasView()
hide();
hide();
+ // don't be calling on_dirty_preview once this object has been deleted;
+ // this was causing a crash before
+ canvas_interface()->signal_dirty_preview().clear();
+
synfig::info("CanvasView:~CanvasView(): Destructor Finished");
}
synfig::info("CanvasView:~CanvasView(): Destructor Finished");
}
@@
-1264,7
+1275,7
@@
CanvasView::init_menus()
}
}
}
}
- action_group->add( Gtk::Action::create("play", Gtk::Stock
ID("synfig-play")
),
+ action_group->add( Gtk::Action::create("play", Gtk::Stock
::MEDIA_PLAY
),
sigc::mem_fun(*this, &studio::CanvasView::play)
);
sigc::mem_fun(*this, &studio::CanvasView::play)
);
@@
-1572,7
+1583,7
@@
CanvasView::init_menus()
viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Preview Quality"),qualitymenu));
}
viewmenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Preview Quality"),qualitymenu));
}
- viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::Stock
ID("synfig-play")
,
+ viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::Stock
::MEDIA_PLAY
,
sigc::mem_fun(*this, &studio::CanvasView::play)));
viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("Flipbook Dialog"),
sigc::mem_fun(*preview_dialog, &studio::Dialog_Preview::present)));
sigc::mem_fun(*this, &studio::CanvasView::play)));
viewmenu.items().push_back(Gtk::Menu_Helpers::StockMenuElem(Gtk::StockID("Flipbook Dialog"),
sigc::mem_fun(*preview_dialog, &studio::Dialog_Preview::present)));
@@
-1718,7
+1729,7
@@
CanvasView::popup_layer_menu(synfig::Layer::Handle layer)
//parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("New Layer"),*newlayers));
//parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("New Layer"),*newlayers));
- if(layer->get_name()=="
paste_c
anvas")
+ if(layer->get_name()=="
PasteC
anvas")
{
menu->items().push_back(Gtk::Menu_Helpers::MenuElem(_("Select All Children"),
sigc::bind(
{
menu->items().push_back(Gtk::Menu_Helpers::MenuElem(_("Select All Children"),
sigc::bind(
@@
-2146,7
+2157,7
@@
CanvasView::on_layer_user_click(int button, Gtk::TreeRow /*row*/, LayerTree::Col
build_new_layer_menu(*newlayers);
parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem("New Layer",*newlayers));
build_new_layer_menu(*newlayers);
parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem("New Layer",*newlayers));
- if(!multiple_selected && layer->get_name()=="
paste_c
anvas")
+ if(!multiple_selected && layer->get_name()=="
PasteC
anvas")
{
parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Select All Children"),
sigc::bind(
{
parammenu.items().push_back(Gtk::Menu_Helpers::MenuElem(_("Select All Children"),
sigc::bind(
@@
-2626,7
+2637,7
@@
CanvasView::rebuild_ducks_layer_(synfig::TransformStack& transform_stack, Canvas
// If this is a paste canvas layer, then we need to
// descend into it
// If this is a paste canvas layer, then we need to
// descend into it
- if(layer_name=="
paste_c
anvas")
+ if(layer_name=="
PasteC
anvas")
{
Vector scale;
scale[0]=scale[1]=exp(layer->get_param("zoom").get(Real()));
{
Vector scale;
scale[0]=scale[1]=exp(layer->get_param("zoom").get(Real()));
@@
-2821,10
+2832,15
@@
CanvasView::play()
if(!work_area->sync_render_preview())
break;
if(!work_area->sync_render_preview())
break;
- studio::App::iteration(false);
+ // wait for the workarea to refresh itself
+ while (studio::App::events_pending())
+ studio::App::iteration(false);
if(get_cancel_status())
if(get_cancel_status())
+ {
+ is_playing_=false;
return;
return;
+ }
}
is_playing_=false;
}
is_playing_=false;
@@
-3042,7
+3058,7
@@
CanvasView::on_drop_drag_data_received(const Glib::RefPtr<Gdk::DragContext>& con
if(!get_instance()->perform_action(action))
break;
if(!get_instance()->perform_action(action))
break;
- // Ok, we have successfuly imported at least one item.
+ // Ok, we have successful
l
y imported at least one item.
success=true;
} while(0); // END of "STRING"
success=true;
} while(0); // END of "STRING"