Title: [96844] trunk/Source/WebCore
Revision
96844
Author
commit-qu...@webkit.org
Date
2011-10-06 12:15:57 -0700 (Thu, 06 Oct 2011)

Log Message

[EFL] Do not create cairo surfaces with the wrong size for form elements
https://bugs.webkit.org/show_bug.cgi?id=69533

Patch by Raphael Kubo da Costa <k...@profusion.mobi> on 2011-10-06
Reviewed by Ryosuke Niwa.

RenderThemeEfl::cacheThemePartResizeAndReset resizes the Ecore_Evas
associated with an entry, but did not reset the `size` attribute of the
struct -- in practice, this meant the subsequent call to
themePartCacheEntrySurfaceCreate would create a cairo surface with the
previous size, thus rendering an element with the wrong size.

No new tests, this is triggered by running running pixel tests for
running, in this order, fast/forms/button-sizes.html,
fast/forms/input-appearance-preventDefault.html,
fast/forms/input-appearance-spinbutton-disabled-readonly.html,
fast/forms/input-appearance-width.html,
fast/forms/input-button-sizes.html,
fast/forms/input-placeholder-text-indent.html and
fast/forms/input-text-click-inside.html (!).

* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::cacheThemePartResizeAndReset): Reset the
size attribute when resizing the canvas.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (96843 => 96844)


--- trunk/Source/WebCore/ChangeLog	2011-10-06 19:07:34 UTC (rev 96843)
+++ trunk/Source/WebCore/ChangeLog	2011-10-06 19:15:57 UTC (rev 96844)
@@ -1,3 +1,29 @@
+2011-10-06  Raphael Kubo da Costa  <k...@profusion.mobi>
+
+        [EFL] Do not create cairo surfaces with the wrong size for form elements
+        https://bugs.webkit.org/show_bug.cgi?id=69533
+
+        Reviewed by Ryosuke Niwa.
+
+        RenderThemeEfl::cacheThemePartResizeAndReset resizes the Ecore_Evas
+        associated with an entry, but did not reset the `size` attribute of the
+        struct -- in practice, this meant the subsequent call to
+        themePartCacheEntrySurfaceCreate would create a cairo surface with the
+        previous size, thus rendering an element with the wrong size.
+
+        No new tests, this is triggered by running running pixel tests for
+        running, in this order, fast/forms/button-sizes.html,
+        fast/forms/input-appearance-preventDefault.html,
+        fast/forms/input-appearance-spinbutton-disabled-readonly.html,
+        fast/forms/input-appearance-width.html,
+        fast/forms/input-button-sizes.html,
+        fast/forms/input-placeholder-text-indent.html and
+        fast/forms/input-text-click-inside.html (!).
+
+        * platform/efl/RenderThemeEfl.cpp:
+        (WebCore::RenderThemeEfl::cacheThemePartResizeAndReset): Reset the
+        size attribute when resizing the canvas.
+
 2011-10-06  Chris Rogers  <crog...@google.com>
 
         Make sure OfflineAudioContext can not be created with a sample-rate less than 44.1KHz

Modified: trunk/Source/WebCore/platform/efl/RenderThemeEfl.cpp (96843 => 96844)


--- trunk/Source/WebCore/platform/efl/RenderThemeEfl.cpp	2011-10-06 19:07:34 UTC (rev 96843)
+++ trunk/Source/WebCore/platform/efl/RenderThemeEfl.cpp	2011-10-06 19:15:57 UTC (rev 96844)
@@ -218,6 +218,8 @@
 struct RenderThemeEfl::ThemePartCacheEntry* RenderThemeEfl::cacheThemePartResizeAndReset(FormType type, const IntSize& size, struct RenderThemeEfl::ThemePartCacheEntry* entry)
 {
     cairo_surface_finish(entry->surface);
+
+    entry->size = size;
     ecore_evas_resize(entry->ee, size.width(), size.height());
     evas_object_resize(entry->o, size.width(), size.height());
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to