summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Owens <doctormo@gmail.com>2013-06-16 13:48:12 +0000
committerMartin Owens <doctormo@gmail.com>2013-06-16 13:48:12 +0000
commit5cd0fcd53cf3734cd5e0a52454ce0443fa6754ad (patch)
tree1b474951a92bf33ada9aa528d43d9b0423a868ba /src
parentFix for 1184408 : Additional zoom levels in zoom context menu (diff)
downloadinkscape-5cd0fcd53cf3734cd5e0a52454ce0443fa6754ad.tar.gz
inkscape-5cd0fcd53cf3734cd5e0a52454ce0443fa6754ad.zip
Fix layer selection so defs don't change layers, updated symbol text.
(bzr r12379)
Diffstat (limited to 'src')
-rw-r--r--src/desktop.cpp4
-rw-r--r--src/selection-describer.cpp8
2 files changed, 12 insertions, 0 deletions
diff --git a/src/desktop.cpp b/src/desktop.cpp
index 0bf442b7a..17548ee56 100644
--- a/src/desktop.cpp
+++ b/src/desktop.cpp
@@ -70,6 +70,7 @@
#include "sp-item-group.h"
#include "sp-namedview.h"
#include "sp-root.h"
+#include "sp-defs.h"
#include "widgets/desktop-widget.h"
#include "xml/repr.h"
#include "helper/action.h" //sp_action_perform
@@ -595,6 +596,9 @@ SPObject *SPDesktop::layerForObject(SPObject *object) {
SPObject *root=currentRoot();
object = object->parent;
while ( object && object != root && !isLayer(object) ) {
+ // Objects in defs have no layer and are NOT in the root layer
+ if(SP_IS_DEFS(object))
+ return NULL;
object = object->parent;
}
return object;
diff --git a/src/selection-describer.cpp b/src/selection-describer.cpp
index dd64e6232..e65a88f2e 100644
--- a/src/selection-describer.cpp
+++ b/src/selection-describer.cpp
@@ -151,6 +151,8 @@ void SelectionDescriber::_updateMessageFromSelection(Inkscape::Selection *select
gchar *layer_name;
if (layer == root) {
layer_name = g_strdup(_("root"));
+ } else if(!layer) {
+ layer_name = g_strdup(_("none"));
} else {
char const *layer_label;
bool is_label = false;
@@ -183,6 +185,8 @@ void SelectionDescriber::_updateMessageFromSelection(Inkscape::Selection *select
if (num_parents == 1) {
if (layer == parent)
in_phrase = g_strdup_printf(_(" in %s"), layer_name);
+ else if (!layer)
+ in_phrase = g_strdup_printf(_(" hidden in definitions"));
else
in_phrase = g_strdup_printf(_(" in group %s (%s)"), parent_name, layer_name);
} else {
@@ -200,6 +204,10 @@ void SelectionDescriber::_updateMessageFromSelection(Inkscape::Selection *select
_context.setF(Inkscape::NORMAL_MESSAGE, "%s%s. %s. %s.",
item_desc, in_phrase,
_("Convert symbol to group to edit"), _when_selected);
+ } else if (SP_IS_SYMBOL(item)) {
+ _context.setF(Inkscape::NORMAL_MESSAGE, "%s%s. %s.",
+ item_desc, in_phrase,
+ _("Select clone to edit symbol"));
} else if (SP_IS_USE(item) || (SP_IS_OFFSET(item) && SP_OFFSET(item)->sourceHref)) {
_context.setF(Inkscape::NORMAL_MESSAGE, "%s%s. %s. %s.",
item_desc, in_phrase,