Code

Revert recent refactoring changes by johnce because they break the build, which canno...
[inkscape.git] / src / svg-view.cpp
index 6d408e79c62cc533e7e470a139b91ddddc863203..bd46dd17a6c86645eec790878106b47d4ce9ca28 100644 (file)
@@ -39,7 +39,7 @@ SPSVGView::SPSVGView (SPCanvasGroup *parent)
 
 SPSVGView::~SPSVGView()
 {
-    if (doc() && _drawing) 
+    if (doc() && _drawing)
     {
         sp_item_invoke_hide (SP_ITEM (sp_document_root (doc())), _dkey);
         _drawing = NULL;
@@ -63,7 +63,7 @@ SPSVGView::setScale (gdouble hscale, gdouble vscale)
  * 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));
@@ -100,7 +100,7 @@ SPSVGView::doRescale (bool event)
     }
 
     if (_drawing) {
-        sp_canvas_item_affine_absolute (_drawing, NR::Matrix(NR::scale(_hscale, _vscale)));
+        sp_canvas_item_affine_absolute (_drawing, Geom::Scale(_hscale, _vscale));
     }
 
     if (event) {
@@ -114,7 +114,7 @@ SPSVGView::mouseover()
 {
     GdkCursor *cursor = gdk_cursor_new(GDK_HAND2);
     gdk_window_set_cursor(GTK_WIDGET(SP_CANVAS_ITEM(_drawing)->canvas)->window, cursor);
-    gdk_cursor_destroy(cursor);
+    gdk_cursor_unref(cursor);
 }
 
 void
@@ -129,13 +129,13 @@ SPSVGView::mouseout()
  */
 /// \todo fixme.
 static gint
-arena_handler (SPCanvasArena *arena, NRArenaItem *ai, GdkEvent *event, SPSVGView *svgview)
+arena_handler (SPCanvasArena */*arena*/, NRArenaItem *ai, GdkEvent *event, SPSVGView *svgview)
 {
        static gdouble x, y;
        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;
@@ -191,14 +201,13 @@ SPSVGView::setDocument (SPDocument *document)
 
     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);
         }
 
         doRescale (!_rescale);