Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
2010-01-17 Martin Robinson <martin.james.robinson@gmail.com>
        Reviewed by Gustavo Noronha Silva.

        [GTK] GtkWebKit incompatible with rgba colormaps
        https://bugs.webkit.org/show_bug.cgi?id=20736

        Fix GTK theme rendering onto drawables with RGBA colormaps. Now
        each type of colormap has its own collection of GtkWidgets.

        This fix does not introduce any functionality changes, so does not
        includes new tests.

        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::RenderThemeGtk):
        (WebCore::RenderThemeGtk::~RenderThemeGtk):
        (WebCore::RenderThemeGtk::partsForDrawable):
        (WebCore::adjustMozillaStyle):
        (WebCore::setMozillaState):
        (WebCore::paintMozillaGtkWidget):
        (WebCore::setToggleSize):
        (WebCore::RenderThemeGtk::setCheckboxSize):
        (WebCore::RenderThemeGtk::paintCheckbox):
        (WebCore::RenderThemeGtk::setRadioSize):
        (WebCore::RenderThemeGtk::paintRadio):
        (WebCore::RenderThemeGtk::paintButton):
        (WebCore::RenderThemeGtk::adjustMenuListStyle):
        (WebCore::RenderThemeGtk::paintMenuList):
        (WebCore::RenderThemeGtk::adjustTextFieldStyle):
        (WebCore::RenderThemeGtk::paintTextField):
        (WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
        (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
        (WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
        * platform/gtk/RenderThemeGtk.h:
        * platform/gtk/gtk2drawing.c:
        (moz_gtk_use_theme_parts):
        (ensure_window_widget):
        (setup_widget_prototype):
        (ensure_button_widget):
        (ensure_hpaned_widget):
        (ensure_vpaned_widget):
        (ensure_toggle_button_widget):
        (ensure_button_arrow_widget):
        (ensure_checkbox_widget):
        (ensure_radiobutton_widget):
        (ensure_scrollbar_widget):
        (ensure_spin_widget):
        (ensure_scale_widget):
        (ensure_entry_widget):
        (moz_gtk_get_combo_box_inner_button):
        (moz_gtk_get_combo_box_button_inner_widgets):
        (ensure_combo_box_widgets):
        (moz_gtk_get_combo_box_entry_inner_widgets):
        (moz_gtk_get_combo_box_entry_arrow):
        (ensure_combo_box_entry_widgets):
        (ensure_handlebox_widget):
        (ensure_toolbar_widget):
        (ensure_toolbar_separator_widget):
        (ensure_tooltip_widget):
        (ensure_tab_widget):
        (ensure_progress_widget):
        (ensure_statusbar_widget):
        (ensure_frame_widget):
        (ensure_menu_bar_widget):
        (ensure_menu_bar_item_widget):
        (ensure_menu_popup_widget):
        (ensure_menu_item_widget):
        (ensure_image_menu_item_widget):
        (ensure_menu_separator_widget):
        (ensure_check_menu_item_widget):
        (ensure_tree_view_widget):
        (ensure_tree_header_cell_widget):
        (ensure_expander_widget):
        (ensure_scrolled_window_widget):
        (moz_gtk_checkbox_get_metrics):
        (moz_gtk_radio_get_metrics):
        (moz_gtk_splitter_get_metrics):
        (moz_gtk_toggle_paint):
        (moz_gtk_scrollbar_button_paint):
        (moz_gtk_scrollbar_trough_paint):
        (moz_gtk_scrollbar_thumb_paint):
        (moz_gtk_spin_paint):
        (moz_gtk_spin_updown_paint):
        (moz_gtk_scale_paint):
        (moz_gtk_scale_thumb_paint):
        (moz_gtk_gripper_paint):
        (moz_gtk_hpaned_paint):
        (moz_gtk_vpaned_paint):
        (moz_gtk_caret_paint):
        (moz_gtk_treeview_paint):
        (moz_gtk_tree_header_cell_paint):
        (moz_gtk_tree_header_sort_arrow_paint):
        (moz_gtk_treeview_expander_paint):
        (moz_gtk_expander_paint):
        (moz_gtk_combo_box_paint):
        (moz_gtk_downarrow_paint):
        (moz_gtk_combo_box_entry_button_paint):
        (moz_gtk_container_paint):
        (moz_gtk_toggle_label_paint):
        (moz_gtk_toolbar_paint):
        (moz_gtk_toolbar_separator_paint):
        (moz_gtk_tooltip_paint):
        (moz_gtk_resizer_paint):
        (moz_gtk_frame_paint):
        (moz_gtk_progressbar_paint):
        (moz_gtk_progress_chunk_paint):
        (moz_gtk_get_tab_thickness):
        (moz_gtk_tab_paint):
        (moz_gtk_tabpanels_paint):
        (moz_gtk_tab_scroll_arrow_paint):
        (moz_gtk_menu_bar_paint):
        (moz_gtk_menu_popup_paint):
        (moz_gtk_menu_separator_paint):
        (moz_gtk_menu_item_paint):
        (moz_gtk_menu_arrow_paint):
        (moz_gtk_check_menu_item_paint):
        (moz_gtk_window_paint):
        (moz_gtk_get_widget_border):
        (moz_gtk_get_combo_box_entry_button_size):
        (moz_gtk_get_tab_scroll_arrow_size):
        (moz_gtk_get_downarrow_size):
        (moz_gtk_get_toolbar_separator_width):
        (moz_gtk_get_expander_size):
        (moz_gtk_get_treeview_expander_size):
        (moz_gtk_get_menu_separator_height):
        (moz_gtk_get_scalethumb_metrics):
        (moz_gtk_get_scrollbar_metrics):
        (moz_gtk_images_in_menus):
        (moz_gtk_widget_paint):
        (moz_gtk_get_scrollbar_widget):
        (moz_gtk_shutdown):
        (moz_gtk_destroy_theme_parts_widgets):
        * platform/gtk/gtkdrawing.h:

Canonical link: https://commits.webkit.org/44776@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@53372 268f45cc-cd09-0410-ab3c-d52691b4dbfc
  • Loading branch information
eseidel committed Jan 17, 2010
1 parent c13f142 commit 3314064
Show file tree
Hide file tree
Showing 5 changed files with 682 additions and 520 deletions.
134 changes: 134 additions & 0 deletions WebCore/ChangeLog
@@ -1,3 +1,137 @@
2010-01-17 Martin Robinson <martin.james.robinson@gmail.com>

Reviewed by Gustavo Noronha Silva.

[GTK] GtkWebKit incompatible with rgba colormaps
https://bugs.webkit.org/show_bug.cgi?id=20736

Fix GTK theme rendering onto drawables with RGBA colormaps. Now
each type of colormap has its own collection of GtkWidgets.

This fix does not introduce any functionality changes, so does not
includes new tests.

* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::RenderThemeGtk):
(WebCore::RenderThemeGtk::~RenderThemeGtk):
(WebCore::RenderThemeGtk::partsForDrawable):
(WebCore::adjustMozillaStyle):
(WebCore::setMozillaState):
(WebCore::paintMozillaGtkWidget):
(WebCore::setToggleSize):
(WebCore::RenderThemeGtk::setCheckboxSize):
(WebCore::RenderThemeGtk::paintCheckbox):
(WebCore::RenderThemeGtk::setRadioSize):
(WebCore::RenderThemeGtk::paintRadio):
(WebCore::RenderThemeGtk::paintButton):
(WebCore::RenderThemeGtk::adjustMenuListStyle):
(WebCore::RenderThemeGtk::paintMenuList):
(WebCore::RenderThemeGtk::adjustTextFieldStyle):
(WebCore::RenderThemeGtk::paintTextField):
(WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
(WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
* platform/gtk/RenderThemeGtk.h:
* platform/gtk/gtk2drawing.c:
(moz_gtk_use_theme_parts):
(ensure_window_widget):
(setup_widget_prototype):
(ensure_button_widget):
(ensure_hpaned_widget):
(ensure_vpaned_widget):
(ensure_toggle_button_widget):
(ensure_button_arrow_widget):
(ensure_checkbox_widget):
(ensure_radiobutton_widget):
(ensure_scrollbar_widget):
(ensure_spin_widget):
(ensure_scale_widget):
(ensure_entry_widget):
(moz_gtk_get_combo_box_inner_button):
(moz_gtk_get_combo_box_button_inner_widgets):
(ensure_combo_box_widgets):
(moz_gtk_get_combo_box_entry_inner_widgets):
(moz_gtk_get_combo_box_entry_arrow):
(ensure_combo_box_entry_widgets):
(ensure_handlebox_widget):
(ensure_toolbar_widget):
(ensure_toolbar_separator_widget):
(ensure_tooltip_widget):
(ensure_tab_widget):
(ensure_progress_widget):
(ensure_statusbar_widget):
(ensure_frame_widget):
(ensure_menu_bar_widget):
(ensure_menu_bar_item_widget):
(ensure_menu_popup_widget):
(ensure_menu_item_widget):
(ensure_image_menu_item_widget):
(ensure_menu_separator_widget):
(ensure_check_menu_item_widget):
(ensure_tree_view_widget):
(ensure_tree_header_cell_widget):
(ensure_expander_widget):
(ensure_scrolled_window_widget):
(moz_gtk_checkbox_get_metrics):
(moz_gtk_radio_get_metrics):
(moz_gtk_splitter_get_metrics):
(moz_gtk_toggle_paint):
(moz_gtk_scrollbar_button_paint):
(moz_gtk_scrollbar_trough_paint):
(moz_gtk_scrollbar_thumb_paint):
(moz_gtk_spin_paint):
(moz_gtk_spin_updown_paint):
(moz_gtk_scale_paint):
(moz_gtk_scale_thumb_paint):
(moz_gtk_gripper_paint):
(moz_gtk_hpaned_paint):
(moz_gtk_vpaned_paint):
(moz_gtk_caret_paint):
(moz_gtk_treeview_paint):
(moz_gtk_tree_header_cell_paint):
(moz_gtk_tree_header_sort_arrow_paint):
(moz_gtk_treeview_expander_paint):
(moz_gtk_expander_paint):
(moz_gtk_combo_box_paint):
(moz_gtk_downarrow_paint):
(moz_gtk_combo_box_entry_button_paint):
(moz_gtk_container_paint):
(moz_gtk_toggle_label_paint):
(moz_gtk_toolbar_paint):
(moz_gtk_toolbar_separator_paint):
(moz_gtk_tooltip_paint):
(moz_gtk_resizer_paint):
(moz_gtk_frame_paint):
(moz_gtk_progressbar_paint):
(moz_gtk_progress_chunk_paint):
(moz_gtk_get_tab_thickness):
(moz_gtk_tab_paint):
(moz_gtk_tabpanels_paint):
(moz_gtk_tab_scroll_arrow_paint):
(moz_gtk_menu_bar_paint):
(moz_gtk_menu_popup_paint):
(moz_gtk_menu_separator_paint):
(moz_gtk_menu_item_paint):
(moz_gtk_menu_arrow_paint):
(moz_gtk_check_menu_item_paint):
(moz_gtk_window_paint):
(moz_gtk_get_widget_border):
(moz_gtk_get_combo_box_entry_button_size):
(moz_gtk_get_tab_scroll_arrow_size):
(moz_gtk_get_downarrow_size):
(moz_gtk_get_toolbar_separator_width):
(moz_gtk_get_expander_size):
(moz_gtk_get_treeview_expander_size):
(moz_gtk_get_menu_separator_height):
(moz_gtk_get_scalethumb_metrics):
(moz_gtk_get_scrollbar_metrics):
(moz_gtk_images_in_menus):
(moz_gtk_widget_paint):
(moz_gtk_get_scrollbar_widget):
(moz_gtk_shutdown):
(moz_gtk_destroy_theme_parts_widgets):
* platform/gtk/gtkdrawing.h:

2010-01-16 Maciej Stachowiak <mjs@apple.com>

Reviewed by Oliver Hunt.
Expand Down
70 changes: 51 additions & 19 deletions WebCore/platform/gtk/RenderThemeGtk.cpp
Expand Up @@ -36,8 +36,8 @@
#include "UserAgentStyleSheets.h"
#include "gtkdrawing.h"

#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <gtk/gtk.h>

namespace WebCore {

Expand Down Expand Up @@ -137,10 +137,15 @@ RenderThemeGtk::RenderThemeGtk()
, m_pauseButton(0)
, m_seekBackButton(0)
, m_seekForwardButton(0)
, m_partsTable(adoptGRef(g_hash_table_new_full(0, 0, 0, g_free)))
{
if (!mozGtkRefCount)
if (!mozGtkRefCount) {
moz_gtk_init();

// Use the theme parts for the default drawable.
moz_gtk_use_theme_parts(partsForDrawable(0));
}

++mozGtkRefCount;

#if ENABLE(VIDEO)
Expand All @@ -162,6 +167,30 @@ RenderThemeGtk::~RenderThemeGtk()
m_pauseButton.clear();
m_seekBackButton.clear();
m_seekForwardButton.clear();

GList* values = g_hash_table_get_values(m_partsTable.get());
for (guint i = 0; i < g_list_length(values); i++)
moz_gtk_destroy_theme_parts_widgets(
static_cast<GtkThemeParts*>(g_list_nth_data(values, i)));
}

GtkThemeParts* RenderThemeGtk::partsForDrawable(GdkDrawable* drawable) const
{
// A null drawable represents the default screen colormap.
GdkColormap* colormap = 0;
if (!drawable)
colormap = gdk_screen_get_default_colormap(gdk_screen_get_default());
else
colormap = gdk_drawable_get_colormap(drawable);

GtkThemeParts* parts = static_cast<GtkThemeParts*>(g_hash_table_lookup(m_partsTable.get(), colormap));
if (!parts) {
parts = g_new0(GtkThemeParts, 1);
parts->colormap = colormap;
g_hash_table_insert(m_partsTable.get(), colormap, parts);
}

return parts;
}

static bool supportsFocus(ControlPart appearance)
Expand Down Expand Up @@ -218,7 +247,7 @@ static GtkTextDirection gtkTextDirection(TextDirection direction)
}
}

static void adjustMozStyle(RenderStyle* style, GtkThemeWidgetType type)
static void adjustMozillaStyle(const RenderThemeGtk* theme, RenderStyle* style, GtkThemeWidgetType type)
{
gint left, top, right, bottom;
GtkTextDirection direction = gtkTextDirection(style->direction());
Expand All @@ -237,7 +266,7 @@ static void adjustMozStyle(RenderStyle* style, GtkThemeWidgetType type)
style->setPaddingBottom(Length(ypadding + bottom, Fixed));
}

static void setMozState(RenderTheme* theme, GtkWidgetState* state, RenderObject* o)
static void setMozillaState(const RenderTheme* theme, GtkWidgetState* state, RenderObject* o)
{
state->active = theme->isPressed(o);
state->focused = theme->isFocused(o);
Expand All @@ -249,7 +278,7 @@ static void setMozState(RenderTheme* theme, GtkWidgetState* state, RenderObject*
state->depressed = false;
}

static bool paintMozWidget(RenderTheme* theme, GtkThemeWidgetType type, RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& rect)
static bool paintMozillaGtkWidget(const RenderThemeGtk* theme, GtkThemeWidgetType type, RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& rect)
{
// No GdkWindow to render to, so return true to fall back
if (!i.context->gdkDrawable())
Expand All @@ -260,7 +289,7 @@ static bool paintMozWidget(RenderTheme* theme, GtkThemeWidgetType type, RenderOb
return false;

GtkWidgetState mozState;
setMozState(theme, &mozState, o);
setMozillaState(theme, &mozState, o);

int flags;

Expand Down Expand Up @@ -298,6 +327,9 @@ static bool paintMozWidget(RenderTheme* theme, GtkThemeWidgetType type, RenderOb

gdk_rectangle_intersect(&gdkRect, &gdkClipRect, &gdkClipRect);

// Since the theme renderer is going to be drawing onto this GdkDrawable,
// select the appropriate widgets for the drawable depth.
moz_gtk_use_theme_parts(theme->partsForDrawable(i.context->gdkDrawable()));
return moz_gtk_widget_paint(type, i.context->gdkDrawable(), &gdkRect, &gdkClipRect, &mozState, flags, direction) != MOZ_GTK_SUCCESS;
}

Expand All @@ -311,7 +343,7 @@ static void setButtonPadding(RenderStyle* style)
style->setPaddingBottom(Length(padding / 2, Fixed));
}

static void setToggleSize(RenderStyle* style, ControlPart appearance)
static void setToggleSize(const RenderThemeGtk* theme, RenderStyle* style, ControlPart appearance)
{
// The width and height are both specified, so we shouldn't change them.
if (!style->width().isIntrinsicOrAuto() && !style->height().isAuto())
Expand Down Expand Up @@ -345,22 +377,22 @@ static void setToggleSize(RenderStyle* style, ControlPart appearance)

void RenderThemeGtk::setCheckboxSize(RenderStyle* style) const
{
setToggleSize(style, RadioPart);
setToggleSize(this, style, RadioPart);
}

bool RenderThemeGtk::paintCheckbox(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& rect)
{
return paintMozWidget(this, MOZ_GTK_CHECKBUTTON, o, i, rect);
return paintMozillaGtkWidget(this, MOZ_GTK_CHECKBUTTON, o, i, rect);
}

void RenderThemeGtk::setRadioSize(RenderStyle* style) const
{
setToggleSize(style, RadioPart);
setToggleSize(this, style, RadioPart);
}

bool RenderThemeGtk::paintRadio(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& rect)
{
return paintMozWidget(this, MOZ_GTK_RADIOBUTTON, o, i, rect);
return paintMozillaGtkWidget(this, MOZ_GTK_RADIOBUTTON, o, i, rect);
}

void RenderThemeGtk::adjustButtonStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const
Expand All @@ -381,7 +413,7 @@ void RenderThemeGtk::adjustButtonStyle(CSSStyleSelector* selector, RenderStyle*

bool RenderThemeGtk::paintButton(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& rect)
{
return paintMozWidget(this, MOZ_GTK_BUTTON, o, i, rect);
return paintMozillaGtkWidget(this, MOZ_GTK_BUTTON, o, i, rect);
}

void RenderThemeGtk::adjustMenuListStyle(CSSStyleSelector* selector, RenderStyle* style, WebCore::Element* e) const
Expand All @@ -390,12 +422,12 @@ void RenderThemeGtk::adjustMenuListStyle(CSSStyleSelector* selector, RenderStyle
style->resetPadding();
style->setHeight(Length(Auto));
style->setWhiteSpace(PRE);
adjustMozStyle(style, MOZ_GTK_DROPDOWN);
adjustMozillaStyle(this, style, MOZ_GTK_DROPDOWN);
}

bool RenderThemeGtk::paintMenuList(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& rect)
{
return paintMozWidget(this, MOZ_GTK_DROPDOWN, o, i, rect);
return paintMozillaGtkWidget(this, MOZ_GTK_DROPDOWN, o, i, rect);
}

void RenderThemeGtk::adjustTextFieldStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const
Expand All @@ -404,12 +436,12 @@ void RenderThemeGtk::adjustTextFieldStyle(CSSStyleSelector* selector, RenderStyl
style->resetPadding();
style->setHeight(Length(Auto));
style->setWhiteSpace(PRE);
adjustMozStyle(style, MOZ_GTK_ENTRY);
adjustMozillaStyle(this, style, MOZ_GTK_ENTRY);
}

bool RenderThemeGtk::paintTextField(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& rect)
{
return paintMozWidget(this, MOZ_GTK_ENTRY, o, i, rect);
return paintMozillaGtkWidget(this, MOZ_GTK_ENTRY, o, i, rect);
}

bool RenderThemeGtk::paintTextArea(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r)
Expand All @@ -424,7 +456,7 @@ void RenderThemeGtk::adjustSearchFieldResultsButtonStyle(CSSStyleSelector* selec

bool RenderThemeGtk::paintSearchFieldResultsButton(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& rect)
{
return paintMozWidget(this, MOZ_GTK_DROPDOWN_ARROW, o, i, rect);
return paintMozillaGtkWidget(this, MOZ_GTK_DROPDOWN_ARROW, o, i, rect);
}

void RenderThemeGtk::adjustSearchFieldResultsDecorationStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const
Expand All @@ -440,7 +472,7 @@ void RenderThemeGtk::adjustSearchFieldResultsDecorationStyle(CSSStyleSelector* s

bool RenderThemeGtk::paintSearchFieldResultsDecoration(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& rect)
{
return paintMozWidget(this, MOZ_GTK_CHECKMENUITEM, o, i, rect);
return paintMozillaGtkWidget(this, MOZ_GTK_CHECKMENUITEM, o, i, rect);
}

void RenderThemeGtk::adjustSearchFieldCancelButtonStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const
Expand All @@ -456,7 +488,7 @@ void RenderThemeGtk::adjustSearchFieldCancelButtonStyle(CSSStyleSelector* select

bool RenderThemeGtk::paintSearchFieldCancelButton(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& rect)
{
return paintMozWidget(this, MOZ_GTK_CHECKMENUITEM, o, i, rect);
return paintMozillaGtkWidget(this, MOZ_GTK_CHECKMENUITEM, o, i, rect);
}

void RenderThemeGtk::adjustSearchFieldStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const
Expand Down
13 changes: 9 additions & 4 deletions WebCore/platform/gtk/RenderThemeGtk.h
Expand Up @@ -25,9 +25,10 @@
*
*/

#ifndef RenderThemeGdk_h
#define RenderThemeGdk_h
#ifndef RenderThemeGtk_h
#define RenderThemeGtk_h

#include "GRefPtr.h"
#include "RenderTheme.h"

typedef struct _GtkWidget GtkWidget;
Expand All @@ -36,6 +37,7 @@ typedef struct _GtkContainer GtkContainer;
typedef struct _GdkRectangle GdkRectangle;
typedef struct _GdkDrawable GdkDrawable;
typedef struct _GtkBorder GtkBorder;
typedef struct _GtkThemeParts GtkThemeParts;

namespace WebCore {

Expand Down Expand Up @@ -87,6 +89,8 @@ class RenderThemeGtk : public RenderTheme {
virtual String extraMediaControlsStyleSheet();
#endif

GtkThemeParts* partsForDrawable(GdkDrawable*) const;

protected:
virtual bool paintCheckbox(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r);
virtual void setCheckboxSize(RenderStyle* style) const;
Expand Down Expand Up @@ -143,7 +147,6 @@ class RenderThemeGtk : public RenderTheme {
*/
GtkContainer* gtkContainer() const;

private:
mutable GtkWidget* m_gtkWindow;
mutable GtkContainer* m_gtkContainer;
mutable GtkWidget* m_gtkEntry;
Expand All @@ -165,9 +168,11 @@ class RenderThemeGtk : public RenderTheme {
RefPtr<Image> m_pauseButton;
RefPtr<Image> m_seekBackButton;
RefPtr<Image> m_seekForwardButton;
Page* m_page;
GRefPtr<GHashTable> m_partsTable;

};

}

#endif
#endif // RenderThemeGtk_h

0 comments on commit 3314064

Please sign in to comment.