Propagate the focus-on-click value to the button. (#310543, Christian

2005-07-18  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkcombobox.c (gtk_combo_box_set_focus_on_click): Propagate
	the focus-on-click value to the button.  (#310543, Christian Persch)
This commit is contained in:
Matthias Clasen
2005-07-18 14:47:55 +00:00
committed by Matthias Clasen
parent 0d0c6e1c37
commit a8b97834de
4 changed files with 28 additions and 9 deletions

View File

@ -1,5 +1,8 @@
2005-07-18 Matthias Clasen <mclasen@redhat.com> 2005-07-18 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkcombobox.c (gtk_combo_box_set_focus_on_click): Propagate
the focus-on-click value to the button. (#310543, Christian Persch)
* gtk/gtkwidget.c (gtk_widget_set_double_buffered): Add a note * gtk/gtkwidget.c (gtk_widget_set_double_buffered): Add a note
about the need to handle expose events. We really need a chapter about the need to handle expose events. We really need a chapter
on the GTK+ drawing model that we can refer to here... (#310765, on the GTK+ drawing model that we can refer to here... (#310765,

View File

@ -1,5 +1,8 @@
2005-07-18 Matthias Clasen <mclasen@redhat.com> 2005-07-18 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkcombobox.c (gtk_combo_box_set_focus_on_click): Propagate
the focus-on-click value to the button. (#310543, Christian Persch)
* gtk/gtkwidget.c (gtk_widget_set_double_buffered): Add a note * gtk/gtkwidget.c (gtk_widget_set_double_buffered): Add a note
about the need to handle expose events. We really need a chapter about the need to handle expose events. We really need a chapter
on the GTK+ drawing model that we can refer to here... (#310765, on the GTK+ drawing model that we can refer to here... (#310765,

View File

@ -1,5 +1,8 @@
2005-07-18 Matthias Clasen <mclasen@redhat.com> 2005-07-18 Matthias Clasen <mclasen@redhat.com>
* gtk/gtkcombobox.c (gtk_combo_box_set_focus_on_click): Propagate
the focus-on-click value to the button. (#310543, Christian Persch)
* gtk/gtkwidget.c (gtk_widget_set_double_buffered): Add a note * gtk/gtkwidget.c (gtk_widget_set_double_buffered): Add a note
about the need to handle expose events. We really need a chapter about the need to handle expose events. We really need a chapter
on the GTK+ drawing model that we can refer to here... (#310765, on the GTK+ drawing model that we can refer to here... (#310765,

View File

@ -775,7 +775,8 @@ gtk_combo_box_set_property (GObject *object,
break; break;
case PROP_FOCUS_ON_CLICK: case PROP_FOCUS_ON_CLICK:
combo_box->priv->focus_on_click = g_value_get_boolean (value); gtk_combo_box_set_focus_on_click (combo_box,
g_value_get_boolean (value));
break; break;
default: default:
@ -2389,6 +2390,8 @@ gtk_combo_box_menu_setup (GtkComboBox *combo_box,
if (combo_box->priv->cell_view) if (combo_box->priv->cell_view)
{ {
combo_box->priv->button = gtk_toggle_button_new (); combo_box->priv->button = gtk_toggle_button_new ();
gtk_button_set_focus_on_click (GTK_BUTTON (combo_box->priv->button),
combo_box->priv->focus_on_click);
g_signal_connect (combo_box->priv->button, "toggled", g_signal_connect (combo_box->priv->button, "toggled",
G_CALLBACK (gtk_combo_box_button_toggled), combo_box); G_CALLBACK (gtk_combo_box_button_toggled), combo_box);
@ -2415,6 +2418,9 @@ gtk_combo_box_menu_setup (GtkComboBox *combo_box,
else else
{ {
combo_box->priv->button = gtk_toggle_button_new (); combo_box->priv->button = gtk_toggle_button_new ();
gtk_button_set_focus_on_click (GTK_BUTTON (combo_box->priv->button),
combo_box->priv->focus_on_click);
g_signal_connect (combo_box->priv->button, "toggled", g_signal_connect (combo_box->priv->button, "toggled",
G_CALLBACK (gtk_combo_box_button_toggled), combo_box); G_CALLBACK (gtk_combo_box_button_toggled), combo_box);
g_signal_connect_after (combo_box, "key_press_event", g_signal_connect_after (combo_box, "key_press_event",
@ -5148,18 +5154,22 @@ gtk_combo_box_set_row_separator_func (GtkComboBox *combo_box,
* Since: 2.6 * Since: 2.6
**/ **/
void void
gtk_combo_box_set_focus_on_click (GtkComboBox *combo, gtk_combo_box_set_focus_on_click (GtkComboBox *combo_box,
gboolean focus_on_click) gboolean focus_on_click)
{ {
g_return_if_fail (GTK_IS_COMBO_BOX (combo)); g_return_if_fail (GTK_IS_COMBO_BOX (combo_box));
focus_on_click = focus_on_click != FALSE; focus_on_click = focus_on_click != FALSE;
if (combo->priv->focus_on_click != focus_on_click) if (combo_box->priv->focus_on_click != focus_on_click)
{ {
combo->priv->focus_on_click = focus_on_click; combo_box->priv->focus_on_click = focus_on_click;
g_object_notify (G_OBJECT (combo), "focus-on-click"); if (combo_box->priv->button)
gtk_button_set_focus_on_click (GTK_BUTTON (combo_box->priv->button),
focus_on_click);
g_object_notify (G_OBJECT (combo_box), "focus-on-click");
} }
} }
@ -5176,11 +5186,11 @@ gtk_combo_box_set_focus_on_click (GtkComboBox *combo,
* Since: 2.6 * Since: 2.6
**/ **/
gboolean gboolean
gtk_combo_box_get_focus_on_click (GtkComboBox *combo) gtk_combo_box_get_focus_on_click (GtkComboBox *combo_box)
{ {
g_return_val_if_fail (GTK_IS_COMBO_BOX (combo), FALSE); g_return_val_if_fail (GTK_IS_COMBO_BOX (combo_box), FALSE);
return combo->priv->focus_on_click; return combo_box->priv->focus_on_click;
} }