[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