Jacek Caban : mshtml: Added support for CONTEXT_MENU_TEXTSELECT context menu type.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Feb 23 09:04:46 CST 2015


Module: wine
Branch: master
Commit: 31d51d4865d0f361ea739ee097902444e604d035
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=31d51d4865d0f361ea739ee097902444e604d035

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Feb 23 14:08:12 2015 +0100

mshtml: Added support for CONTEXT_MENU_TEXTSELECT context menu type.

---

 dlls/mshtml/nsembed.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/dlls/mshtml/nsembed.c b/dlls/mshtml/nsembed.c
index 8f3fceb..f4d14bc 100644
--- a/dlls/mshtml/nsembed.c
+++ b/dlls/mshtml/nsembed.c
@@ -1490,9 +1490,21 @@ static nsresult NSAPI nsContextMenuListener_OnShowContextMenu(nsIContextMenuList
     switch(aContextFlags) {
     case CONTEXT_NONE:
     case CONTEXT_DOCUMENT:
-    case CONTEXT_TEXT:
-        dwID = CONTEXT_MENU_DEFAULT;
+    case CONTEXT_TEXT: {
+        nsISelection *selection;
+
+        nsres = nsIDOMHTMLDocument_GetSelection(This->doc->basedoc.doc_node->nsdoc, &selection);
+        if(NS_SUCCEEDED(nsres) && selection) {
+            cpp_bool is_collapsed;
+
+            /* FIXME: Check if the click was inside selection. */
+            nsres = nsISelection_GetIsCollapsed(selection, &is_collapsed);
+            nsISelection_Release(selection);
+            if(NS_SUCCEEDED(nsres) && !is_collapsed)
+                dwID = CONTEXT_MENU_TEXTSELECT;
+        }
         break;
+    }
     case CONTEXT_IMAGE:
     case CONTEXT_IMAGE|CONTEXT_LINK:
         dwID = CONTEXT_MENU_IMAGE;




More information about the wine-cvs mailing list