[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-5.0' - 4 commits - libreofficekit/source sfx2/source
Pranav Kant
pranavk at collabora.com
Tue May 24 11:34:51 UTC 2016
libreofficekit/source/gtk/lokdocview.cxx | 48 +++++++++++++++++++++++++++++--
sfx2/source/menu/mnumgr.cxx | 6 +--
2 files changed, 48 insertions(+), 6 deletions(-)
New commits:
commit 7e4711e642f6b085698a0d2912b0381cb7a2c9c3
Author: Pranav Kant <pranavk at collabora.com>
Date: Tue May 24 16:52:27 2016 +0530
lok context menu: Remove disabled items (set enabled to false)
Change-Id: I18a95cc53f9e79eab257baa4d7b23853cb05e039
diff --git a/sfx2/source/menu/mnumgr.cxx b/sfx2/source/menu/mnumgr.cxx
index 715f9a6..bc6e473 100644
--- a/sfx2/source/menu/mnumgr.cxx
+++ b/sfx2/source/menu/mnumgr.cxx
@@ -478,6 +478,8 @@ void SfxPopupMenuManager::ExecutePopup( const ResId& rResId, SfxViewFrame* pFram
pSVMenu = static_cast<PopupMenu*>( pMenu );
}
+ SfxPopupMenuManager aPop( pSVMenu, pFrame->GetBindings() );
+ aPop.RemoveDisabledEntries();
if (comphelper::LibreOfficeKit::isActive())
{
boost::property_tree::ptree aMenu = fillPopupMenu(pSVMenu);
@@ -490,11 +492,7 @@ void SfxPopupMenuManager::ExecutePopup( const ResId& rResId, SfxViewFrame* pFram
objSh->libreOfficeKitCallback(LOK_CALLBACK_CONTEXT_MENU, aStream.str().c_str());
}
else
- {
- SfxPopupMenuManager aPop( pSVMenu, pFrame->GetBindings() );
- aPop.RemoveDisabledEntries();
aPop.Execute( rPoint, pWindow );
- }
// #i112646 avoid crash when context menu is closed.
// the (manually inserted) sub-menu needs to be destroyed before
commit 532ce3bc3cdbb4d6b656c684497e1f23a275514c
Author: Pranav Kant <pranavk at collabora.com>
Date: Tue May 24 14:04:54 2016 +0530
lok context menu: Expose context menu
(cherry-picked from 610db8d5d0500aed2ca6d4da822cf70746b44d49)
Earlier cherry-pick (6be044e919d28b93332f04bdc18f6def2925b098)
left out some code important to the working of lokdocview.
Change-Id: I6422c28e880f9e04f4fad88e5202e46c4de2650d
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index 242bfa7..ea94237 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -966,6 +966,8 @@ const char* LOKDocView_Impl::callbackTypeToString(int nType)
return "LOK_CALLBACK_SET_PART";
case LOK_CALLBACK_ERROR:
return "LOK_CALLBACK_ERROR";
+ case LOK_CALLBACK_CONTEXT_MENU:
+ return "LOK_CALLBACK_CONTEXT_MENU";
}
return 0;
}
@@ -1087,6 +1089,11 @@ gboolean LOKDocView_Impl::callbackImpl(CallbackData* pCallback)
reportError(pCallback->m_aPayload);
}
break;
+ case LOK_CALLBACK_CONTEXT_MENU:
+ {
+ // TODO: Implement me
+ }
+ break;
default:
g_assert(false);
break;
commit 1cc66ffa57dc3b65c7a1a43e99a0cad7007b0474
Author: Mihai Varga <mihai.varga at collabora.com>
Date: Tue May 24 13:57:26 2016 +0530
LOK: added the button type and key modifier to postMouseEvent()
To get a better functionality we need to know the button type (left,
right, middle). We also need the key modifier (ctrl, alt, shift) for
actions such as ctrl+click (to open a link) or shift+click to select
(cherry picked from commit c90c08a65c480a1012182979d5e9218f17a2ba2e)
Button type was not cherry-picked earlier in
527a83d77c139427028ad08bef3a6349135716f7
Change-Id: If05326b1d7c82f14808bd2c15f552508b97bc7c1
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index cdc7e801..242bfa7 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -460,19 +460,45 @@ gboolean LOKDocView_Impl::signalButtonImpl(GdkEventButton* pEvent)
case GDK_BUTTON_PRESS:
{
int nCount = 1;
+ int nButtons = MOUSE_LEFT;
+ switch(pEvent->button) {
+ case 1:
+ nButtons = MOUSE_LEFT;
+ break;
+ case 2:
+ nButtons = MOUSE_MIDDLE;
+ break;
+ case 3:
+ nButtons = MOUSE_RIGHT;
+ break;
+ }
+
if ((pEvent->time - m_nLastButtonPressTime) < 250)
nCount++;
m_nLastButtonPressTime = pEvent->time;
- m_pDocument->pClass->postMouseEvent(m_pDocument, LOK_MOUSEEVENT_MOUSEBUTTONDOWN, pixelToTwip(pEvent->x), pixelToTwip(pEvent->y), nCount, MOUSE_LEFT, 0);
+ m_pDocument->pClass->postMouseEvent(m_pDocument, LOK_MOUSEEVENT_MOUSEBUTTONDOWN, pixelToTwip(pEvent->x), pixelToTwip(pEvent->y), nCount, nButtons, 0);
break;
}
case GDK_BUTTON_RELEASE:
{
int nCount = 1;
+ int nButtons = MOUSE_LEFT;
+ switch(pEvent->button) {
+ case 1:
+ nButtons = MOUSE_LEFT;
+ break;
+ case 2:
+ nButtons = MOUSE_MIDDLE;
+ break;
+ case 3:
+ nButtons = MOUSE_RIGHT;
+ break;
+ }
+
if ((pEvent->time - m_nLastButtonReleaseTime) < 250)
nCount++;
m_nLastButtonReleaseTime = pEvent->time;
- m_pDocument->pClass->postMouseEvent(m_pDocument, LOK_MOUSEEVENT_MOUSEBUTTONUP, pixelToTwip(pEvent->x), pixelToTwip(pEvent->y), nCount, MOUSE_LEFT, 0);
+ m_pDocument->pClass->postMouseEvent(m_pDocument, LOK_MOUSEEVENT_MOUSEBUTTONUP, pixelToTwip(pEvent->x), pixelToTwip(pEvent->y), nCount, nButtons, 0);
break;
}
default:
commit 1151ec8b519be960ca6975accac9be1f6e7959dc
Author: Andrzej Hunt <andrzej at ahunt.org>
Date: Tue Nov 10 11:40:41 2015 +0100
lokdocview: support LOK_CALLBACK_MOUSE_POINTER
Change-Id: I2052e39fa2e25988a40f293389d5a183a625acd4
Reviewed-on: https://gerrit.libreoffice.org/19903
Reviewed-by: Andrzej Hunt <andrzej at ahunt.org>
Tested-by: Andrzej Hunt <andrzej at ahunt.org>
diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx
index b5017b0..cdc7e801 100644
--- a/libreofficekit/source/gtk/lokdocview.cxx
+++ b/libreofficekit/source/gtk/lokdocview.cxx
@@ -920,6 +920,8 @@ const char* LOKDocView_Impl::callbackTypeToString(int nType)
return "LOK_CALLBACK_CURSOR_VISIBLE";
case LOK_CALLBACK_GRAPHIC_SELECTION:
return "LOK_CALLBACK_GRAPHIC_SELECTION";
+ case LOK_CALLBACK_MOUSE_POINTER:
+ return "LOK_CALLBACK_MOUSE_POINTER";
case LOK_CALLBACK_HYPERLINK_CLICKED:
return "LOK_CALLBACK_HYPERLINK_CLICKED";
case LOK_CALLBACK_STATE_CHANGED:
@@ -1008,6 +1010,15 @@ gboolean LOKDocView_Impl::callbackImpl(CallbackData* pCallback)
m_bCursorVisible = pCallback->m_aPayload == "true";
}
break;
+ case LOK_CALLBACK_MOUSE_POINTER:
+ {
+ // The gtk docs claim that most css cursors should be supported, however
+ // on my system at least this is not true and many cursors are unsupported.
+ // In this case pCursor = null, which results in the default cursor being set.
+ GdkCursor* pCursor = gdk_cursor_new_from_name(gtk_widget_get_display(GTK_WIDGET(pCallback->m_pDocView)), pCallback->m_aPayload.c_str());
+ gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(pCallback->m_pDocView)), pCursor);
+ }
+ break;
case LOK_CALLBACK_GRAPHIC_SELECTION:
{
if (pCallback->m_aPayload != "EMPTY")
More information about the Libreoffice-commits
mailing list