commit c12dc2feef5ec7be6ab28a927397e944e053e000
Author: Scott Kostyshak <[email protected]>
Date:   Fri May 8 23:26:57 2015 -0400

    Fix pasting of PDF from clipboard
    
    The command "paste pdf" was always disabled because the
    condition in the following "if" statement always returns false
    
      if (arg == "pdf" && (type = Clipboard::PdfGraphicsType))
    
    The value of "type" is zero in this case because PdfGraphicsType is
    the first enum value (and it is not set explicitly to non-zero).
    
    An alternative patch is to put AnyGraphicsType as the first
    element of enum GraphicsType, or to set the first element to a
    number greater than 0.
    
    To test the bug that this commit fixes, either copy a PDF and try to
    paste with the action "paste pdf", or click on the "Edit" menu and
    notice (before this commit) the terminal output "Unrecognized
    graphics type: pdf".

diff --git a/src/Text3.cpp b/src/Text3.cpp
index 3d73e1e..5c9b812 100644
--- a/src/Text3.cpp
+++ b/src/Text3.cpp
@@ -2959,25 +2959,30 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & 
cmd,
                        break;
                }
 
-               // explicit graphics type?
                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);
+               if (arg == "pdf")
+                       type = Clipboard::PdfGraphicsType;
+               else if (arg == "png")
+                       type = Clipboard::PngGraphicsType;
+               else if (arg == "jpeg")
+                       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 {
+                       // unknown argument
+                       LYXERR0("Unrecognized graphics type: " << arg);
+                       // we don't want to assert if the user just mistyped 
the LFUN
+                       LATTEST(cmd.origin() != FuncRequest::INTERNAL);
+                       enable = false;
                        break;
                }
-
-               // unknown argument
-               LYXERR0("Unrecognized graphics type: " << arg);
-               // we don't want to assert if the user just mistyped the LFUN
-               LATTEST(cmd.origin() != FuncRequest::INTERNAL);
-               enable = false;
+               enable = theClipboard().hasGraphicsContents(type);
                break;
-        }
+       }
 
        case LFUN_CLIPBOARD_PASTE:
        case LFUN_CLIPBOARD_PASTE_SIMPLE:

Reply via email to