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