[gtk+] menu: Undo a hack with style contexts
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] menu: Undo a hack with style contexts
- Date: Sat, 7 Apr 2012 11:05:31 +0000 (UTC)
commit 7204724c9f5ad0213f80581aaed7a274b69daae2
Author: Benjamin Otte <otte redhat com>
Date: Tue Mar 20 04:06:49 2012 +0100
menu: Undo a hack with style contexts
Widget implementations aren't allowed to fiddle with the widget's style
context.
Sheesh.
gtk/gtkmenu.c | 12 +++++-------
1 files changed, 5 insertions(+), 7 deletions(-)
---
diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c
index ee15338..88be4e3 100644
--- a/gtk/gtkmenu.c
+++ b/gtk/gtkmenu.c
@@ -3191,19 +3191,19 @@ gtk_menu_get_preferred_width (GtkWidget *widget,
!priv->no_toggle_size)
{
GtkStyleContext *context;
- GtkWidgetPath *menu_path, *check_path;
+ GtkWidgetPath *check_path;
guint toggle_spacing;
guint indicator_size;
- context = gtk_widget_get_style_context (widget);
- menu_path = gtk_widget_path_copy (gtk_style_context_get_path (context));
+ context = gtk_style_context_new ();
/* Create a GtkCheckMenuItem path, only to query indicator spacing */
- check_path = gtk_widget_path_copy (menu_path);
+ check_path = gtk_widget_path_copy (gtk_widget_get_path (widget));
gtk_widget_path_append_type (check_path, GTK_TYPE_CHECK_MENU_ITEM);
gtk_style_context_set_path (context, check_path);
gtk_widget_path_free (check_path);
+ gtk_style_context_set_screen (context, gtk_widget_get_screen (widget));
gtk_style_context_get_style (context,
"toggle-spacing", &toggle_spacing,
@@ -3212,9 +3212,7 @@ gtk_menu_get_preferred_width (GtkWidget *widget,
max_toggle_size = indicator_size + toggle_spacing;
- /* Restore real widget path */
- gtk_style_context_set_path (context, menu_path);
- gtk_widget_path_free (menu_path);
+ g_object_unref (context);
}
min_width += 2 * max_toggle_size + max_accel_width;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]