bug 1319957 don't realize widgets for their style r?stransky
This was needed in GTK2 to get the style of the widget, but styles are almost
independent of widgets with GTK3, where realizing is not necessary to get the
style context.
MozReview-Commit-ID: GtL2FLDl9uA
--- a/widget/gtk/WidgetStyleCache.cpp
+++ b/widget/gtk/WidgetStyleCache.cpp
@@ -28,34 +28,32 @@ static GtkStyleContext*
GetWidgetRootStyle(WidgetNodeType aNodeType);
static GtkStyleContext*
GetCssNodeStyleInternal(WidgetNodeType aNodeType);
static GtkWidget*
CreateWindowWidget()
{
GtkWidget *widget = gtk_window_new(GTK_WINDOW_POPUP);
- gtk_widget_realize(widget);
gtk_widget_set_name(widget, "MozillaGtkWidget");
return widget;
}
static GtkWidget*
CreateWindowContainerWidget()
{
GtkWidget *widget = gtk_fixed_new();
gtk_container_add(GTK_CONTAINER(GetWidget(MOZ_GTK_WINDOW)), widget);
return widget;
}
static void
AddToWindowContainer(GtkWidget* widget)
{
gtk_container_add(GTK_CONTAINER(GetWidget(MOZ_GTK_WINDOW_CONTAINER)), widget);
- gtk_widget_realize(widget);
}
static GtkWidget*
CreateScrollbarWidget(WidgetNodeType aWidgetType, GtkOrientation aOrientation)
{
GtkWidget* widget = gtk_scrollbar_new(aOrientation, nullptr);
AddToWindowContainer(widget);
return widget;
@@ -137,17 +135,16 @@ CreateGripperWidget()
return widget;
}
static GtkWidget*
CreateToolbarWidget()
{
GtkWidget* widget = gtk_toolbar_new();
gtk_container_add(GTK_CONTAINER(GetWidget(MOZ_GTK_GRIPPER)), widget);
- gtk_widget_realize(widget);
return widget;
}
static GtkWidget*
CreateToolbarSeparatorWidget()
{
GtkWidget* widget = GTK_WIDGET(gtk_separator_tool_item_new());
AddToWindowContainer(widget);
@@ -178,17 +175,16 @@ CreateToggleButtonWidget()
return widget;
}
static GtkWidget*
CreateButtonArrowWidget()
{
GtkWidget* widget = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_OUT);
gtk_container_add(GTK_CONTAINER(GetWidget(MOZ_GTK_TOGGLE_BUTTON)), widget);
- gtk_widget_realize(widget);
gtk_widget_show(widget);
return widget;
}
static GtkWidget*
CreateSpinWidget()
{
GtkWidget* widget = gtk_spin_button_new(nullptr, 1, 0);
@@ -221,18 +217,16 @@ typedef struct
static void
GetInnerWidget(GtkWidget* widget, gpointer client_data)
{
auto info = static_cast<GtkInnerWidgetInfo*>(client_data);
if (G_TYPE_CHECK_INSTANCE_TYPE(widget, info->type)) {
*info->widget = widget;
}
-
- gtk_widget_realize(widget);
}
static GtkWidget*
CreateComboBoxButtonWidget()
{
GtkWidget* comboBox = GetWidget(MOZ_GTK_COMBOBOX);
GtkWidget* comboBoxButton = nullptr;
@@ -282,17 +276,16 @@ CreateComboBoxArrowWidget()
GtkInnerWidgetInfo info = { GTK_TYPE_ARROW,
&comboBoxArrow };
gtk_container_forall(GTK_CONTAINER(buttonChild),
GetInnerWidget, &info);
} else if (GTK_IS_ARROW(buttonChild)) {
/* appears-as-list = TRUE, or cell-view = FALSE;
* the button only contains an arrow */
comboBoxArrow = buttonChild;
- gtk_widget_realize(comboBoxArrow);
}
if (!comboBoxArrow) {
/* Shouldn't be reached with current internal gtk implementation;
* we gButtonArrowWidget as last resort fallback to avoid
* crashing. */
comboBoxArrow = GetWidget(MOZ_GTK_BUTTON_ARROW);
} else {
@@ -411,17 +404,16 @@ CreateComboBoxEntryArrowWidget()
GtkInnerWidgetInfo info = { GTK_TYPE_ARROW,
&comboBoxArrow };
gtk_container_forall(GTK_CONTAINER(buttonChild),
GetInnerWidget, &info);
} else if (GTK_IS_ARROW(buttonChild)) {
/* appears-as-list = TRUE, or cell-view = FALSE;
* the button only contains an arrow */
comboBoxArrow = buttonChild;
- gtk_widget_realize(comboBoxArrow);
}
if (!comboBoxArrow) {
/* Shouldn't be reached with current internal gtk implementation;
* we gButtonArrowWidget as last resort fallback to avoid
* crashing. */
comboBoxArrow = GetWidget(MOZ_GTK_BUTTON_ARROW);
} else {
@@ -451,17 +443,16 @@ CreateTextViewWidget()
}
static GtkWidget*
CreateMenuSeparatorWidget()
{
GtkWidget* widget = gtk_separator_menu_item_new();
gtk_menu_shell_append(GTK_MENU_SHELL(GetWidget(MOZ_GTK_MENUPOPUP)),
widget);
- gtk_widget_realize(widget);
return widget;
}
static GtkWidget*
CreateTreeViewWidget()
{
GtkWidget* widget = gtk_tree_view_new();
AddToWindowContainer(widget);