Title: [104494] trunk/Source/WebCore
Revision
104494
Author
[email protected]
Date
2012-01-09 15:13:00 -0800 (Mon, 09 Jan 2012)

Log Message

https://bugs.webkit.org/show_bug.cgi?id=75860
[Chromium Mac] no background is drawn for input elements

Patch by Avi Drissman <[email protected]> on 2012-01-09
Reviewed by Dimitri Glazkov.

Reverts r104240 for Chromium. Unfortunately the code that uses Cocoa
API misbehaves when built with the 10.5 SDK, so we use SPI. For now.

* rendering/RenderThemeChromiumMac.h:
* rendering/RenderThemeChromiumMac.mm:
(WebCore::RenderThemeChromiumMac::paintTextField):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (104493 => 104494)


--- trunk/Source/WebCore/ChangeLog	2012-01-09 23:05:07 UTC (rev 104493)
+++ trunk/Source/WebCore/ChangeLog	2012-01-09 23:13:00 UTC (rev 104494)
@@ -1,3 +1,17 @@
+2012-01-09  Avi Drissman  <[email protected]>
+
+        https://bugs.webkit.org/show_bug.cgi?id=75860
+        [Chromium Mac] no background is drawn for input elements
+
+        Reviewed by Dimitri Glazkov.
+
+        Reverts r104240 for Chromium. Unfortunately the code that uses Cocoa
+        API misbehaves when built with the 10.5 SDK, so we use SPI. For now.
+
+        * rendering/RenderThemeChromiumMac.h:
+        * rendering/RenderThemeChromiumMac.mm:
+        (WebCore::RenderThemeChromiumMac::paintTextField):
+
 2012-01-09  Pablo Flouret  <[email protected]>
 
         Compilation error on build-webkit --debug --no-3d-canvas on mac.

Modified: trunk/Source/WebCore/rendering/RenderThemeChromiumMac.h (104493 => 104494)


--- trunk/Source/WebCore/rendering/RenderThemeChromiumMac.h	2012-01-09 23:05:07 UTC (rev 104493)
+++ trunk/Source/WebCore/rendering/RenderThemeChromiumMac.h	2012-01-09 23:13:00 UTC (rev 104494)
@@ -33,6 +33,7 @@
     static PassRefPtr<RenderTheme> create();
 
 protected:
+    virtual bool paintTextField(RenderObject*, const PaintInfo&, const IntRect&);
 #if ENABLE(VIDEO)
     virtual void adjustMediaSliderThumbSize(RenderStyle*) const;
     virtual bool paintMediaPlayButton(RenderObject*, const PaintInfo&, const IntRect&);

Modified: trunk/Source/WebCore/rendering/RenderThemeChromiumMac.mm (104493 => 104494)


--- trunk/Source/WebCore/rendering/RenderThemeChromiumMac.mm	2012-01-09 23:05:07 UTC (rev 104493)
+++ trunk/Source/WebCore/rendering/RenderThemeChromiumMac.mm	2012-01-09 23:13:00 UTC (rev 104494)
@@ -19,10 +19,12 @@
  */
 
 #import "config.h"
+#import "LocalCurrentGraphicsContext.h"
 #import "RenderThemeChromiumMac.h"
 #import "PaintInfo.h"
 #import "PlatformSupport.h"
 #import "RenderMediaControlsChromium.h"
+#import "WebCoreSystemInterface.h"
 #import "UserAgentStyleSheets.h"
 #import <Carbon/Carbon.h>
 #import <Cocoa/Cocoa.h>
@@ -125,6 +127,23 @@
     return true;
 }
 
+bool RenderThemeChromiumMac::paintTextField(RenderObject* o, const PaintInfo& paintInfo, const IntRect& r)
+{
+    // Using the Cocoa code to paint the text field as RenderThemeMac does runs
+    // into a bug when building against the 10.5 SDK, so we are forced here to
+    // use the SPI. This override of paintTextField should be able to be removed
+    // when 10.6 is the minimum required system and Chromium is built against
+    // the 10.6 SDK.
+    //
+    // https://bugs.webkit.org/show_bug.cgi?id=75860
+    // http://code.google.com/p/chromium/issues/detail?id=109567
+
+    LocalCurrentGraphicsContext localContext(paintInfo.context);
+    wkDrawBezeledTextFieldCell(r, isEnabled(o) && !isReadOnlyControl(o));
+
+    return false;
+}
+
 #if ENABLE(VIDEO)
 
 void RenderThemeChromiumMac::adjustMediaSliderThumbSize(RenderStyle* style) const
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to