# HG changeset patch # Parent 70de2960aa877d7755ee6f66bf2d4c4c46bfed2c # User Martin Stransky Bug 1073117 - Theme issues with GTK 3.14 - fix gtk button and entry size, r=?karlt Theme borders has been removed in Gtk 3.14 so we can't use them to calculate button size. Should computed as border + padding. Also update nsNativeThemeGTK::GetWidgetPadding() for that. diff --git a/widget/gtk/gtk3drawing.c b/widget/gtk/gtk3drawing.c --- a/widget/gtk/gtk3drawing.c +++ b/widget/gtk/gtk3drawing.c @@ -2686,25 +2686,23 @@ moz_gtk_get_widget_border(GtkThemeWidget { GtkBorder inner_border; gboolean interior_focus; gint focus_width, focus_pad; ensure_button_widget(); *left = *top = *right = *bottom = gtk_container_get_border_width(GTK_CONTAINER(gButtonWidget)); + style = gtk_widget_get_style_context(gButtonWidget); + moz_gtk_add_style_border(style, left, top, right, bottom); + /* Don't add this padding in HTML, otherwise the buttons will become too big and stuff the layout. */ if (!inhtml) { - moz_gtk_widget_get_focus(gButtonWidget, &interior_focus, &focus_width, &focus_pad); - moz_gtk_button_get_inner_border(gButtonWidget, &inner_border); - *left += focus_width + focus_pad + inner_border.left; - *right += focus_width + focus_pad + inner_border.right; - *top += focus_width + focus_pad + inner_border.top; - *bottom += focus_width + focus_pad + inner_border.bottom; + moz_gtk_add_style_padding(style, left, top, right, bottom); } moz_gtk_add_style_border(gtk_widget_get_style_context(gButtonWidget), left, top, right, bottom); return MOZ_GTK_SUCCESS; } case MOZ_GTK_ENTRY: { diff --git a/widget/gtk/nsNativeThemeGTK.cpp b/widget/gtk/nsNativeThemeGTK.cpp --- a/widget/gtk/nsNativeThemeGTK.cpp +++ b/widget/gtk/nsNativeThemeGTK.cpp @@ -992,16 +992,21 @@ nsNativeThemeGTK::GetWidgetPadding(nsDev switch (aWidgetType) { case NS_THEME_BUTTON_FOCUS: case NS_THEME_TOOLBAR_BUTTON: case NS_THEME_TOOLBAR_DUAL_BUTTON: case NS_THEME_TAB_SCROLLARROW_BACK: case NS_THEME_TAB_SCROLLARROW_FORWARD: case NS_THEME_DROPDOWN_BUTTON: case NS_THEME_TOOLBAR_BUTTON_DROPDOWN: + case NS_THEME_FOCUS_OUTLINE: + case NS_THEME_NUMBER_INPUT: + case NS_THEME_TEXTFIELD: + case NS_THEME_TEXTFIELD_MULTILINE: + case NS_THEME_BUTTON: case NS_THEME_BUTTON_ARROW_UP: case NS_THEME_BUTTON_ARROW_DOWN: case NS_THEME_BUTTON_ARROW_NEXT: case NS_THEME_BUTTON_ARROW_PREVIOUS: case NS_THEME_RANGE_THUMB: // Radios and checkboxes return a fixed size in GetMinimumWidgetSize // and have a meaningful baseline, so they can't have // author-specified padding.