Title: [93014] trunk/Source
Revision
93014
Author
m...@apple.com
Date
2011-08-12 23:25:30 -0700 (Fri, 12 Aug 2011)

Log Message

Source/WebCore: <rdar://problem/7337717> Add an option to automatically show tooltips (with the full text) over truncated text
https://bugs.webkit.org/show_bug.cgi?id=66178

Reviewed by Simon Fraser.

* WebCore.exp.in: Export setShowsToolTipOverTruncatedText().
* page/Chrome.cpp:
(WebCore::Chrome::setToolTip): If no title is found, and the page is set to show tooltips over
truncated text, try to set the tooltip to the full text of the truncated text, if any.
* page/Settings.cpp:
(WebCore::Settings::Settings): Initialize new member variable.
(WebCore::Settings::setShowsToolTipOverTruncatedText): Added this setter.
* page/Settings.h:
(WebCore::Settings::showsToolTipOverTruncatedText): Added this getter.
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::innerTextIfTruncated): Added. If the inner node or its nearest enclosing
block has text-overflow: ellipsis and has truncated lines, return the node’s (full) inner text.
* rendering/HitTestResult.h:
* rendering/RootInlineBox.h:
(WebCore::RootInlineBox::hasEllipsisBox): Made this public.

Source/WebKit/mac: Add an option to automatically show tooltips (with the full text) over truncated text
https://bugs.webkit.org/show_bug.cgi?id=66178

Reviewed by Simon Fraser.

* WebView/WebPreferenceKeysPrivate.h: Defined a preference key.
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]): Added a default value of NO for the
ShowsToolTipOverTruncatedText preference.
(-[WebPreferences showsToolTipOverTruncatedText]): Added this getter.
(-[WebPreferences setShowsToolTipOverTruncatedText:]): Added this setter.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]): Added call to Settings::setShowsToolTipOverTruncatedText().

Source/WebKit/win: Add an option to automatically show tooltips (with the full text) over truncated text
https://bugs.webkit.org/show_bug.cgi?id=66178

Reviewed by Simon Fraser.

* Interfaces/IWebPreferencesPrivate.idl: Added accessors.
* WebPreferenceKeysPrivate.h: Defined a preference key.
* WebPreferences.cpp:
(WebPreferences::initializeDefaultSettings): Added a default value of
false for the ShowsToolTipOverTruncatedText preference.
(WebPreferences::showsToolTipOverTruncatedText): Added this getter.
(WebPreferences::setShowsToolTipOverTruncatedText): Added this setter.
* WebPreferences.h:
* WebView.cpp:
(WebView::notifyPreferencesChanged): Added call to Settings::setShowsToolTipOverTruncatedText().

Source/WebKit2: <rdar://problem/7337717> Add an option to automatically show tooltips (with the full text) over truncated text
https://bugs.webkit.org/show_bug.cgi?id=66178

Reviewed by Simon Fraser.

* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetShowsToolTipOverTruncatedText): Added this setter.
(WKPreferencesGetShowsToolTipOverTruncatedText): Added this getter.
* UIProcess/API/C/WKPreferencesPrivate.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences): Handle the showsToolTipOverTruncatedText preference.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (93013 => 93014)


--- trunk/Source/WebCore/ChangeLog	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebCore/ChangeLog	2011-08-13 06:25:30 UTC (rev 93014)
@@ -1,3 +1,26 @@
+2011-08-12  Dan Bernstein  <m...@apple.com>
+
+        <rdar://problem/7337717> Add an option to automatically show tooltips (with the full text) over truncated text
+        https://bugs.webkit.org/show_bug.cgi?id=66178
+
+        Reviewed by Simon Fraser.
+
+        * WebCore.exp.in: Export setShowsToolTipOverTruncatedText().
+        * page/Chrome.cpp:
+        (WebCore::Chrome::setToolTip): If no title is found, and the page is set to show tooltips over
+        truncated text, try to set the tooltip to the full text of the truncated text, if any.
+        * page/Settings.cpp:
+        (WebCore::Settings::Settings): Initialize new member variable.
+        (WebCore::Settings::setShowsToolTipOverTruncatedText): Added this setter.
+        * page/Settings.h:
+        (WebCore::Settings::showsToolTipOverTruncatedText): Added this getter.
+        * rendering/HitTestResult.cpp:
+        (WebCore::HitTestResult::innerTextIfTruncated): Added. If the inner node or its nearest enclosing
+        block has text-overflow: ellipsis and has truncated lines, return the node’s (full) inner text.
+        * rendering/HitTestResult.h:
+        * rendering/RootInlineBox.h:
+        (WebCore::RootInlineBox::hasEllipsisBox): Made this public.
+
 2011-08-12  Stephen White  <senorbla...@chromium.org>
 
         Ownership of canvas's GraphicsContext3D should be moved to PlatformContextSkia

