2006-10-03 Graham Dennis <graham.dennis@gmail.com>
authorbdash <bdash@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Oct 2006 02:31:10 +0000 (02:31 +0000)
committerbdash <bdash@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Oct 2006 02:31:10 +0000 (02:31 +0000)
        Reviewed by Timothy.

        <http://bugzilla.opendarwin.org/show_bug.cgi?id=10338>
        When contentEditable, cursor doesn't change to hand

        Allow the behaviour of editable links to be specified by a WebPreference
        The preference WebKitEditableLinkBehavior has four options:
         - AlwaysLive: Safari 2.0 behaviour
         - OnlyLiveWithShiftKey: Firefox/WinIE behaviour (and prior WebKit-ToT behaviour)
         - LiveWhenNotFocused: Editable links are live only when their editable block is not
             focused, or when the shift key is pressed
         - DefaultBehavior: This is the same as OnlyLiveWithShiftKey.

        No layout tests, just a modification of a manual-test as it isn't possible to test
        this automatically.

        * bridge/mac/WebCoreSettings.h:
        * bridge/mac/WebCoreSettings.mm:
        (-[WebCoreSettings setEditableLinkBehavior:]):
        (-[WebCoreSettings editableLinkBehavior]):
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::HTMLAnchorElement):
        (WebCore::HTMLAnchorElement::defaultEventHandler):
        (WebCore::HTMLAnchorElement::setActive):
        * html/HTMLAnchorElement.h:
        * manual-tests/contenteditable-link.html:
        * page/FrameView.cpp:
        (WebCore::nodeIsNotBeingEdited):
        (WebCore::selectCursor):
        * page/Settings.h:
        (WebCore::Settings::):
        (WebCore::Settings::Settings):
        (WebCore::Settings::editableLinkBehavior):
        (WebCore::Settings::setEditableLinkBehavior):

