From cd6c102ff1683a46dc32b90cf3d9007facd2aa4b Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 23 Apr 2010 16:09:13 +0000 Subject: Add a copyClipboard method, remove the setter hack --- diff --git a/browser-plugin/scriptable.cpp b/browser-plugin/scriptable.cpp index 7715134..4ffe57e 100644 --- a/browser-plugin/scriptable.cpp +++ b/browser-plugin/scriptable.cpp @@ -207,6 +207,7 @@ ScriptablePluginObject::ScriptablePluginObject (NPP npp) : mFindTermsID = NPN_GetStringIdentifier ("findTerms"); mFindPreviousID = NPN_GetStringIdentifier ("findPrevious"); mFindNextID = NPN_GetStringIdentifier ("findNext"); + mCopyClipboardID = NPN_GetStringIdentifier ("copyClipboard"); } bool @@ -217,7 +218,8 @@ ScriptablePluginObject::HasMethod (NPIdentifier name) mZoomOutID, mFindTermsID, mFindPreviousID, - mFindNextID + mFindNextID, + mCopyClipboardID }; for (guint i = 0; i < G_N_ELEMENTS(methods); i++) { @@ -322,16 +324,6 @@ ScriptablePluginObject::SetProperty (NPIdentifier name, const NPVariant *value) plugin->SetZoom (zoom); return true; - } else if (name == mCanCopyID) { - // FIXME fix method calls (using write access to a property as - // an awful workaround) - if (!plugin->mHasSelection) { - NPN_SetException (this, "Nothing to copy"); - return false; - } - - plugin->CopyClipboard (); - return true; } return false; @@ -377,6 +369,14 @@ ScriptablePluginObject::Invoke (NPIdentifier name, const NPVariant *args, } else if (name == mFindPreviousID) { plugin->FindPrevious (); return true; + } else if (name == mCopyClipboardID) { + if (!plugin->mHasSelection) { + NPN_SetException (this, "Nothing to copy"); + return false; + } + + plugin->CopyClipboard (); + return true; } return false; diff --git a/browser-plugin/scriptable.h b/browser-plugin/scriptable.h index 01912fa..9565dd0 100644 --- a/browser-plugin/scriptable.h +++ b/browser-plugin/scriptable.h @@ -103,6 +103,7 @@ class ScriptablePluginObject : public ScriptablePluginObjectBase NPIdentifier mFindTermsID; NPIdentifier mFindPreviousID; NPIdentifier mFindNextID; + NPIdentifier mCopyClipboardID; NPObject *mMagicWrapper; }; -- cgit v0.9.1