Modified: trunk/Source/WebCore/WebCore.exp.in (93013 => 93014)


--- trunk/Source/WebCore/WebCore.exp.in	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebCore/WebCore.exp.in	2011-08-13 06:25:30 UTC (rev 93014)
@@ -925,6 +925,7 @@
 __ZN7WebCore8Settings31setShrinksStandaloneImagesToFitEb
 __ZN7WebCore8Settings32setAcceleratedCompositingEnabledEb
 __ZN7WebCore8Settings32setNeedsAdobeFrameReloadingQuirkEb
+__ZN7WebCore8Settings32setShowsToolTipOverTruncatedTextEb
 __ZN7WebCore8Settings33setDownloadableBinaryFontsEnabledEb
 __ZN7WebCore8Settings34setLocalFileContentSniffingEnabledEb
 __ZN7WebCore8Settings35setAllowUniversalAccessFromFileURLsEb

Modified: trunk/Source/WebCore/page/Chrome.cpp (93013 => 93014)


--- trunk/Source/WebCore/page/Chrome.cpp	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebCore/page/Chrome.cpp	2011-08-13 06:25:30 UTC (rev 93014)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006, 2007, 2009 Apple Inc. All rights reserved.
+ * Copyright (C) 2006, 2007, 2009, 2011 Apple Inc. All rights reserved.
  * Copyright (C) 2008, 2010 Nokia Corporation and/or its subsidiary(-ies)
  *
  * This library is free software; you can redistribute it and/or
@@ -421,6 +421,9 @@
     if (toolTip.isEmpty())
         toolTip = result.title(toolTipDirection);
 
