summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/LibreOfficeKit/LibreOfficeKitEnums.h11
-rw-r--r--sfx2/source/view/viewsh.cxx16
2 files changed, 22 insertions, 5 deletions
diff --git a/include/LibreOfficeKit/LibreOfficeKitEnums.h b/include/LibreOfficeKit/LibreOfficeKitEnums.h
index b90aa6279c41..020bbff90f20 100644
--- a/include/LibreOfficeKit/LibreOfficeKitEnums.h
+++ b/include/LibreOfficeKit/LibreOfficeKitEnums.h
@@ -568,6 +568,17 @@ typedef enum
* - "close" - window is closed
*/
LOK_CALLBACK_WINDOW = 36,
+
+ /**
+ * Notification that the clipboard contents have changed.
+ * Typically fired in response to copying to clipboard.
+ *
+ * The payload currently is empty and it's up to the
+ * client to get the contents, if necessary. However,
+ * in the future the contents might be included for
+ * convenience.
+ */
+ LOK_CALLBACK_CLIPBOARD_CHANGED = 37,
}
LibreOfficeKitCallbackType;
diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx
index 41ac335237ad..3b742b0a56d6 100644
--- a/sfx2/source/view/viewsh.cxx
+++ b/sfx2/source/view/viewsh.cxx
@@ -156,12 +156,18 @@ SfxClipboardChangeListener::SfxClipboardChangeListener( SfxViewShell* pView, con
void SfxClipboardChangeListener::ChangedContents()
{
const SolarMutexGuard aGuard;
- if( m_pViewShell )
+ if (m_pViewShell)
{
SfxBindings& rBind = m_pViewShell->GetViewFrame()->GetBindings();
- rBind.Invalidate( SID_PASTE );
- rBind.Invalidate( SID_PASTE_SPECIAL );
- rBind.Invalidate( SID_CLIPBOARD_FORMAT_ITEMS );
+ rBind.Invalidate(SID_PASTE);
+ rBind.Invalidate(SID_PASTE_SPECIAL);
+ rBind.Invalidate(SID_CLIPBOARD_FORMAT_ITEMS);
+
+ if (comphelper::LibreOfficeKit::isActive())
+ {
+ // In the future we might send the payload as well.
+ SfxLokHelper::notifyAllViews(LOK_CALLBACK_CLIPBOARD_CHANGED, "");
+ }
}
}
@@ -823,7 +829,7 @@ SfxInPlaceClient* SfxViewShell::GetUIActiveClient() const
if ( !pClients )
return nullptr;
- bool bIsTiledRendering = comphelper::LibreOfficeKit::isActive();
+ const bool bIsTiledRendering = comphelper::LibreOfficeKit::isActive();
for (SfxInPlaceClient* pIPClient : *pClients)
{