Code

change the logic so that the value is correctly read at launch of seltrans, and appro...
authorbuliabyak <buliabyak@users.sourceforge.net>
Sat, 14 Apr 2007 02:30:34 +0000 (02:30 +0000)
committerbuliabyak <buliabyak@users.sourceforge.net>
Sat, 14 Apr 2007 02:30:34 +0000 (02:30 +0000)
src/selcue.cpp
src/seltrans.cpp

index 1831e8b54a24b869c047b029ffcc2f6ade5344ca..5a831d831ce173e9e32fade63c1df0be1a06d1d8 100644 (file)
@@ -79,7 +79,7 @@ void Inkscape::SelCue::_updateItemBboxes()
         SPItem *item = (SPItem *) l->data;
 
         gchar const *prefs_bbox = prefs_get_string_attribute("tools.select", "bounding_box");
-        SPItem::BBoxType bbox_type = (prefs_bbox == NULL || strcmp(prefs_bbox, "geometric")==0)? SPItem::GEOMETRIC_BBOX : SPItem::APPROXIMATE_BBOX;
+        SPItem::BBoxType bbox_type = (prefs_bbox != NULL && strcmp(prefs_bbox, "geometric")==0)? SPItem::GEOMETRIC_BBOX : SPItem::APPROXIMATE_BBOX;
 
         NR::Maybe<NR::Rect> const b = sp_item_bbox_desktop(item, bbox_type);
 
index 3de87ae28e2d343dc7ba18ff0ca34f924fcc633d..82632d45693b65d416534dc79f7f545a6a8f2080 100644 (file)
@@ -88,13 +88,14 @@ Inkscape::SelTrans::SelTrans(SPDesktop *desktop) :
     _show(SHOW_CONTENT),
     _grabbed(false),
     _show_handles(true),
-    _snap_bbox_type(SPItem::GEOMETRIC_BBOX),
     _bbox(NR::Nothing()),
     _approximate_bbox(NR::Nothing()),
     _chandle(NULL),
     _stamp_cache(NULL),
     _message_context(desktop->messageStack())
 {
+    gchar const *prefs_bbox = prefs_get_string_attribute("tools.select", "bounding_box");
+    _snap_bbox_type = (prefs_bbox != NULL && strcmp(prefs_bbox, "geometric")==0)? SPItem::GEOMETRIC_BBOX : SPItem::APPROXIMATE_BBOX;
     
     g_return_if_fail(desktop != NULL);
 
@@ -791,8 +792,9 @@ gboolean Inkscape::SelTrans::handleRequest(SPKnot *knot, NR::Point *position, gu
 void Inkscape::SelTrans::_selChanged(Inkscape::Selection *selection)
 {
     if (!_grabbed) {
+        // reread in case it changed on the fly:
         gchar const *prefs_bbox = prefs_get_string_attribute("tools.select", "bounding_box");
-        _snap_bbox_type = (prefs_bbox == NULL || strcmp(prefs_bbox, "geometric")==0)? SPItem::GEOMETRIC_BBOX : SPItem::APPROXIMATE_BBOX;
+        _snap_bbox_type = (prefs_bbox != NULL && strcmp(prefs_bbox, "geometric")==0)? SPItem::GEOMETRIC_BBOX : SPItem::APPROXIMATE_BBOX;
         //SPItem::APPROXIMATE_BBOX will be replaced by SPItem::VISUAL_BBOX, as soon as the latter is implemented properly
     
         _updateVolatileState();