bug 1315668 use style context instead of widget for menuitem dimensions r?stransky
This is necessary to switch from caching GtkWidgets to caching
GtkStyleContexts only.
MozReview-Commit-ID: 6Rwinr4AY8l
--- a/widget/gtk/gtk3drawing.cpp
+++ b/widget/gtk/gtk3drawing.cpp
@@ -140,30 +140,31 @@ moz_gtk_get_focus_outline_size(gint* foc
moz_gtk_get_focus_outline_size(style, focus_h_width, focus_v_width);
ReleaseStyleContext(style);
return MOZ_GTK_SUCCESS;
}
gint
moz_gtk_menuitem_get_horizontal_padding(gint* horizontal_padding)
{
- gtk_widget_style_get(GetWidget(MOZ_GTK_MENUITEM),
- "horizontal-padding", horizontal_padding,
- nullptr);
-
+ GtkStyleContext *style = ClaimStyleContext(MOZ_GTK_MENUITEM);
+ gtk_style_context_get_style(style,
+ "horizontal-padding", horizontal_padding,
+ nullptr);
+ ReleaseStyleContext(style);
return MOZ_GTK_SUCCESS;
}
gint
moz_gtk_checkmenuitem_get_horizontal_padding(gint* horizontal_padding)
{
GtkStyleContext *style = ClaimStyleContext(MOZ_GTK_CHECKMENUITEM_CONTAINER);
gtk_style_context_get_style(style,
"horizontal-padding", horizontal_padding,
- NULL);
+ nullptr);
ReleaseStyleContext(style);
return MOZ_GTK_SUCCESS;
}
gint
moz_gtk_button_get_default_overflow(gint* border_top, gint* border_left,
gint* border_bottom, gint* border_right)
{
@@ -2146,25 +2147,25 @@ moz_gtk_get_widget_border(WidgetNodeType
case MOZ_GTK_MENUPOPUP:
w = GetWidget(MOZ_GTK_MENUPOPUP);
break;
case MOZ_GTK_MENUBARITEM:
case MOZ_GTK_MENUITEM:
case MOZ_GTK_CHECKMENUITEM:
case MOZ_GTK_RADIOMENUITEM:
{
- if (widget == MOZ_GTK_MENUBARITEM || widget == MOZ_GTK_MENUITEM) {
- // Bug 1274143 for MOZ_GTK_MENUBARITEM
- w = GetWidget(MOZ_GTK_MENUITEM);
- } else {
- w = GetWidget(MOZ_GTK_CHECKMENUITEM_CONTAINER);
- }
+ // Bug 1274143 for MOZ_GTK_MENUBARITEM
+ WidgetNodeType type =
+ widget == MOZ_GTK_MENUBARITEM || widget == MOZ_GTK_MENUITEM ?
+ MOZ_GTK_MENUITEM : MOZ_GTK_CHECKMENUITEM_CONTAINER;
+ style = ClaimStyleContext(type);
- moz_gtk_add_style_padding(gtk_widget_get_style_context(w),
- left, top, right, bottom);
+ moz_gtk_add_style_padding(style, left, top, right, bottom);
+
+ ReleaseStyleContext(style);
return MOZ_GTK_SUCCESS;
}
case MOZ_GTK_INFO_BAR:
w = GetWidget(MOZ_GTK_INFO_BAR);
break;
case MOZ_GTK_TOOLTIP:
{
style = ClaimStyleContext(MOZ_GTK_TOOLTIP);