Code

fix compositing for premultiplication and non-alpha cases
[inkscape.git] / src / composite-undo-stack-observer.h
index 7b6b693b64848b4f58a0a692efc78fc81e3cece2..e24561ace61ca5467887c77fea9b2f2227ea4258 100644 (file)
@@ -34,7 +34,7 @@ public:
        /**
         * Structure for tracking UndoStackObservers.
         */
-       struct UndoStackObserverRecord : public GC::Managed<> {
+       struct UndoStackObserverRecord {
        public:
                /**
                 * Constructor.
@@ -85,6 +85,26 @@ public:
                        this->_observer.notifyUndoCommitEvent(log);
                }
 
+               /**
+                * Issue a clear undo event to the UndoStackObserver
+                * that is associated with this
+                * UndoStackObserverRecord.
+                */
+               void issueClearUndo()
+               {
+                       this->_observer.notifyClearUndoEvent();
+               }
+            
+               /**
+                * Issue a clear redo event to the UndoStackObserver
+                * that is associated with this
+                * UndoStackObserverRecord.
+                */
+               void issueClearRedo()
+               {
+                       this->_observer.notifyClearRedoEvent();
+               }
+
        private:
                UndoStackObserver& _observer;
        };
@@ -134,6 +154,9 @@ public:
         */
        void notifyUndoCommitEvent(Event* log);
 
+       virtual void notifyClearUndoEvent();
+       virtual void notifyClearRedoEvent();
+
 private:
        // Remove an observer from a given list
        bool _remove_one(UndoObserverRecordList& list, UndoStackObserver& rec);