+    if (toolTip.isEmpty() && m_page->settings()->showsToolTipOverTruncatedText())
+        toolTip = result.innerTextIfTruncated(toolTipDirection);
+
     // Lastly, for <input type="file"> that allow multiple files, we'll consider a tooltip for the selected filenames
     if (toolTip.isEmpty()) {
         if (Node* node = result.innerNonSharedNode()) {

Modified: trunk/Source/WebCore/page/Settings.cpp (93013 => 93014)


--- trunk/Source/WebCore/page/Settings.cpp	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebCore/page/Settings.cpp	2011-08-13 06:25:30 UTC (rev 93014)
@@ -154,6 +154,7 @@
     , m_shrinksStandaloneImagesToFit(true)
     , m_usesPageCache(false)
     , m_showsURLsInToolTips(false)
+    , m_showsToolTipOverTruncatedText(false)
     , m_forceFTPDirectoryListings(false)
     , m_developerExtrasEnabled(false)
     , m_authorAndUserStylesEnabled(true)
@@ -559,6 +560,11 @@
     m_showsURLsInToolTips = showsURLsInToolTips;
 }
 
+void Settings::setShowsToolTipOverTruncatedText(bool showsToolTipForTruncatedText)
+{
+    m_showsToolTipOverTruncatedText = showsToolTipForTruncatedText;
+}
+
 void Settings::setFTPDirectoryTemplatePath(const String& path)
 {
     m_ftpDirectoryTemplatePath = path;

Modified: trunk/Source/WebCore/page/Settings.h (93013 => 93014)


--- trunk/Source/WebCore/page/Settings.h	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebCore/page/Settings.h	2011-08-13 06:25:30 UTC (rev 93014)
@@ -241,6 +241,9 @@
         void setShowsURLsInToolTips(bool);
         bool showsURLsInToolTips() const { return m_showsURLsInToolTips; }
 
+        void setShowsToolTipOverTruncatedText(bool);
+        bool showsToolTipOverTruncatedText() const { return m_showsToolTipOverTruncatedText; }
+
         void setFTPDirectoryTemplatePath(const String&);
         const String& ftpDirectoryTemplatePath() const { return m_ftpDirectoryTemplatePath; }
         
@@ -523,6 +526,7 @@
         bool m_shrinksStandaloneImagesToFit : 1;
         bool m_usesPageCache: 1;
         bool m_showsURLsInToolTips : 1;
+        bool m_showsToolTipOverTruncatedText : 1;
         bool m_forceFTPDirectoryListings : 1;
         bool m_developerExtrasEnabled : 1;
         bool m_authorAndUserStylesEnabled : 1;

Modified: trunk/Source/WebCore/rendering/HitTestResult.cpp (93013 => 93014)


--- trunk/Source/WebCore/rendering/HitTestResult.cpp	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebCore/rendering/HitTestResult.cpp	2011-08-13 06:25:30 UTC (rev 93014)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2006, 2008, 2011 Apple Inc. All rights reserved.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -32,6 +32,7 @@
 #include "HTMLMediaElement.h"
 #include "HTMLNames.h"
 #include "HTMLParserIdioms.h"
+#include "RenderBlock.h"
 #include "RenderImage.h"
 #include "RenderInline.h"
 #include "Scrollbar.h"
@@ -236,6 +237,32 @@
     return String();
 }
 
+String HitTestResult::innerTextIfTruncated(TextDirection& dir) const
+{
+    for (Node* truncatedNode = m_innerNode.get(); truncatedNode; truncatedNode = truncatedNode->parentNode()) {
+        if (!truncatedNode->isElementNode())
+            continue;
+
+        if (RenderObject* renderer = truncatedNode->renderer()) {
+            if (renderer->isRenderBlock()) {
+                RenderBlock* block = toRenderBlock(renderer);
+                if (block->style()->textOverflow()) {
+                    for (RootInlineBox* line = block->firstRootBox(); line; line = line->nextRootBox()) {
+                        if (line->hasEllipsisBox()) {
+                            dir = block->style()->direction();
+                            return toElement(truncatedNode)->innerText();
+                        }
+                    }
+                }
+                break;
+            }
+        }
+    }
+
+    dir = LTR;
+    return String();
+}
+
 String displayString(const String& string, const Node* node)
 {
     if (!node)

Modified: trunk/Source/WebCore/rendering/HitTestResult.h (93013 => 93014)


--- trunk/Source/WebCore/rendering/HitTestResult.h	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebCore/rendering/HitTestResult.h	2011-08-13 06:25:30 UTC (rev 93014)
@@ -75,6 +75,7 @@
     String spellingToolTip(TextDirection&) const;
     String replacedString() const;
     String title(TextDirection&) const;
+    String innerTextIfTruncated(TextDirection&) const;
     String altDisplayString() const;
     String titleDisplayString() const;
     Image* image() const;

Modified: trunk/Source/WebCore/rendering/RootInlineBox.h (93013 => 93014)


--- trunk/Source/WebCore/rendering/RootInlineBox.h	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebCore/rendering/RootInlineBox.h	2011-08-13 06:25:30 UTC (rev 93014)
@@ -87,6 +87,7 @@
     void placeEllipsis(const AtomicString& ellipsisStr, bool ltr, float blockLeftEdge, float blockRightEdge, float ellipsisWidth, InlineBox* markupBox = 0);
     virtual float placeEllipsisBox(bool ltr, float blockLeftEdge, float blockRightEdge, float ellipsisWidth, bool& foundBox);
 
+    bool hasEllipsisBox() const { return m_hasEllipsisBoxOrHyphen; }
     EllipsisBox* ellipsisBox() const;
 
     void paintEllipsisBox(PaintInfo&, const LayoutPoint&, LayoutUnit lineTop, LayoutUnit lineBottom) const;
@@ -172,7 +173,6 @@
     virtual const char* boxName() const;
 #endif
 private:
-    bool hasEllipsisBox() const { return m_hasEllipsisBoxOrHyphen; }
     void setHasEllipsisBox(bool hasEllipsisBox) { m_hasEllipsisBoxOrHyphen = hasEllipsisBox; }
 
     int beforeAnnotationsAdjustment() const;

Modified: trunk/Source/WebKit/mac/ChangeLog (93013 => 93014)


--- trunk/Source/WebKit/mac/ChangeLog	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit/mac/ChangeLog	2011-08-13 06:25:30 UTC (rev 93014)
@@ -1,3 +1,20 @@
+2011-08-12  Dan Bernstein  <m...@apple.com>
+
+        Add an option to automatically show tooltips (with the full text) over truncated text
+        https://bugs.webkit.org/show_bug.cgi?id=66178
+
+        Reviewed by Simon Fraser.
+
+        * WebView/WebPreferenceKeysPrivate.h: Defined a preference key.
+        * WebView/WebPreferences.mm:
+        (+[WebPreferences initialize]): Added a default value of NO for the
+        ShowsToolTipOverTruncatedText preference.
+        (-[WebPreferences showsToolTipOverTruncatedText]): Added this getter.
+        (-[WebPreferences setShowsToolTipOverTruncatedText:]): Added this setter.
+        * WebView/WebPreferencesPrivate.h:
+        * WebView/WebView.mm:
+        (-[WebView _preferencesChanged:]): Added call to Settings::setShowsToolTipOverTruncatedText().
+
 2011-08-12  Sam Weinig  <s...@webkit.org>
 
         Use __builtin_trap() for CRASH when building with clang

Modified: trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h (93013 => 93014)


--- trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit/mac/WebView/WebPreferenceKeysPrivate.h	2011-08-13 06:25:30 UTC (rev 93014)
@@ -115,6 +115,7 @@
 // cover methods themselves are private.
 #define WebKitRespectStandardStyleKeyEquivalentsPreferenceKey @"WebKitRespectStandardStyleKeyEquivalents"
 #define WebKitShowsURLsInToolTipsPreferenceKey @"WebKitShowsURLsInToolTips"
+#define WebKitShowsToolTipOverTruncatedTextPreferenceKey @"WebKitShowsToolTipForTruncatedText"
 #define WebKitPDFDisplayModePreferenceKey @"WebKitPDFDisplayMode"
 #define WebKitPDFScaleFactorPreferenceKey @"WebKitPDFScaleFactor"
 #define WebKitUseSiteSpecificSpoofingPreferenceKey @"WebKitUseSiteSpecificSpoofing"

Modified: trunk/Source/WebKit/mac/WebView/WebPreferences.mm (93013 => 93014)


--- trunk/Source/WebKit/mac/WebView/WebPreferences.mm	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit/mac/WebView/WebPreferences.mm	2011-08-13 06:25:30 UTC (rev 93014)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005, 2006, 2007 Apple Inc. All rights reserved.
+ * Copyright (C) 2005, 2006, 2007, 2011 Apple Inc. All rights reserved.
  *           (C) 2006 Graham Dennis (graham.den...@gmail.com)
  *
  * Redistribution and use in source and binary forms, with or without
@@ -337,6 +337,7 @@
         [NSNumber numberWithBool:NO],   WebKitPrivateBrowsingEnabledPreferenceKey,
         [NSNumber numberWithBool:NO],   WebKitRespectStandardStyleKeyEquivalentsPreferenceKey,
         [NSNumber numberWithBool:NO],   WebKitShowsURLsInToolTipsPreferenceKey,
+        [NSNumber numberWithBool:NO],   WebKitShowsToolTipOverTruncatedTextPreferenceKey,
         @"1",                           WebKitPDFDisplayModePreferenceKey,
         @"0",                           WebKitPDFScaleFactorPreferenceKey,
         @"0",                           WebKitUseSiteSpecificSpoofingPreferenceKey,
@@ -925,6 +926,16 @@
     [self _setBoolValue:flag forKey:WebKitShowsURLsInToolTipsPreferenceKey];
 }
 
+- (BOOL)showsToolTipOverTruncatedText
+{
+    return [self _boolValueForKey:WebKitShowsToolTipOverTruncatedTextPreferenceKey];
+}
+
+- (void)setShowsToolTipOverTruncatedText:(BOOL)flag
+{
+    [self _setBoolValue:flag forKey:WebKitShowsToolTipOverTruncatedTextPreferenceKey];
+}
+
 - (BOOL)textAreasAreResizable
 {
     return [self _boolValueForKey: WebKitTextAreasAreResizablePreferenceKey];

Modified: trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h (93013 => 93014)


--- trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit/mac/WebView/WebPreferencesPrivate.h	2011-08-13 06:25:30 UTC (rev 93014)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005, 2007 Apple Computer, Inc.  All rights reserved.
+ * Copyright (C) 2005, 2007, 2011 Apple Computer, Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -78,6 +78,9 @@
 - (BOOL)showsURLsInToolTips;
 - (void)setShowsURLsInToolTips:(BOOL)flag;
 
+- (BOOL)showsToolTipOverTruncatedText;
+- (void)setShowsToolTipOverTruncatedText:(BOOL)flag;
+
 - (BOOL)textAreasAreResizable;
 - (void)setTextAreasAreResizable:(BOOL)flag;
 

Modified: trunk/Source/WebKit/mac/WebView/WebView.mm (93013 => 93014)


--- trunk/Source/WebKit/mac/WebView/WebView.mm	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit/mac/WebView/WebView.mm	2011-08-13 06:25:30 UTC (rev 93014)
@@ -1529,6 +1529,7 @@
     settings->setDOMPasteAllowed([preferences isDOMPasteAllowed]);
     settings->setUsesPageCache([self usesPageCache]);
     settings->setShowsURLsInToolTips([preferences showsURLsInToolTips]);
+    settings->setShowsToolTipOverTruncatedText([preferences showsToolTipOverTruncatedText]);
     settings->setDeveloperExtrasEnabled([preferences developerExtrasEnabled]);
     settings->setAuthorAndUserStylesEnabled([preferences authorAndUserStylesEnabled]);
     settings->setApplicationChromeMode([preferences applicationChromeModeEnabled]);

Modified: trunk/Source/WebKit/win/ChangeLog (93013 => 93014)


--- trunk/Source/WebKit/win/ChangeLog	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit/win/ChangeLog	2011-08-13 06:25:30 UTC (rev 93014)
@@ -1,3 +1,21 @@
+2011-08-12  Dan Bernstein  <m...@apple.com>
+
+        Add an option to automatically show tooltips (with the full text) over truncated text
+        https://bugs.webkit.org/show_bug.cgi?id=66178
+
+        Reviewed by Simon Fraser.
+
+        * Interfaces/IWebPreferencesPrivate.idl: Added accessors.
+        * WebPreferenceKeysPrivate.h: Defined a preference key.
+        * WebPreferences.cpp:
+        (WebPreferences::initializeDefaultSettings): Added a default value of
+        false for the ShowsToolTipOverTruncatedText preference.
+        (WebPreferences::showsToolTipOverTruncatedText): Added this getter.
+        (WebPreferences::setShowsToolTipOverTruncatedText): Added this setter.
+        * WebPreferences.h:
+        * WebView.cpp:
+        (WebView::notifyPreferencesChanged): Added call to Settings::setShowsToolTipOverTruncatedText().
+
 2011-08-05  Brent Fulgham  <bfulg...@webkit.org>
 
         WebView::performLayeredWindowUpdate() crashes with

Modified: trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl (93013 => 93014)


--- trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit/win/Interfaces/IWebPreferencesPrivate.idl	2011-08-13 06:25:30 UTC (rev 93014)
@@ -136,4 +136,8 @@
 
     HRESULT setMediaPlaybackAllowsInline([in] BOOL);
     HRESULT mediaPlaybackAllowsInline([out, retval] BOOL*);
+
+    HRESULT setShowsToolTipOverTruncatedText([in] BOOL);
+    HRESULT showsToolTipOverTruncatedText([out, retval] BOOL*);
+
 }

Modified: trunk/Source/WebKit/win/Interfaces/WebKit.idl (93013 => 93014)


--- trunk/Source/WebKit/win/Interfaces/WebKit.idl	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit/win/Interfaces/WebKit.idl	2011-08-13 06:25:30 UTC (rev 93014)
@@ -22,7 +22,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
- 
+
 cpp_quote("/*")
 cpp_quote(" * Copyright (C) 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved.")
 cpp_quote(" *")

Modified: trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h (93013 => 93014)


--- trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit/win/WebPreferenceKeysPrivate.h	2011-08-13 06:25:30 UTC (rev 93014)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc.  All rights reserved.
+ * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2011 Apple Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -75,6 +75,7 @@
 // cover methods themselves are private.
 #define WebKitRespectStandardStyleKeyEquivalentsPreferenceKey "WebKitRespectStandardStyleKeyEquivalents"
 #define WebKitShowsURLsInToolTipsPreferenceKey "WebKitShowsURLsInToolTips"
+#define WebKitShowsToolTipOverTruncatedTextPreferenceKey "WebKitShowsToolTipForTruncatedText"
 #define WebKitPDFDisplayModePreferenceKey "WebKitPDFDisplayMode"
 #define WebKitPDFScaleFactorPreferenceKey "WebKitPDFScaleFactor"
 #define WebKitEditableLinkBehaviorPreferenceKey "WebKitEditableLinkBehavior"

Modified: trunk/Source/WebKit/win/WebPreferences.cpp (93013 => 93014)


--- trunk/Source/WebKit/win/WebPreferences.cpp	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit/win/WebPreferences.cpp	2011-08-13 06:25:30 UTC (rev 93014)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006, 2007, 2008, 2009, 2010 Apple Inc.  All rights reserved.
+ * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -225,6 +225,7 @@
     CFDictionaryAddValue(defaults, CFSTR(WebKitPrivateBrowsingEnabledPreferenceKey), kCFBooleanFalse);
     CFDictionaryAddValue(defaults, CFSTR(WebKitRespectStandardStyleKeyEquivalentsPreferenceKey), kCFBooleanFalse);
     CFDictionaryAddValue(defaults, CFSTR(WebKitShowsURLsInToolTipsPreferenceKey), kCFBooleanFalse);
+    CFDictionaryAddValue(defaults, CFSTR(WebKitShowsToolTipOverTruncatedTextPreferenceKey), kCFBooleanFalse);
     CFDictionaryAddValue(defaults, CFSTR(WebKitPDFDisplayModePreferenceKey), CFSTR("1"));
     CFDictionaryAddValue(defaults, CFSTR(WebKitPDFScaleFactorPreferenceKey), CFSTR("0"));
 
@@ -1620,6 +1621,21 @@
 #endif
 }
 
