#include "buffer_funcs.h"
#include "BufferParams.h"
#include "BufferView.h"
+#include "Changes.h"
#include "Cursor.h"
#include "CutAndPaste.h"
#include "DispatchResult.h"
type = Clipboard::JpegGraphicsType;
else if (arg == "linkback")
type = Clipboard::LinkBackGraphicsType;
+ else if (arg == "emf")
+ type = Clipboard::EmfGraphicsType;
+ else if (arg == "wmf")
+ type = Clipboard::WmfGraphicsType;
+
else
LASSERT(false, /**/);
}
// explicit graphics type?
- if ((arg == "pdf" && theClipboard().hasGraphicsContents(Clipboard::PdfGraphicsType))
- || (arg == "png" && theClipboard().hasGraphicsContents(Clipboard::PngGraphicsType))
- || (arg == "jpeg" && theClipboard().hasGraphicsContents(Clipboard::JpegGraphicsType))
- || (arg == "linkback" && theClipboard().hasGraphicsContents(Clipboard::LinkBackGraphicsType))) {
- enable = true;
+ Clipboard::GraphicsType type = Clipboard::AnyGraphicsType;
+ if ((arg == "pdf" && (type = Clipboard::PdfGraphicsType))
+ || (arg == "png" && (type = Clipboard::PngGraphicsType))
+ || (arg == "jpeg" && (type = Clipboard::JpegGraphicsType))
+ || (arg == "linkback" && (type = Clipboard::LinkBackGraphicsType))
+ || (arg == "emf" && (type = Clipboard::EmfGraphicsType))
+ || (arg == "wmf" && (type = Clipboard::WmfGraphicsType))) {
+ enable = theClipboard().hasGraphicsContents(type);
break;
}
case LFUN_CHANGE_ACCEPT:
case LFUN_CHANGE_REJECT:
- // TODO: context-sensitive enabling of LFUN_CHANGE_ACCEPT/REJECT
// In principle, these LFUNs should only be enabled if there
// is a change at the current position/in the current selection.
// However, without proper optimizations, this will inevitably
// result in unacceptable performance - just imagine a user who
// wants to select the complete content of a long document.
- enable = true;
+ if (!cur.selection()) {
+ Change const & change = cur.paragraph().lookupChange(cur.pos());
+ enable = change.changed();
+ } else
+ // TODO: context-sensitive enabling of LFUN_CHANGE_ACCEPT/REJECT
+ // for selections.
+ enable = true;
break;
case LFUN_OUTLINE_UP: