[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677
cblu
cblu at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 06:26:50 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit f2beab040871448722b2a32f6a207b300edbba5f
Author: cblu <cblu at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Wed Jul 24 06:58:22 2002 +0000
WebCore:
More plumbing for contextual menu support.
* kwq/WebCoreBridge.h:
* kwq/WebCoreBridge.mm:
(-[WebCoreBridge completeURLForDOMString:]): renamed
(-[WebCoreBridge elementInfoAtPoint:]): renamed
* kwq/qt/qpixmap.h: added an accessor to the WebCoreImageRenderer
WebKit:
More plumbing for contextual menu support.
* WebCoreSupport.subproj/WebBridge.h:
* WebCoreSupport.subproj/WebBridge.m:
* WebView.subproj/WebHTMLView.m:
(-[WebHTMLView menuForEvent:]):
* WebView.subproj/WebHTMLViewPrivate.h:
* WebView.subproj/WebHTMLViewPrivate.m:
(-[WebHTMLView _elementInfoAtPoint:]): added
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1649 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index 36cfbe1..f4b6824 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,3 +1,13 @@
+2002-07-23 Chris Blumenberg <cblu at apple.com>
+
+More plumbing for contextual menu support.
+
+ * kwq/WebCoreBridge.h:
+ * kwq/WebCoreBridge.mm:
+ (-[WebCoreBridge completeURLForDOMString:]): renamed
+ (-[WebCoreBridge elementInfoAtPoint:]): renamed
+ * kwq/qt/qpixmap.h: added an accessor to the WebCoreImageRenderer
+
2002-07-23 Darin Adler <darin at apple.com>
* WebCore.pbproj/project.pbxproj: Fix file reference types to be more consistent.
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index 36cfbe1..f4b6824 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,13 @@
+2002-07-23 Chris Blumenberg <cblu at apple.com>
+
+More plumbing for contextual menu support.
+
+ * kwq/WebCoreBridge.h:
+ * kwq/WebCoreBridge.mm:
+ (-[WebCoreBridge completeURLForDOMString:]): renamed
+ (-[WebCoreBridge elementInfoAtPoint:]): renamed
+ * kwq/qt/qpixmap.h: added an accessor to the WebCoreImageRenderer
+
2002-07-23 Darin Adler <darin at apple.com>
* WebCore.pbproj/project.pbxproj: Fix file reference types to be more consistent.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index 36cfbe1..f4b6824 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,13 @@
+2002-07-23 Chris Blumenberg <cblu at apple.com>
+
+More plumbing for contextual menu support.
+
+ * kwq/WebCoreBridge.h:
+ * kwq/WebCoreBridge.mm:
+ (-[WebCoreBridge completeURLForDOMString:]): renamed
+ (-[WebCoreBridge elementInfoAtPoint:]): renamed
+ * kwq/qt/qpixmap.h: added an accessor to the WebCoreImageRenderer
+
2002-07-23 Darin Adler <darin at apple.com>
* WebCore.pbproj/project.pbxproj: Fix file reference types to be more consistent.
diff --git a/WebCore/kwq/KWQPixmap.h b/WebCore/kwq/KWQPixmap.h
index 3de3c2d..2d5ade2 100644
--- a/WebCore/kwq/KWQPixmap.h
+++ b/WebCore/kwq/KWQPixmap.h
@@ -72,9 +72,12 @@ public:
bool receivedData(const QByteArray &bytes, bool isComplete);
void stopAnimations();
-
+
+ WebCoreImageRendererPtr image() { return imageRenderer; };
private:
+
WebCoreImageRendererPtr imageRenderer;
+
mutable bool needCopyOnWrite;
friend class QPainter;
diff --git a/WebCore/kwq/WebCoreBridge.h b/WebCore/kwq/WebCoreBridge.h
index d2c6a5f..16248dd 100644
--- a/WebCore/kwq/WebCoreBridge.h
+++ b/WebCore/kwq/WebCoreBridge.h
@@ -46,6 +46,7 @@ typedef khtml::RenderPart KHTMLRenderPart;
#endif
@class WebError;
+ at class WebFrame;
@class WebResourceHandle;
@protocol WebCoreDOMTreeCopier;
@@ -56,7 +57,6 @@ typedef khtml::RenderPart KHTMLRenderPart;
#define WebCoreContextImageURL @"WebCoreContextImageURL"
#define WebCoreContextString @"WebCoreContextString"
#define WebCoreContextImage @"WebCoreContextImage"
-#define WebCoreContextFrame @"WebCoreContextFrame"
// WebCoreBridge objects are used by WebCore to abstract away operations that need
// to be implemented by library clients, for example WebKit. The objects are also
@@ -115,7 +115,7 @@ typedef khtml::RenderPart KHTMLRenderPart;
- (NSObject *)copyDOMTree:(id <WebCoreDOMTreeCopier>)copier;
- (NSObject *)copyRenderTree:(id <WebCoreRenderTreeCopier>)copier;
-- (NSDictionary *)_elementInfoForMouseEvent:(NSEvent *)event;
+- (NSDictionary *)elementInfoAtPoint:(NSPoint)point;
@end
diff --git a/WebCore/kwq/WebCoreBridge.mm b/WebCore/kwq/WebCoreBridge.mm
index cc4043c..097b6bb 100644
--- a/WebCore/kwq/WebCoreBridge.mm
+++ b/WebCore/kwq/WebCoreBridge.mm
@@ -28,6 +28,7 @@
#import <khtml_part.h>
#import <khtmlview.h>
#import <dom_docimpl.h>
+#import <render_image.h>
#import <render_object.h>
#import <render_root.h>
#import <render_frames.h>
@@ -38,6 +39,7 @@
#include <htmltags.h>
#include <csshelper.h>
#include <KWQDOMNode.h>
+#include <WebCoreImageRenderer.h>
#include <WebFoundation/WebNSURLExtras.h>
@@ -392,25 +394,21 @@ using namespace khtml;
}
}
-- (NSURL *)_URLForDOMString:(DOMString &)s
+- (NSURL *)completeURLForDOMString:(DOMString &)s
{
NSString *URLString = part->xmlDocImpl()->completeURL(s.string()).getNSString();
return [NSURL _web_URLWithString:URLString];
}
-- (NSDictionary *)_elementInfoForMouseEvent:(NSEvent *)event
+- (NSDictionary *)elementInfoAtPoint:(NSPoint)point
{
NSMutableDictionary *elementInfo = [NSMutableDictionary dictionary];
RenderObject::NodeInfo nodeInfo(true, true);
NodeImpl *node, *URLNode;
- NSPoint pointInWindow;
DOMString domURL;
NSURL *URL;
- int x, y;
- pointInWindow = [event locationInWindow];
- part->impl->getView()->viewportToContents((int)pointInWindow.x, (int)pointInWindow.y, x, y);
- part->xmlDocImpl()->renderer()->nodeAtPoint(nodeInfo, x, y, 0, 0);
+ part->xmlDocImpl()->renderer()->nodeAtPoint(nodeInfo, (int)point.x, (int)point.y, 0, 0);
node = nodeInfo.innerNode();
URLNode = nodeInfo.URLElement();
@@ -418,7 +416,7 @@ using namespace khtml;
if(URLNode){
ElementImpl* e = static_cast<ElementImpl*>(URLNode);
domURL = khtml::parseURL(e->getAttribute(ATTR_HREF));
- URL = [self _URLForDOMString:domURL];
+ URL = [self completeURLForDOMString:domURL];
if(URL){
[elementInfo setObject: URL forKey: WebCoreContextLinkURL];
}
@@ -427,15 +425,20 @@ using namespace khtml;
if(isImage(node)){
ElementImpl* i = static_cast<ElementImpl*>(node);
domURL = khtml::parseURL(i->getAttribute(ATTR_SRC));
- URL = [self _URLForDOMString:domURL];
+ URL = [self completeURLForDOMString:domURL];
if(URL){
[elementInfo setObject: URL forKey: WebCoreContextImageURL];
+ RenderImage *r = (RenderImage *)node->renderer();
+ id <WebCoreImageRenderer> image = r->pixmap().image();
+ if(image){
+ [elementInfo setObject: image forKey: WebCoreContextImage];
+ }
}
}
- //FIXME: THIS IS STILL A WORK IN PROGRESS
-
- //NSLog([elementInfo description]);
+ if(part->hasSelection()){
+ [elementInfo setObject: [self selectedText] forKey: WebCoreContextString];
+ }
return elementInfo;
}
diff --git a/WebCore/kwq/qt/qpixmap.h b/WebCore/kwq/qt/qpixmap.h
index 3de3c2d..2d5ade2 100644
--- a/WebCore/kwq/qt/qpixmap.h
+++ b/WebCore/kwq/qt/qpixmap.h
@@ -72,9 +72,12 @@ public:
bool receivedData(const QByteArray &bytes, bool isComplete);
void stopAnimations();
-
+
+ WebCoreImageRendererPtr image() { return imageRenderer; };
private:
+
WebCoreImageRendererPtr imageRenderer;
+
mutable bool needCopyOnWrite;
friend class QPainter;
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 63b42ea..fe8c089 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,15 @@
+2002-07-23 Chris Blumenberg <cblu at apple.com>
+
+ More plumbing for contextual menu support.
+
+ * WebCoreSupport.subproj/WebBridge.h:
+ * WebCoreSupport.subproj/WebBridge.m:
+ * WebView.subproj/WebHTMLView.m:
+ (-[WebHTMLView menuForEvent:]):
+ * WebView.subproj/WebHTMLViewPrivate.h:
+ * WebView.subproj/WebHTMLViewPrivate.m:
+ (-[WebHTMLView _elementInfoAtPoint:]): added
+
2002-07-23 Darin Adler <darin at apple.com>
* WebKit.pbproj/project.pbxproj: Fix file reference types to be more consistent.
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index 63b42ea..fe8c089 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,3 +1,15 @@
+2002-07-23 Chris Blumenberg <cblu at apple.com>
+
+ More plumbing for contextual menu support.
+
+ * WebCoreSupport.subproj/WebBridge.h:
+ * WebCoreSupport.subproj/WebBridge.m:
+ * WebView.subproj/WebHTMLView.m:
+ (-[WebHTMLView menuForEvent:]):
+ * WebView.subproj/WebHTMLViewPrivate.h:
+ * WebView.subproj/WebHTMLViewPrivate.m:
+ (-[WebHTMLView _elementInfoAtPoint:]): added
+
2002-07-23 Darin Adler <darin at apple.com>
* WebKit.pbproj/project.pbxproj: Fix file reference types to be more consistent.
diff --git a/WebKit/WebCoreSupport.subproj/WebBridge.h b/WebKit/WebCoreSupport.subproj/WebBridge.h
index 23ead83..bbdeed0 100644
--- a/WebKit/WebCoreSupport.subproj/WebBridge.h
+++ b/WebKit/WebCoreSupport.subproj/WebBridge.h
@@ -23,6 +23,5 @@
- (void)loadURL:(NSURL *)URL attributes:(NSDictionary *)attributes flags:(unsigned)flags withParent:(WebDataSource *)parent;
-- (NSDictionary *)elementInfoForMouseEvent:(NSEvent *)event;
@end
diff --git a/WebKit/WebCoreSupport.subproj/WebBridge.m b/WebKit/WebCoreSupport.subproj/WebBridge.m
index 3c8c280..bfde907 100644
--- a/WebKit/WebCoreSupport.subproj/WebBridge.m
+++ b/WebKit/WebCoreSupport.subproj/WebBridge.m
@@ -295,18 +295,4 @@
[attributes release];
}
-- (NSDictionary *)elementInfoForMouseEvent:(NSEvent *)event
-{
- NSDictionary *elementInfo, *elementInfoWC = [self _elementInfoForMouseEvent:event];
-
- elementInfo = [NSDictionary dictionaryWithObjectsAndKeys:
- [elementInfoWC objectForKey:WebCoreContextLinkURL], WebContextLinkURL,
- [elementInfoWC objectForKey:WebCoreContextImageURL], WebContextImageURL,
- [elementInfoWC objectForKey:WebCoreContextString], WebContextString,
- [elementInfoWC objectForKey:WebCoreContextImage], WebContextImage,
- [elementInfoWC objectForKey:WebCoreContextFrame], WebContextFrame, nil];
-
- return elementInfo;
-}
-
@end
diff --git a/WebKit/WebView.subproj/WebHTMLView.m b/WebKit/WebView.subproj/WebHTMLView.m
index aadf952..a25c7d4 100644
--- a/WebKit/WebView.subproj/WebHTMLView.m
+++ b/WebKit/WebView.subproj/WebHTMLView.m
@@ -220,11 +220,20 @@
- (NSMenu *)menuForEvent:(NSEvent *)theEvent
{
- //FIXME: THIS IS STILL A WORK IN PROGRESS
- [[self _bridge] elementInfoForMouseEvent:theEvent];
+ NSDictionary *elementInfo;
+ NSPoint point;
+
+ point = [self convertPoint:[theEvent locationInWindow] fromView:nil];
+ elementInfo = [self _elementInfoAtPoint:point];
+
+ /*
+ NSLog([elementInfo description]);
NSMenu *menu = [[NSMenu alloc] init];
[menu addItemWithTitle:@"Copy" action:@selector(copy:) keyEquivalent:@""];
return menu;
+ */
+
+ return nil;
}
diff --git a/WebKit/WebView.subproj/WebHTMLViewPrivate.h b/WebKit/WebView.subproj/WebHTMLViewPrivate.h
index e9f397b..226cec3 100644
--- a/WebKit/WebView.subproj/WebHTMLViewPrivate.h
+++ b/WebKit/WebView.subproj/WebHTMLViewPrivate.h
@@ -34,4 +34,5 @@
+ (void)_setModifierTrackingEnabled:(BOOL)enabled;
+ (BOOL)_modifierTrackingEnabled;
+ (void)_postFlagsChangedEvent:(NSEvent *)flagsChangedEvent;
+- (NSDictionary *)_elementInfoAtPoint:(NSPoint)point;
@end
diff --git a/WebKit/WebView.subproj/WebHTMLViewPrivate.m b/WebKit/WebView.subproj/WebHTMLViewPrivate.m
index 5a5b3b0..bcf5487 100644
--- a/WebKit/WebView.subproj/WebHTMLViewPrivate.m
+++ b/WebKit/WebView.subproj/WebHTMLViewPrivate.m
@@ -99,4 +99,26 @@ BOOL _modifierTrackingEnabled = FALSE;
[[NSNotificationCenter defaultCenter] postNotificationName:NSMouseMovedNotification object:self userInfo:[NSDictionary dictionaryWithObject:fakeEvent forKey:@"NSEvent"]];
}
+- (NSDictionary *)_elementInfoAtPoint:(NSPoint)point
+{
+ NSDictionary *elementInfoWC = [[self _bridge] elementInfoAtPoint:point];
+ NSMutableDictionary *elementInfo = [NSMutableDictionary dictionary];
+
+ NSURL *linkURL = [elementInfoWC objectForKey:WebCoreContextLinkURL];
+ NSURL *imageURL = [elementInfoWC objectForKey:WebCoreContextImageURL];
+ NSString *string = [elementInfoWC objectForKey:WebCoreContextString];
+ NSImage *image = [elementInfoWC objectForKey:WebCoreContextImage];
+
+ if(linkURL) [elementInfo setObject:linkURL forKey:WebContextLinkURL];
+ if(imageURL) [elementInfo setObject:imageURL forKey:WebContextImageURL];
+ if(string) [elementInfo setObject:string forKey:WebContextString];
+ if(image) [elementInfo setObject:image forKey:WebContextImage];
+
+ WebView *webView = [self _web_parentWebView];
+ WebFrame *webFrame = [[webView _controller] frameForView:webView];
+ [elementInfo setObject:webFrame forKey:WebContextFrame];
+
+ return elementInfo;
+}
+
@end
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list