+HRESULT WebPreferences::showsToolTipOverTruncatedText(BOOL* showsToolTip)
+{
+    if (!showsToolTip)
+        return E_POINTER;
+
+    *showsToolTip = boolValueForKey(CFSTR(WebKitShowsToolTipOverTruncatedTextPreferenceKey));
+    return S_OK;
+}
+
+HRESULT WebPreferences::setShowsToolTipOverTruncatedText(BOOL showsToolTip)
+{
+    setBoolValue(CFSTR(WebKitShowsToolTipOverTruncatedTextPreferenceKey), showsToolTip);
+    return S_OK;
+}
+
 void WebPreferences::willAddToWebView()
 {
     ++m_numWebViews;

Modified: trunk/Source/WebKit/win/WebPreferences.h (93013 => 93014)


--- trunk/Source/WebKit/win/WebPreferences.h	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit/win/WebPreferences.h	2011-08-13 06:25:30 UTC (rev 93014)
@@ -450,6 +450,9 @@
     virtual HRESULT STDMETHODCALLTYPE mediaPlaybackAllowsInline(BOOL*);
     virtual HRESULT STDMETHODCALLTYPE setMediaPlaybackAllowsInline(BOOL);
 
+    virtual HRESULT STDMETHODCALLTYPE showsToolTipOverTruncatedText(BOOL*);
+    virtual HRESULT STDMETHODCALLTYPE setShowsToolTipOverTruncatedText(BOOL);
+
     // WebPreferences
 
     // This method accesses a different preference key than developerExtrasEnabled.

Modified: trunk/Source/WebKit/win/WebView.cpp (93013 => 93014)


--- trunk/Source/WebKit/win/WebView.cpp	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit/win/WebView.cpp	2011-08-13 06:25:30 UTC (rev 93014)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006, 2007, 2008, 2009, 2010 Apple, Inc.  All rights reserved.
+ * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Apple, Inc.  All rights reserved.
  * Copyright (C) 2009, 2010, 2011 Appcelerator, Inc. All rights reserved.
  * Copyright (C) 2011 Brent Fulgham. All rights reserved.
  *
@@ -4718,6 +4718,13 @@
         setZoomMultiplier(m_zoomMultiplier, enabled);
 
     settings->setShowsURLsInToolTips(false);
+
+    hr = preferences->showsToolTipOverTruncatedText(&enabled);
+    if (FAILED(hr))
+        return hr;
+
+    settings->setShowsToolTipOverTruncatedText(enabled);
+
     settings->setForceFTPDirectoryListings(true);
     settings->setDeveloperExtrasEnabled(developerExtrasEnabled());
     settings->setNeedsSiteSpecificQuirks(s_allowSiteSpecificHacks);

Modified: trunk/Source/WebKit2/ChangeLog (93013 => 93014)


--- trunk/Source/WebKit2/ChangeLog	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit2/ChangeLog	2011-08-13 06:25:30 UTC (rev 93014)
@@ -1,3 +1,18 @@
+2011-08-12  Dan Bernstein  <m...@apple.com>
+
+        <rdar://problem/7337717> Add an option to automatically show tooltips (with the full text) over truncated text
+        https://bugs.webkit.org/show_bug.cgi?id=66178
+
+        Reviewed by Simon Fraser.
+
+        * Shared/WebPreferencesStore.h:
+        * UIProcess/API/C/WKPreferences.cpp:
+        (WKPreferencesSetShowsToolTipOverTruncatedText): Added this setter.
+        (WKPreferencesGetShowsToolTipOverTruncatedText): Added this getter.
+        * UIProcess/API/C/WKPreferencesPrivate.h:
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::updatePreferences): Handle the showsToolTipOverTruncatedText preference.
+
 2011-08-12  Mark Rowe  <mr...@apple.com>
 
         Be more forward-looking in the choice of compiler.

