From: buliabyak Date: Wed, 10 May 2006 04:03:48 +0000 (+0000) Subject: patch 1484602 by Niko Kiirala X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=945a51e46dde679c3ea40a6a4f5a5e6e24c2a8b8;p=inkscape.git patch 1484602 by Niko Kiirala --- diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 2be0b9282..43ff53a7c 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -1225,6 +1225,7 @@ void sp_selection_to_next_layer () const GSList *items = g_slist_copy ((GSList *) selection->itemList()); + bool no_more = false; // Set to true, if no more layers above SPObject *next=Inkscape::next_layer(dt->currentRoot(), dt->currentLayer()); if (next) { GSList *temp_clip = NULL; @@ -1236,13 +1237,18 @@ void sp_selection_to_next_layer () copied = sp_selection_paste_impl (sp_desktop_document (dt), next, &temp_clip, NULL); } else { copied = sp_selection_paste_impl (sp_desktop_document (dt), dt->currentLayer(), &temp_clip, NULL); + no_more = true; } selection->setReprList((GSList const *) copied); g_slist_free (copied); if (temp_clip) g_slist_free (temp_clip); - dt->setCurrentLayer(next); + if (next) dt->setCurrentLayer(next); sp_document_done(sp_desktop_document (dt)); } else { + no_more = true; + } + + if (no_more) { dt->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("No more layers above.")); } @@ -1263,6 +1269,7 @@ void sp_selection_to_prev_layer () const GSList *items = g_slist_copy ((GSList *) selection->itemList()); + bool no_more = false; // Set to true, if no more layers below SPObject *next=Inkscape::previous_layer(dt->currentRoot(), dt->currentLayer()); if (next) { GSList *temp_clip = NULL; @@ -1274,13 +1281,18 @@ void sp_selection_to_prev_layer () copied = sp_selection_paste_impl (sp_desktop_document (dt), next, &temp_clip, NULL); } else { copied = sp_selection_paste_impl (sp_desktop_document (dt), dt->currentLayer(), &temp_clip, NULL); + no_more = true; } selection->setReprList((GSList const *) copied); g_slist_free (copied); if (temp_clip) g_slist_free (temp_clip); - dt->setCurrentLayer(next); + if (next) dt->setCurrentLayer(next); sp_document_done(sp_desktop_document (dt)); } else { + no_more = true; + } + + if (no_more) { dt->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("No more layers below.")); }