]> git.lyx.org Git - lyx.git/blobdiff - src/CutAndPaste.C
Two fixes involving RtL text drawing
[lyx.git] / src / CutAndPaste.C
index 8483d004d0b9f2077288947b15d77bf07a608356..25193a4a07cf335c0d43d47c853b38d2bc3c957a 100644 (file)
@@ -68,6 +68,11 @@ typedef limited_stack<pair<ParagraphList, textclass_type> > CutStack;
 
 CutStack theCuts(10);
 
+// store whether the tabular stack is newer than the normal copy stack
+// FIXME: this is a workaround for bug 1919. Should be removed for 1.5, 
+// when we (hopefully) have a one-for-all paste mechanism.
+bool dirty_tabular_stack_;
+
 class resetOwnerAndChanges : public std::unary_function<Paragraph, void> {
 public:
        void operator()(Paragraph & p) const {
@@ -531,6 +536,9 @@ void cutSelection(LCursor & cur, bool doclear, bool realcut)
                // need a valid cursor. (Lgb)
                cur.clearSelection();
                updateCounters(cur.buffer());
+
+               // tell tabular that a recent copy happened
+               dirtyTabularStack(false);
        }
 
        if (cur.inMathed()) {
@@ -581,6 +589,8 @@ void copySelection(LCursor & cur)
                pars.back().insert(0, grabSelection(cur), LyXFont());
                theCuts.push(make_pair(pars, bp.textclass));
        }
+       // tell tabular that a recent copy happened
+       dirtyTabularStack(false);
 }
 
 
@@ -779,5 +789,17 @@ string grabSelection(LCursor & cur)
 }
 
 
+void dirtyTabularStack(bool b)
+{
+       dirty_tabular_stack_ = b;
+}
+
+
+bool tabularStackDirty()
+{
+       return dirty_tabular_stack_;
+}
+
+
 } // namespace cap
 } // namespace lyx