2006-10-03  Graham Dennis  <graham.dennis@gmail.com>

        Reviewed by Timothy.

        <http://bugzilla.opendarwin.org/show_bug.cgi?id=10338>
        When contentEditable, cursor doesn't change to hand

        Allow the behaviour of editable links to be specified by a WebPreference
        The preference WebKitEditableLinkBehavior has four options:
         - AlwaysLive: Safari 2.0 behaviour
         - OnlyLiveWithShiftKey: Firefox/WinIE behaviour (and prior WebKit-ToT behaviour)
         - LiveWhenNotFocused: Editable links are live only when their editable block is not
             focused, or when the shift key is pressed
         - DefaultBehavior: This is the same as OnlyLiveWithShiftKey.

        No layout tests, just a modification of a manual-test as it isn't possible to test
        this automatically.

        * WebView/WebPreferenceKeysPrivate.h:
        * WebView/WebPreferences.m:
        (+[WebPreferences initialize]):
        (-[WebPreferences editableLinkBehavior]):
        (-[WebPreferences setEditableLinkBehavior:]):
        * WebView/WebPreferencesPrivate.h:
        * WebView/WebView.m:
        (-[WebView _updateWebCoreSettingsFromPreferences:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@16760 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 files changed:
WebCore/ChangeLog
WebCore/bridge/mac/WebCoreSettings.h
WebCore/bridge/mac/WebCoreSettings.mm
WebCore/html/HTMLAnchorElement.cpp
WebCore/html/HTMLAnchorElement.h
WebCore/manual-tests/contenteditable-link.html
WebCore/page/FrameView.cpp
WebCore/page/Settings.h
WebKit/ChangeLog
WebKit/WebView/WebPreferenceKeysPrivate.h
WebKit/WebView/WebPreferences.m
WebKit/WebView/WebPreferencesPrivate.h
WebKit/WebView/WebView.m

index c9838d551e2a091cf18f4ff64b3547e3a368f82a..a5e9b43e4f3404da8ea08e478a42933c6d06431c 100644 (file)
@@ -1,3 +1,40 @@
+2006-10-03  Graham Dennis  <graham.dennis@gmail.com>
+
+        Reviewed by Timothy.
+
+        <http://bugzilla.opendarwin.org/show_bug.cgi?id=10338>
+        When contentEditable, cursor doesn't change to hand
+        
+        Allow the behaviour of editable links to be specified by a WebPreference
+        The preference WebKitEditableLinkBehavior has four options:
+         - AlwaysLive: Safari 2.0 behaviour
+         - OnlyLiveWithShiftKey: Firefox/WinIE behaviour (and prior WebKit-ToT behaviour)
+         - LiveWhenNotFocused: Editable links are live only when their editable block is not
+             focused, or when the shift key is pressed
+         - DefaultBehavior: This is the same as OnlyLiveWithShiftKey.
+         
+        No layout tests, just a modification of a manual-test as it isn't possible to test
+        this automatically.
+
+        * bridge/mac/WebCoreSettings.h:
+        * bridge/mac/WebCoreSettings.mm:
+        (-[WebCoreSettings setEditableLinkBehavior:]):
+        (-[WebCoreSettings editableLinkBehavior]):
+        * html/HTMLAnchorElement.cpp:
+        (WebCore::HTMLAnchorElement::HTMLAnchorElement):
+        (WebCore::HTMLAnchorElement::defaultEventHandler):
+        (WebCore::HTMLAnchorElement::setActive):
+        * html/HTMLAnchorElement.h:
+        * manual-tests/contenteditable-link.html:
+        * page/FrameView.cpp:
+        (WebCore::nodeIsNotBeingEdited):
+        (WebCore::selectCursor):
+        * page/Settings.h:
+        (WebCore::Settings::):
+        (WebCore::Settings::Settings):
+        (WebCore::Settings::editableLinkBehavior):
+        (WebCore::Settings::setEditableLinkBehavior):
+
 2006-10-03  Beth Dakin  <bdakin@apple.com>
 
         Reviewed Darin.
index 5038b672cf98003d00c0b6c19e5a764479c19d27..ff2b6f4b51deb99fba7019014ab27cb16e70aeec 100644 (file)
@@ -118,6 +118,9 @@ typedef WebCore::Settings WebCoreSettingsImpl;
 - (void)setDefaultTextEncoding:(NSString *)encoding;
 - (NSString *)defaultTextEncoding;
 
+- (void)setEditableLinkBehavior:(int)behavior;
+- (int)editableLinkBehavior;
+
 - (WebCoreSettingsImpl *)settings;
 
 @end
index 4455c7227c5c0013734f6ef6c1fcf5be1ee9dece..0e21234e32548c06308c3828ce9ad5ed326feddf 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2004, 2006 Apple Computer, Inc.  All rights reserved.
+ *           (C) 2006 Graham Dennis (graham.dennis@gmail.com)
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -334,6 +335,23 @@ using namespace WebCore;
     return defaultTextEncoding;
 }
 
+- (void)setEditableLinkBehavior:(int)behavior
+{
+    Settings::EditableLinkBehavior b = (Settings::EditableLinkBehavior)behavior;
+    if (b != Settings::EditableLinkDefaultBehavior &&
+        b != Settings::EditableLinkAlwaysLive &&
+        b != Settings::EditableLinkOnlyLiveWithShiftKey &&
+        b != Settings::EditableLinkLiveWhenNotFocused) {
+        settings->setEditableLinkBehavior(Settings::EditableLinkDefaultBehavior);
+    } else
+        settings->setEditableLinkBehavior(b);
+}
+
+- (int)editableLinkBehavior
+{
+    return (int)settings->editableLinkBehavior();
+}
+
 - (Settings *)settings
 {
     return settings;
index 2b1accf790308bc1fc6a9dc3738c9ce62b8f7e45..10c8e1f3cb62b092abb84382312945ef7cea7f60 100644 (file)
@@ -5,6 +5,7 @@
  *           (C) 1999 Antti Koivisto (koivisto@kde.org)
  *           (C) 2000 Simon Hausmann <hausmann@kde.org>
  * Copyright (C) 2003, 2006 Apple Computer, Inc.
+ *           (C) 2006 Graham Dennis (graham.dennis@gmail.com)
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -35,6 +36,8 @@
 #include "MutationEvent.h"
 #include "RenderFlow.h"
 #include "RenderImage.h"
+#include "SelectionController.h"
+#include "Settings.h"
 #include "UIEvent.h"
 #include "csshelper.h"
 
@@ -45,11 +48,13 @@ using namespace EventNames;
 
 HTMLAnchorElement::HTMLAnchorElement(Document* doc)
     : HTMLElement(aTag, doc)
+    , m_rootEditableElementForSelectionOnMouseDown(0)
 {
 }
 
 HTMLAnchorElement::HTMLAnchorElement(const QualifiedName& tagName, Document* doc)
     : HTMLElement(tagName, doc)
+    , m_rootEditableElementForSelectionOnMouseDown(0)
 {
 }
 
@@ -128,9 +133,36 @@ void HTMLAnchorElement::defaultEventHandler(Event *evt)
             return;
         }
 
-        if (e && !e->shiftKey() && isContentEditable()) {
-            HTMLElement::defaultEventHandler(evt);
-            return;
+        // If the link is editable, then we need to check the settings to see whether or not to follow the link
+        if (isContentEditable()) {
+            Settings::EditableLinkBehavior editableLinkBehavior = Settings::EditableLinkDefaultBehavior;
+            if (document()->frame() && document()->frame()->settings())
+                editableLinkBehavior = document()->frame()->settings()->editableLinkBehavior();
+                
+            switch(editableLinkBehavior) {
+                // Always follow the link (Safari 2.0 behavior)
+                default:
+                case Settings::EditableLinkDefaultBehavior:
+                case Settings::EditableLinkAlwaysLive:
+                    break;
+                    
+                // If the selection prior to clicking on this link resided in the same editable block as this link,
+                // and the shift key isn't pressed, we don't want to follow the link
+                case Settings::EditableLinkLiveWhenNotFocused:
+                    if (e && !e->shiftKey() && m_rootEditableElementForSelectionOnMouseDown == rootEditableElement()) {
+                        HTMLElement::defaultEventHandler(evt);
+                        return;
+                    }
+                    break;
+                
+                // Only follow the link if the shift key is down (WinIE/Firefox behavior)
+                case Settings::EditableLinkOnlyLiveWithShiftKey:
+                    if (e && !e->shiftKey()) {
+                        HTMLElement::defaultEventHandler(evt);
+                        return;
+                    }
+                    break;
+            }
         }
 
         if (k) {
@@ -176,6 +208,13 @@ void HTMLAnchorElement::defaultEventHandler(Event *evt)
             document()->frame()->urlSelected(url, utarget);
 
         evt->setDefaultHandled();
+    } else if (m_isLink && isContentEditable()) {
+    // This keeps track of the editable block that the selection was in (if it was in one) just before the link was clicked
+    // for the LiveWhenNotFocused editable link behavior
+        if (evt->type() == mousedownEvent && document()->frame() && document()->frame()->selectionController())
+            m_rootEditableElementForSelectionOnMouseDown = document()->frame()->selectionController()->rootEditableElement();
+        else if (evt->type() == mouseoutEvent)
+            m_rootEditableElementForSelectionOnMouseDown = 0;
     }
 
     HTMLElement::defaultEventHandler(evt);
@@ -183,8 +222,31 @@ void HTMLAnchorElement::defaultEventHandler(Event *evt)
 
 void HTMLAnchorElement::setActive(bool down, bool pause)
 {
-    if (isContentEditable())
-        return;
+    if (isContentEditable()) {
+        Settings::EditableLinkBehavior editableLinkBehavior = Settings::EditableLinkDefaultBehavior;
+        if (document()->frame() && document()->frame()->settings())
+            editableLinkBehavior = document()->frame()->settings()->editableLinkBehavior();
+            
+        switch(editableLinkBehavior) {
+            default:
+            case Settings::EditableLinkDefaultBehavior:
+            case Settings::EditableLinkAlwaysLive:
+                break;
+                
+            // Don't set the link to be active if the current selection is in the same editable block as
+            // this link
+            case Settings::EditableLinkLiveWhenNotFocused:
+                if (down && document()->frame() && document()->frame()->selectionController() &&
+                    document()->frame()->selectionController()->rootEditableElement() == rootEditableElement())
+                    return;
+                break;
+            
+            case Settings::EditableLinkOnlyLiveWithShiftKey:
+                return;
+        }
+
+    }
+    
     ContainerNode::setActive(down, pause);
 }
 
index 26035c80e59834da36b03bac6d2d0325606737d4..4f534825d0ba288b729e7cca4413ead360319daa 100644 (file)
@@ -94,6 +94,9 @@ public:
     String protocol() const;
     String search() const;
     String text() const;
+    
+private:
+    Element *m_rootEditableElementForSelectionOnMouseDown;
 };
 
 } //namespace
