Code

more unreffing temporary styles properly
[inkscape.git] / src / selection-chemistry.cpp
index 2b13021a227801bfea94dbf1d4780ac1c63ff50b..ed8d6379e4aaae48dd74060d3f0a0cf6b029abd3 100644 (file)
@@ -1095,7 +1095,7 @@ void sp_selection_copy()
                 style_clipboard = css;
             }
         }
-        g_free (query);
+        sp_style_unref(query);
     }
 
     size_clipboard = selection->bounds();
@@ -2079,6 +2079,8 @@ sp_selection_clone()
         Inkscape::GC::release(clone);
     }
     
+    // TRANSLATORS: only translate "string" in "context|string".
+    // For more details, see http://developer.gnome.org/doc/API/2.0/glib/glib-I18N.html#Q-:CAPS
     sp_document_done(sp_desktop_document(desktop), SP_VERB_EDIT_CLONE, 
                      Q_("action|Clone"));
 
@@ -2843,23 +2845,21 @@ void fit_canvas_to_selection(SPDesktop *desktop) {
     g_return_if_fail(doc != NULL);
     g_return_if_fail(desktop->selection != NULL);
     g_return_if_fail(!desktop->selection->isEmpty());
-    NRRect bbox(0, 0, 0, 0);
 
-    desktop->selection->bounds(&bbox);
-    if (!nr_rect_d_test_empty(&bbox)) {
-        doc->fitToRect(bbox);
+    NR::Maybe<NR::Rect> const bbox(desktop->selection->bounds());
+    if (bbox && !bbox->isEmpty()) {
+        doc->fitToRect(*bbox);
     }
 };
 
 void fit_canvas_to_drawing(SPDocument *doc) {
     g_return_if_fail(doc != NULL);
-    NRRect bbox(0, 0, 0, 0);
 
-    sp_document_ensure_up_to_date (doc);
-    sp_item_invoke_bbox(SP_ITEM(doc->root), &bbox, sp_item_i2r_affine(SP_ITEM(doc->root)), TRUE);
-
-    if (!nr_rect_d_test_empty(&bbox)) {
-        doc->fitToRect(bbox);
+    sp_document_ensure_up_to_date(doc);
+    SPItem const *const root = SP_ITEM(doc->root);
+    NR::Maybe<NR::Rect> const bbox(root->getBounds(sp_item_i2r_affine(root)));
+    if (bbox && !bbox->isEmpty()) {
+        doc->fitToRect(*bbox);
     }
 };