Modified: trunk/Source/WebKit2/Shared/WebPreferencesStore.h (93013 => 93014)


--- trunk/Source/WebKit2/Shared/WebPreferencesStore.h	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit2/Shared/WebPreferencesStore.h	2011-08-13 06:25:30 UTC (rev 93014)
@@ -85,6 +85,7 @@
     macro(MediaPlaybackRequiresUserGesture, mediaPlaybackRequiresUserGesture, Bool, bool, false) \
     macro(MediaPlaybackAllowsInline, mediaPlaybackAllowsInline, Bool, bool, true) \
     macro(InspectorStartsAttached, inspectorStartsAttached, Bool, bool, true) \
+    macro(ShowsToolTipOverTruncatedText, showsToolTipOverTruncatedText, Bool, bool, false) \
     \
 
 #define FOR_EACH_WEBKIT_DOUBLE_PREFERENCE(macro) \

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp (93013 => 93014)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferences.cpp	2011-08-13 06:25:30 UTC (rev 93014)
@@ -601,3 +601,13 @@
 {
     return toImpl(preferencesRef)->mediaPlaybackAllowsInline();
 }
+
+void WKPreferencesSetShowsToolTipOverTruncatedText(WKPreferencesRef preferencesRef, bool flag)
+{
+    toImpl(preferencesRef)->setShowsToolTipOverTruncatedText(flag);
+}
+
+bool WKPreferencesGetShowsToolTipOverTruncatedText(WKPreferencesRef preferencesRef)
+{
+    return toImpl(preferencesRef)->showsToolTipOverTruncatedText();
+}