index 47265c37a1f2872d07721e8e30cec6e481e01fa1..1612fbf93123abb0494b16afcf720cc8e9a35583 100644 (file)
@@ -15,6 +15,8 @@
 <BODY>
 <P>Repro movie for bug <a href="http://bugzilla.opendarwin.org/show_bug.cgi?id=7156">#7156</a></P>
 
+<div>The behaviour of editable links is controlled by the user default WebKitEditableLinkBehavior. This can be set via a private WebPreference. If the preference is OnlyLiveWithShiftKey, then the link will only be active when the shift key is pressed (WinIE/Firefox behaviour). If the preference is WebKitEditableLinkAlwaysLive or WebKitEditableLinkDefaultBehavior, then the link is always active (Safari 2.0 behaviour). Finally, if the preference is WebKitEditableLinkLiveWhenNotFocused, the link will only be live if the selection before clicking on the link is not in the same editable block as the link.</div>
+
 <div id="editable" contentEditable="true">
   <p>Test content</p>
   <p><a href="about:blank">Test link</a></p>
index 82cdce5df241a73c4fabbec44bf4092145a2160e..8e5e7bc35cfc3a7b420392a36becfe05e15ee59d 100644 (file)
@@ -5,6 +5,7 @@
  *                     1999 Antti Koivisto <koivisto@kde.org>
  *                     2000 Dirk Mueller <mueller@kde.org>
  * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc.
