Changeset 62036 in webkit
- Timestamp:
- Jun 28, 2010 2:07:06 PM (14 years ago)
- Location:
- trunk/WebKit/chromium
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebKit/chromium/ChangeLog
r62000 r62036 1 2010-06-27 John Abd-El-Malek <jam@chromium.org> 2 3 Reviewed by Darin Fisher. 4 5 [chromium] Get the selected text from plugins for right click menu 6 https://bugs.webkit.org/show_bug.cgi?id=41242 7 8 * public/WebContextMenuData.h: 9 (WebKit::WebContextMenuData::): 10 * public/WebPlugin.h: 11 (WebKit::WebPlugin::selectedText): 12 * src/ContextMenuClientImpl.cpp: 13 (WebKit::ContextMenuClientImpl::getCustomMenuFromDefaultItems): 14 * src/WebPluginContainerImpl.cpp: 15 (WebKit::WebPluginContainerImpl::selectedText): 16 * src/WebPluginContainerImpl.h: 17 1 18 2010-06-28 Yury Semikhatsky <yurys@chromium.org> 2 19 -
trunk/WebKit/chromium/public/WebContextMenuData.h
r59529 r62036 125 125 CanDelete = 0x20, 126 126 CanSelectAll = 0x40, 127 CanTranslate = 0x80, 127 128 }; 128 129 -
trunk/WebKit/chromium/public/WebPlugin.h
r55814 r62036 33 33 34 34 #include "WebCanvas.h" 35 #include "WebString.h" 35 36 36 37 struct NPObject; … … 94 95 virtual void printEnd() { } 95 96 97 virtual WebString selectedText() { return WebString(); } 98 96 99 protected: 97 100 ~WebPlugin() { } -
trunk/WebKit/chromium/src/ContextMenuClientImpl.cpp
r59819 r62036 47 47 #include "MediaError.h" 48 48 #include "PlatformString.h" 49 #include "RenderWidget.h" 49 50 #include "TextBreakIterator.h" 50 51 #include "Widget.h" … … 54 55 #include "WebFrameImpl.h" 55 56 #include "WebMenuItemInfo.h" 57 #include "WebPluginContainerImpl.h" 56 58 #include "WebPoint.h" 57 59 #include "WebString.h" … … 147 149 WebContextMenuData data; 148 150 data.mousePosition = selectedFrame->view()->contentsToWindow(r.point()); 151 152 // Compute edit flags. 153 data.editFlags = WebContextMenuData::CanDoNone; 154 if (m_webView->focusedWebCoreFrame()->editor()->canUndo()) 155 data.editFlags |= WebContextMenuData::CanUndo; 156 if (m_webView->focusedWebCoreFrame()->editor()->canRedo()) 157 data.editFlags |= WebContextMenuData::CanRedo; 158 if (m_webView->focusedWebCoreFrame()->editor()->canCut()) 159 data.editFlags |= WebContextMenuData::CanCut; 160 if (m_webView->focusedWebCoreFrame()->editor()->canCopy()) 161 data.editFlags |= WebContextMenuData::CanCopy; 162 if (m_webView->focusedWebCoreFrame()->editor()->canPaste()) 163 data.editFlags |= WebContextMenuData::CanPaste; 164 if (m_webView->focusedWebCoreFrame()->editor()->canDelete()) 165 data.editFlags |= WebContextMenuData::CanDelete; 166 // We can always select all... 167 data.editFlags |= WebContextMenuData::CanSelectAll; 168 data.editFlags |= WebContextMenuData::CanTranslate; 149 169 150 170 // Links, Images, Media tags, and Image/Media-Links take preference over … … 183 203 if (mediaElement->controls()) 184 204 data.mediaFlags |= WebContextMenuData::MediaControls; 205 } else if (r.innerNonSharedNode()->hasTagName(HTMLNames::objectTag) 206 || r.innerNonSharedNode()->hasTagName(HTMLNames::embedTag)) { 207 RenderObject* object = r.innerNonSharedNode()->renderer(); 208 if (object && object->isWidget()) { 209 Widget* widget = toRenderWidget(object)->widget(); 210 if (widget) { 211 WebPluginContainerImpl* plugin = static_cast<WebPluginContainerImpl*>(widget); 212 WebString text = plugin->selectedText(); 213 if (!text.isEmpty()) { 214 data.selectedText = text; 215 data.editFlags |= WebContextMenuData::CanCopy; 216 } 217 data.editFlags &= ~WebContextMenuData::CanTranslate; 218 } 219 } 185 220 } 186 221 … … 226 261 if (ds) 227 262 data.securityInfo = ds->response().securityInfo(); 228 229 // Compute edit flags.230 data.editFlags = WebContextMenuData::CanDoNone;231 if (m_webView->focusedWebCoreFrame()->editor()->canUndo())232 data.editFlags |= WebContextMenuData::CanUndo;233 if (m_webView->focusedWebCoreFrame()->editor()->canRedo())234 data.editFlags |= WebContextMenuData::CanRedo;235 if (m_webView->focusedWebCoreFrame()->editor()->canCut())236 data.editFlags |= WebContextMenuData::CanCut;237 if (m_webView->focusedWebCoreFrame()->editor()->canCopy())238 data.editFlags |= WebContextMenuData::CanCopy;239 if (m_webView->focusedWebCoreFrame()->editor()->canPaste())240 data.editFlags |= WebContextMenuData::CanPaste;241 if (m_webView->focusedWebCoreFrame()->editor()->canDelete())242 data.editFlags |= WebContextMenuData::CanDelete;243 // We can always select all...244 data.editFlags |= WebContextMenuData::CanSelectAll;245 263 246 264 // Filter out custom menu elements and add them into the data. -
trunk/WebKit/chromium/src/WebPluginContainerImpl.cpp
r61919 r62036 247 247 } 248 248 249 WebString WebPluginContainerImpl::selectedText() 250 { 251 return m_webPlugin->selectedText(); 252 } 253 249 254 WebElement WebPluginContainerImpl::element() 250 255 { -
trunk/WebKit/chromium/src/WebPluginContainerImpl.h
r61942 r62036 103 103 void printEnd(); 104 104 105 WebString selectedText(); 106 105 107 // Resource load events for the plugin's source data: 106 108 void didReceiveResponse(const WebCore::ResourceResponse&);
Note: See TracChangeset
for help on using the changeset viewer.