diff --git a/src/svg-view.cpp b/src/svg-view.cpp
index 6d408e79c62cc533e7e470a139b91ddddc863203..22d9dd120e81d0cd4e477add44a77bf36066ac95 100644 (file)
--- a/src/svg-view.cpp
+++ b/src/svg-view.cpp
SPSVGView::~SPSVGView()
{
- if (doc() && _drawing)
+ if (doc() && _drawing)
{
sp_item_invoke_hide (SP_ITEM (sp_document_root (doc())), _dkey);
_drawing = NULL;
* Rescales SPSVGView and keeps aspect ratio.
*/
void
-SPSVGView::setRescale
+SPSVGView::setRescale
(bool rescale, bool keepaspect, gdouble width, gdouble height)
{
g_return_if_fail (!rescale || (width >= 0.0));
@@ -135,7 +135,7 @@ arena_handler (SPCanvasArena *arena, NRArenaItem *ai, GdkEvent *event, SPSVGView
static gboolean active = FALSE;
SPEvent spev;
- SPItem *spitem = (ai) ? (SPItem*)NR_ARENA_ITEM_GET_DATA (ai) : NULL;
+ SPItem *spitem = (ai) ? (SPItem*)NR_ARENA_ITEM_GET_DATA (ai) : 0;
switch (event->type) {
case GDK_BUTTON_PRESS:
@@ -147,10 +147,14 @@ arena_handler (SPCanvasArena *arena, NRArenaItem *ai, GdkEvent *event, SPSVGView
break;
case GDK_BUTTON_RELEASE:
if (event->button.button == 1) {
- if (active && (event->button.x == x) && (event->button.y == y)) {
+ if (active && (event->button.x == x) &&
+ (event->button.y == y)) {
spev.type = SP_EVENT_ACTIVATE;
- sp_item_event (spitem, &spev);
- }
+ if ( spitem != 0 )
+ {
+ sp_item_event (spitem, &spev);
+ }
+ }
}
active = FALSE;
break;
@@ -160,12 +164,18 @@ arena_handler (SPCanvasArena *arena, NRArenaItem *ai, GdkEvent *event, SPSVGView
case GDK_ENTER_NOTIFY:
spev.type = SP_EVENT_MOUSEOVER;
spev.data = svgview;
- sp_item_event (spitem, &spev);
+ if ( spitem != 0 )
+ {
+ sp_item_event (spitem, &spev);
+ }
break;
case GDK_LEAVE_NOTIFY:
spev.type = SP_EVENT_MOUSEOUT;
spev.data = svgview;
- sp_item_event (spitem, &spev);
+ if ( spitem != 0 )
+ {
+ sp_item_event (spitem, &spev);
+ }
break;
default:
break;
if (document) {
NRArenaItem *ai = sp_item_invoke_show (
- SP_ITEM (sp_document_root (document)),
+ SP_ITEM (sp_document_root (document)),
SP_CANVAS_ARENA (_drawing)->arena,
- _dkey,
+ _dkey,
SP_ITEM_SHOW_DISPLAY);
-
+
if (ai) {
nr_arena_item_add_child (SP_CANVAS_ARENA (_drawing)->root, ai, NULL);
nr_arena_item_unref (ai);