Modified: trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h (93013 => 93014)


--- trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit2/UIProcess/API/C/WKPreferencesPrivate.h	2011-08-13 06:25:30 UTC (rev 93014)
@@ -140,6 +140,10 @@
 WK_EXPORT void WKPreferencesSetMediaPlaybackAllowsInline(WKPreferencesRef preferencesRef, bool flag);
 WK_EXPORT bool WKPreferencesGetMediaPlaybackAllowsInline(WKPreferencesRef preferencesRef);
 
+// Defaults to false.
+WK_EXPORT void WKPreferencesSetShowsToolTipOverTruncatedText(WKPreferencesRef preferencesRef, bool flag);
+WK_EXPORT bool WKPreferencesGetShowsToolTipOverTruncatedText(WKPreferencesRef preferencesRef);
+
 #ifdef __cplusplus
 }
 #endif

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (93013 => 93014)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2011-08-13 03:26:43 UTC (rev 93013)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2011-08-13 06:25:30 UTC (rev 93014)
@@ -1585,6 +1585,7 @@
     settings->setDeviceWidth(store.getUInt32ValueForKey(WebPreferencesKey::deviceWidthKey()));
     settings->setDeviceHeight(store.getUInt32ValueForKey(WebPreferencesKey::deviceHeightKey()));
     settings->setEditableLinkBehavior(static_cast<WebCore::EditableLinkBehavior>(store.getUInt32ValueForKey(WebPreferencesKey::editableLinkBehaviorKey())));
+    settings->setShowsToolTipOverTruncatedText(store.getBoolValueForKey(WebPreferencesKey::showsToolTipOverTruncatedTextKey()));
 
     settings->setAcceleratedCompositingEnabled(store.getBoolValueForKey(WebPreferencesKey::acceleratedCompositingEnabledKey()) && LayerTreeHost::supportsAcceleratedCompositing());
     settings->setAcceleratedDrawingEnabled(store.getBoolValueForKey(WebPreferencesKey::acceleratedDrawingEnabledKey()) && LayerTreeHost::supportsAcceleratedCompositing());
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to