Title: [234592] trunk/Source/WebCore
Revision
234592
Author
commit-qu...@webkit.org
Date
2018-08-06 01:25:34 -0700 (Mon, 06 Aug 2018)

Log Message

[GTK] Buttons are drawn too large, text not centered
https://bugs.webkit.org/show_bug.cgi?id=185854

Patch by Carlos Eduardo Ramalho <cadubent...@gmail.com> on 2018-08-06
Reviewed by Carlos Garcia Campos.

Some pages require small buttons and the GTK theme was
drawing only down to a minimum size.

No new tests required. Current layout tests and ManualTests/gtk/theme.html
already cover it.

* platform/gtk/RenderThemeGadget.cpp:
(WebCore::RenderThemeGadget::create):
(WebCore::RenderThemeButtonGadget::RenderThemeButtonGadget): Added
(WebCore::RenderThemeButtonGadget::minimumSize const):
Allow sizes smaller than the minimum size.
* platform/gtk/RenderThemeGadget.h:
* platform/gtk/RenderThemeWidget.cpp:
(WebCore::RenderThemeButton::RenderThemeButton):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (234591 => 234592)


--- trunk/Source/WebCore/ChangeLog	2018-08-06 08:25:29 UTC (rev 234591)
+++ trunk/Source/WebCore/ChangeLog	2018-08-06 08:25:34 UTC (rev 234592)
@@ -1,3 +1,25 @@
+2018-08-06  Carlos Eduardo Ramalho  <cadubent...@gmail.com>
+
+        [GTK] Buttons are drawn too large, text not centered
+        https://bugs.webkit.org/show_bug.cgi?id=185854
+
+        Reviewed by Carlos Garcia Campos.
+
+        Some pages require small buttons and the GTK theme was
+        drawing only down to a minimum size.
+
+        No new tests required. Current layout tests and ManualTests/gtk/theme.html
+        already cover it.
+
+        * platform/gtk/RenderThemeGadget.cpp:
+        (WebCore::RenderThemeGadget::create):
+        (WebCore::RenderThemeButtonGadget::RenderThemeButtonGadget): Added
+        (WebCore::RenderThemeButtonGadget::minimumSize const):
+        Allow sizes smaller than the minimum size.
+        * platform/gtk/RenderThemeGadget.h:
+        * platform/gtk/RenderThemeWidget.cpp:
+        (WebCore::RenderThemeButton::RenderThemeButton):
+
 2018-08-05  Yusuke Suzuki  <utatane....@gmail.com>
 
         Implement self.queueMicrotask in Workers

Modified: trunk/Source/WebCore/platform/gtk/RenderThemeGadget.cpp (234591 => 234592)


--- trunk/Source/WebCore/platform/gtk/RenderThemeGadget.cpp	2018-08-06 08:25:29 UTC (rev 234591)
+++ trunk/Source/WebCore/platform/gtk/RenderThemeGadget.cpp	2018-08-06 08:25:34 UTC (rev 234592)
@@ -49,6 +49,8 @@
         return std::make_unique<RenderThemeIconGadget>(info, parent, siblings, position);
     case RenderThemeGadget::Type::Scrollbar:
         return std::make_unique<RenderThemeScrollbarGadget>(info, parent, siblings, position);
+    case RenderThemeGadget::Type::Button:
+        return std::make_unique<RenderThemeButtonGadget>(info, parent, siblings, position);
     }
 
     ASSERT_NOT_REACHED();
@@ -386,6 +388,17 @@
         contentsRect.y() + (contentsRect.height() - stepperSize) / 2, stepperSize);
 }
 
+RenderThemeButtonGadget::RenderThemeButtonGadget(const Info& info, RenderThemeGadget* parent, const Vector<RenderThemeGadget::Info> siblings, unsigned position)
+    : RenderThemeGadget(info, parent, siblings, position)
+{
+}
+
+IntSize RenderThemeButtonGadget::minimumSize() const
+{
+    // Allow buttons to be smaller than the minimum size
+    return IntSize();
+}
+
 } // namespace WebCore
 
 #endif // GTK_CHECK_VERSION(3, 20, 0)

Modified: trunk/Source/WebCore/platform/gtk/RenderThemeGadget.h (234591 => 234592)


--- trunk/Source/WebCore/platform/gtk/RenderThemeGadget.h	2018-08-06 08:25:29 UTC (rev 234591)
+++ trunk/Source/WebCore/platform/gtk/RenderThemeGadget.h	2018-08-06 08:25:34 UTC (rev 234592)
@@ -50,7 +50,8 @@
         Radio,
         Arrow,
         Icon,
-        Scrollbar
+        Scrollbar,
+        Button
     };
 
     struct Info {
@@ -169,6 +170,13 @@
     OptionSet<Steppers> m_steppers;
 };
 
+class RenderThemeButtonGadget final : public RenderThemeGadget {
+public:
+    RenderThemeButtonGadget(const Info&, RenderThemeGadget* parent, const Vector<RenderThemeGadget::Info> siblings, unsigned position);
+
+    IntSize minimumSize() const override;
+};
+
 } // namespace WebCore
 
 #endif // GTK_CHECK_VERSION(3, 20, 0)

Modified: trunk/Source/WebCore/platform/gtk/RenderThemeWidget.cpp (234591 => 234592)


--- trunk/Source/WebCore/platform/gtk/RenderThemeWidget.cpp	2018-08-06 08:25:29 UTC (rev 234591)
+++ trunk/Source/WebCore/platform/gtk/RenderThemeWidget.cpp	2018-08-06 08:25:34 UTC (rev 234592)
@@ -182,7 +182,7 @@
 
 RenderThemeButton::RenderThemeButton(Default isDefault)
 {
-    RenderThemeGadget::Info info = { RenderThemeGadget::Type::Generic, "button", { "text-button" } };
+    RenderThemeGadget::Info info = { RenderThemeGadget::Type::Button, "button", { "text-button" } };
     if (isDefault == Default::Yes)
         info.classList.append("default");
     m_button = RenderThemeGadget::create(info);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to