+ *           (C) 2006 Graham Dennis (graham.dennis@gmail.com)
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -47,6 +48,7 @@
 #include "RenderText.h"
 #include "RenderView.h"
 #include "SelectionController.h"
+#include "Settings.h"
 #include "cssstyleselector.h"
 
 #ifdef SVG_SUPPORT
@@ -665,6 +667,12 @@ static bool isSubmitImage(Node *node)
     return node && node->hasTagName(inputTag) && static_cast<HTMLInputElement*>(node)->inputType() == HTMLInputElement::IMAGE;
 }
 
+// Returns true if the node's editable block is not current focused for editing
+static bool nodeIsNotBeingEdited(Node* node, Frame* frame)
+{
+    return frame->selectionController()->rootEditableElement() != node->rootEditableElement();
+}
+
 static Cursor selectCursor(const MouseEventWithHitTestResults& event, Frame* frame, bool mousePressed)
 {
     // During selection, use an I-beam no matter what we're over.
@@ -703,7 +711,28 @@ static Cursor selectCursor(const MouseEventWithHitTestResults& event, Frame* fra
     switch (style ? style->cursor() : CURSOR_AUTO) {
         case CURSOR_AUTO: {
             bool editable = (node && node->isContentEditable());
-            if ((event.isOverLink() || isSubmitImage(node)) && (!editable || event.event().shiftKey()))
+            bool editableLinkEnabled = false;
+
+            // If the link is editable, then we need to check the settings to see whether or not the link should be followed
+            if (editable) {
+                switch(frame->settings()->editableLinkBehavior()) {
+                    default:
+                    case Settings::EditableLinkDefaultBehavior:
+                    case Settings::EditableLinkAlwaysLive:
+                        editableLinkEnabled = true;
+                        break;
+                    
+                    case Settings::EditableLinkLiveWhenNotFocused:
+                        editableLinkEnabled = nodeIsNotBeingEdited(node, frame) || event.event().shiftKey();
+                        break;
+                    
+                    case Settings::EditableLinkOnlyLiveWithShiftKey:
+                        editableLinkEnabled = event.event().shiftKey();
+                        break;
+                }
+            }
+            
+            if ((event.isOverLink() || isSubmitImage(node)) && (!editable || editableLinkEnabled))
                 return handCursor();
             RenderLayer* layer = renderer ? renderer->enclosingLayer() : 0;
             bool inResizer = false;
index 01d8e289e361440b8a49406cb7c9612e0d300170..7aa9bf78335a12a8eab0e2d4413295c151d2d84e 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2003, 2006 Apple Computer, Inc.  All rights reserved.
+ *           (C) 2006 Graham Dennis (graham.dennis@gmail.com)
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -34,6 +35,13 @@ namespace WebCore {
 class Settings
 {
 public:
+    enum EditableLinkBehavior {
+        EditableLinkDefaultBehavior = 0,
+        EditableLinkAlwaysLive,
+        EditableLinkOnlyLiveWithShiftKey,
+        EditableLinkLiveWhenNotFocused
+    };
+
     Settings()
         : m_minimumFontSize(0)
         , m_minimumLogicalFontSize(0)
@@ -47,6 +55,7 @@ public:
         , m_javaScriptCanOpenWindowsAutomatically(0)
         , m_shouldPrintBackgrounds(0)
         , m_textAreasAreResizable(0)
+        , m_editableLinkBehavior(EditableLinkDefaultBehavior)
     {
     }
 
@@ -75,6 +84,7 @@ public:
     KURL userStyleSheetLocation() const { return m_userStyleSheetLocation; }
     bool shouldPrintBackgrounds() const { return m_shouldPrintBackgrounds; }
     bool textAreasAreResizable() const { return m_textAreasAreResizable; }
+    EditableLinkBehavior editableLinkBehavior() const { return m_editableLinkBehavior; }
 
     void setStdFontName(const AtomicString& s) { m_stdFontName = s; }
     void setFixedFontName(const AtomicString& s) { m_fixedFontName = s; }
@@ -100,6 +110,7 @@ public:
     void setUserStyleSheetLocation(const KURL& s) { m_userStyleSheetLocation = s; }
     void setShouldPrintBackgrounds(bool f) { m_shouldPrintBackgrounds = f; }
     void setTextAreasAreResizable(bool f) { m_textAreasAreResizable = f; }
+    void setEditableLinkBehavior(EditableLinkBehavior e) { m_editableLinkBehavior = e; }
     
 private:
     AtomicString m_stdFontName;
@@ -123,6 +134,7 @@ private:
     bool m_javaScriptCanOpenWindowsAutomatically : 1;
     bool m_shouldPrintBackgrounds : 1;
     bool m_textAreasAreResizable : 1;
+    EditableLinkBehavior m_editableLinkBehavior;
 };
 
 }
index 0d8fdac927e7e7ebfd1b6a01f937118b18c90570..9b867939b2624ff874cd23def9a1edf8061a33bf 100644 (file)
@@ -1,3 +1,30 @@
+2006-10-03  Graham Dennis  <graham.dennis@gmail.com>
+
+        Reviewed by Timothy.
+
+        <http://bugzilla.opendarwin.org/show_bug.cgi?id=10338>
+        When contentEditable, cursor doesn't change to hand
+        
+        Allow the behaviour of editable links to be specified by a WebPreference
+        The preference WebKitEditableLinkBehavior has four options:
+         - AlwaysLive: Safari 2.0 behaviour
+         - OnlyLiveWithShiftKey: Firefox/WinIE behaviour (and prior WebKit-ToT behaviour)
+         - LiveWhenNotFocused: Editable links are live only when their editable block is not
+             focused, or when the shift key is pressed
+         - DefaultBehavior: This is the same as OnlyLiveWithShiftKey.
+         
+        No layout tests, just a modification of a manual-test as it isn't possible to test
+        this automatically.
+
+        * WebView/WebPreferenceKeysPrivate.h:
+        * WebView/WebPreferences.m:
+        (+[WebPreferences initialize]):
+        (-[WebPreferences editableLinkBehavior]):
+        (-[WebPreferences setEditableLinkBehavior:]):
+        * WebView/WebPreferencesPrivate.h:
+        * WebView/WebView.m:
+        (-[WebView _updateWebCoreSettingsFromPreferences:]):
+
 2006-10-03  Justin Garcia  <justin.garcia@apple.com>
 
         Reviewed by harrison
index 8deb907c785947bdff063852b3b0c01a5327999a..89e1d0374779fcc5da98ebc22568f4aebe804c58 100644 (file)
@@ -64,6 +64,7 @@
 #define WebKitShowsURLsInToolTipsPreferenceKey @"WebKitShowsURLsInToolTips"
 #define WebKitPDFDisplayModePreferenceKey @"WebKitPDFDisplayMode"
 #define WebKitPDFScaleFactorPreferenceKey @"WebKitPDFScaleFactor"
+#define WebKitEditableLinkBehaviorPreferenceKey @"WebKitEditableLinkBehavior"
 
 
 // Window display is throttled to 60 frames per second if WebKitThrottleWindowDisplayPreferenceKey
index 56d418782743900509958b24f0042037cce8c75a..10c3cadfab9a3d9f63630388889b36f49c6906ea 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2005 Apple Computer, Inc.  All rights reserved.
+ *           (C) 2006 Graham Dennis (graham.dennis@gmail.com)
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -231,6 +232,8 @@ NS_ENDHANDLER
         [NSNumber numberWithBool:NO],   WebKitShowsURLsInToolTipsPreferenceKey,
         @"1",                           WebKitPDFDisplayModePreferenceKey,
         @"0",                           WebKitPDFScaleFactorPreferenceKey,
+        [NSNumber numberWithInt:WebKitEditableLinkDefaultBehavior], 
+                                        WebKitEditableLinkBehaviorPreferenceKey,
         nil];
 
     // This value shouldn't ever change, which is assumed in the initialization of WebKitPDFDisplayModePreferenceKey above
@@ -657,6 +660,25 @@ NS_ENDHANDLER
     [self _setIntegerValue:mode forKey:WebKitPDFDisplayModePreferenceKey];
 }
 
+- (WebKitEditableLinkBehavior)editableLinkBehavior
+{
+    WebKitEditableLinkBehavior value = [self _integerValueForKey:WebKitEditableLinkBehaviorPreferenceKey];
+    if (value != WebKitEditableLinkDefaultBehavior &&
+        value != WebKitEditableLinkAlwaysLive &&
+        value != WebKitEditableLinkOnlyLiveWithShiftKey &&
+        value != WebKitEditableLinkLiveWhenNotFocused) {
+        // ensure that a valid result is returned
+        value = WebKitEditableLinkDefaultBehavior;
+    }
+    return value;
+}
+
+- (void)setEditableLinkBehavior:(WebKitEditableLinkBehavior)behavior
+{
+    [self _setIntegerValue:behavior forKey:WebKitEditableLinkBehaviorPreferenceKey];
+}
+
+
 static NSMutableDictionary *webPreferencesInstances = nil;
 
 + (WebPreferences *)_getInstanceForIdentifier:(NSString *)ident
index dc95226dc9c1db8ceaf8b7a3b9052ce5b4d2abd9..52ae412429f8060645147c6f37568fe301f0029b 100644 (file)
 
 #endif
 
+
+typedef enum {
+    WebKitEditableLinkDefaultBehavior = 0,
+    WebKitEditableLinkAlwaysLive,
+    WebKitEditableLinkOnlyLiveWithShiftKey,
+    WebKitEditableLinkLiveWhenNotFocused
+} WebKitEditableLinkBehavior;
+
 @interface WebPreferences (WebPrivate)
 
 // Preferences that might be public in a future release
@@ -61,6 +69,9 @@
 - (float)PDFScaleFactor;
 - (void)setPDFScaleFactor:(float)scale;
 
+- (WebKitEditableLinkBehavior)editableLinkBehavior;
+- (void)setEditableLinkBehavior:(WebKitEditableLinkBehavior)behavior;
+
 // Other private methods
 - (size_t)_pageCacheSize;
 - (size_t)_objectCacheSize;
index 371990c8656a18cf3a65ab4e87dee994682ed790..d92b36b2897882ebae41bd8f198a1baf2d0915ac 100644 (file)
@@ -876,6 +876,7 @@ static bool debugWidget = true;
     }
     [_private->settings setShouldPrintBackgrounds:[preferences shouldPrintBackgrounds]];
     [_private->settings setTextAreasAreResizable:[preferences textAreasAreResizable]];
+    [_private->settings setEditableLinkBehavior:[preferences editableLinkBehavior]];
 }
 
 - (void)_preferencesChangedNotification: (NSNotification *)notification