Author: jghali
Date: Mon Mar 29 22:29:42 2021
New Revision: 24597

URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=24597
Log:
#16532: Using two times same image on consecutive masterpages removes image 
from previous masterpage

Modified:
    trunk/Scribus/scribus/scribusview.cpp

Modified: trunk/Scribus/scribus/scribusview.cpp
URL: 
http://scribus.net/websvn/diff.php?repname=Scribus&rev=24597&path=/trunk/Scribus/scribus/scribusview.cpp
==============================================================================
--- trunk/Scribus/scribus/scribusview.cpp       (original)
+++ trunk/Scribus/scribus/scribusview.cpp       Mon Mar 29 22:29:42 2021
@@ -772,19 +772,21 @@
 
        //Loop through all items and see which one(s) were under the drop point 
on the current layer
        //Should make a nice function for this.
-       //#9051 :  loop in reverse order so that items in front of others are 
prioritized
+       //#9051: loop in reverse order so that items in front of others are 
prioritized
        m_doc->m_Selection->delaySignalsOn();
        for (int i = m_doc->Items->count() - 1; i >= 0 ; --i)
        {
-               if (m_doc->Items->at(i)->m_layerID == m_doc->activeLayer())
-               {
-                       if (m_canvas->frameHitTest(dropPosDocQ, 
m_doc->Items->at(i)) >= Canvas::INSIDE)
-                       {
-                               deselectItems(false);
-                               
m_doc->m_Selection->addItem(m_doc->Items->at(i));
-                               selectedItemByDrag = true;
-                               break;
-                       }
+               PageItem* item = m_doc->Items->at(i);
+               if (item->m_layerID != m_doc->activeLayer())
+                       continue;
+               if ((m_doc->masterPageMode())  && (!((item->OwnPage == -1) || 
(item->OwnPage == m_doc->currentPage()->pageNr()))))
+                       continue;
+               if (m_canvas->frameHitTest(dropPosDocQ, item) >= Canvas::INSIDE)
+               {
+                       deselectItems(false);
+                       m_doc->m_Selection->addItem(item);
+                       selectedItemByDrag = true;
+                       break;
                }
        }
        m_doc->m_Selection->delaySignalsOff();
@@ -876,16 +878,18 @@
                m_doc->m_Selection->delaySignalsOn();
                for (int i = m_doc->Items->count() - 1; i >= 0 ; --i)
                {
-                       if 
(m_doc->Items->at(i)->m_layerID==m_doc->activeLayer())
+                       PageItem* item = m_doc->Items->at(i);
+                       if (item->m_layerID != m_doc->activeLayer())
+                               continue;
+                       if ((m_doc->masterPageMode())  && (!((item->OwnPage == 
-1) || (item->OwnPage == m_doc->currentPage()->pageNr()))))
+                               continue;
+                       if ((m_canvas->frameHitTest(dropPosDocQ, 
m_doc->Items->at(i)) >= Canvas::INSIDE) && (m_doc->Items->at(i)->itemType() == 
PageItem::Symbol))
                        {
-                               if ((m_canvas->frameHitTest(dropPosDocQ, 
m_doc->Items->at(i)) >= Canvas::INSIDE) && (m_doc->Items->at(i)->itemType() == 
PageItem::Symbol))
-                               {
-                                       deselectItems(false);
-                                       
m_doc->m_Selection->addItem(m_doc->Items->at(i));
-                                       
m_doc->Items->at(i)->setPattern(patternVal);
-                                       selectedItemByDrag=true;
-                                       break;
-                               }
+                               deselectItems(false);
+                               
m_doc->m_Selection->addItem(m_doc->Items->at(i));
+                               m_doc->Items->at(i)->setPattern(patternVal);
+                               selectedItemByDrag = true;
+                               break;
                        }
                }
                m_doc->m_Selection->delaySignalsOff();


_______________________________________________
scribus-commit mailing list
[email protected]
http://lists.scribus.net/mailman/listinfo/scribus-commit

Reply via email to