[maemo-commits] [maemo-commits] r9509 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu Feb 1 14:21:27 EET 2007
- Previous message: [maemo-commits] r9508 - in projects/haf/branches/hildon-libs/hildon-1: . src
- Next message: [maemo-commits] r9510 - in projects/haf/branches/hildon-libs/hildon-1: . src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: timj Date: 2007-02-01 14:21:26 +0200 (Thu, 01 Feb 2007) New Revision: 9509 Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkcombobox.c Log: Thu Feb 1 13:19:58 2007 Tim Janik <timj at imendio.com> * gtk/gtkcombobox.c: added ::autodimmed_button style proeprty to atuomatically make a combobox insensitive for empty models. * gtk/gtkcombobox.c (gtk_combo_box_list_destroy): remove extra reference that gtkcombobox keeps on priv->popup_widget if it's a tree view. Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog 2007-02-01 12:15:20 UTC (rev 9508) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog 2007-02-01 12:21:26 UTC (rev 9509) @@ -1,3 +1,11 @@ +Thu Feb 1 13:19:58 2007 Tim Janik <timj at imendio.com> + + * gtk/gtkcombobox.c: added ::autodimmed_button style proeprty to + atuomatically make a combobox insensitive for empty models. + + * gtk/gtkcombobox.c (gtk_combo_box_list_destroy): remove extra reference + that gtkcombobox keeps on priv->popup_widget if it's a tree view. + 2007-02-01 Kristian Rietveld <kris at imendio.com> A first patch to get pen dragging going. Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkcombobox.c =================================================================== --- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkcombobox.c 2007-02-01 12:15:20 UTC (rev 9508) +++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkcombobox.c 2007-02-01 12:21:26 UTC (rev 9509) @@ -1021,7 +1021,25 @@ } } +#ifdef MAEMO_CHANGES static void +maemo_check_autodim (GtkComboBox *combo_box) +{ + if (combo_box->priv->button) + { + GtkTreeModel *model = combo_box->priv->model; + GtkTreeIter iter; + gboolean autodimmed_button; + gtk_widget_style_get (GTK_WIDGET (combo_box), "autodimmed_button", &autodimmed_button, NULL); + if (autodimmed_button && (!model || !gtk_tree_model_get_iter_first (model, &iter))) + gtk_widget_set_sensitive (combo_box->priv->button, FALSE); + else + gtk_widget_set_sensitive (combo_box->priv->button, TRUE); + } +} +#endif /* MAEMO_CHANGES */ + +static void gtk_combo_box_style_set (GtkWidget *widget, GtkStyle *previous) { @@ -1032,6 +1050,17 @@ if (combo_box->priv->tree_view && combo_box->priv->cell_view) gtk_cell_view_set_background_color (GTK_CELL_VIEW (combo_box->priv->cell_view), &widget->style->base[GTK_WIDGET_STATE (widget)]); + +#ifdef MAEMO_CHANGES + /* Handle the dimmed state of the button in regards whether + * the list is empty or not. This has to be done here because + * in the callback functions of GtkTreeModel the button widget + * may have not yet been set. However, we repeat this stuff in + * those functions, because later the button will be set and + * we want to update our state. + */ + maemo_check_autodim (combo_box); +#endif /* MAEMO_CHANGES */ } static void @@ -2990,6 +3019,10 @@ gtk_combo_box_list_popup_resize (combo_box); else gtk_combo_box_menu_row_inserted (model, path, iter, user_data); + +#ifdef MAEMO_CHANGES + maemo_check_autodim (combo_box); +#endif /* MAEMO_CHANGES */ } static void @@ -3008,7 +3041,11 @@ if (combo_box->priv->tree_view) gtk_combo_box_list_popup_resize (combo_box); else - gtk_combo_box_menu_row_deleted (model, path, user_data); + gtk_combo_box_menu_row_deleted (model, path, user_data); + +#ifdef MAEMO_CHANGES + maemo_check_autodim (combo_box); +#endif /* MAEMO_CHANGES */ } static void @@ -3587,7 +3624,11 @@ gtk_widget_destroy (combo_box->priv->tree_view); combo_box->priv->tree_view = NULL; - combo_box->priv->popup_widget = NULL; + if (combo_box->priv->popup_widget) + { + g_object_unref (combo_box->priv->popup_widget); + combo_box->priv->popup_widget = NULL; + } } /* callbacks */ @@ -4744,6 +4785,9 @@ if (!model) { gtk_combo_box_unset_model (combo_box); +#ifdef MAEMO_CHANGES + maemo_check_autodim (combo_box); +#endif /* MAEMO_CHANGES */ return; } @@ -4793,6 +4837,9 @@ if (combo_box->priv->cell_view) gtk_cell_view_set_model (GTK_CELL_VIEW (combo_box->priv->cell_view), combo_box->priv->model); +#ifdef MAEMO_CHANGES + maemo_check_autodim (combo_box); +#endif /* MAEMO_CHANGES */ } /**
- Previous message: [maemo-commits] r9508 - in projects/haf/branches/hildon-libs/hildon-1: . src
- Next message: [maemo-commits] r9510 - in projects/haf/branches/hildon-libs/hildon-1: . src
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]