From b2f192faabe412adce79534e22efe9fb69ee40e2 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Fri, 21 Jul 2006 10:10:31 +0000 Subject: Rename /openembedded/ -> /meta/ git-svn-id: https://svn.o-hand.com/repos/poky/trunk@530 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- .../gtk+/gtk+-2.6.4-1.osso7/gtkradiobutton.c.diff | 244 +++++++++++++++++++++ 1 file changed, 244 insertions(+) create mode 100644 meta/packages/gtk+/gtk+-2.6.4-1.osso7/gtkradiobutton.c.diff (limited to 'meta/packages/gtk+/gtk+-2.6.4-1.osso7/gtkradiobutton.c.diff') diff --git a/meta/packages/gtk+/gtk+-2.6.4-1.osso7/gtkradiobutton.c.diff b/meta/packages/gtk+/gtk+-2.6.4-1.osso7/gtkradiobutton.c.diff new file mode 100644 index 0000000000..f4669c6d9f --- /dev/null +++ b/meta/packages/gtk+/gtk+-2.6.4-1.osso7/gtkradiobutton.c.diff @@ -0,0 +1,244 @@ +--- gtk+-2.6.4/gtk/gtkradiobutton.c 2004-08-09 19:59:52.000000000 +0300 ++++ gtk+-2.6.4/gtk/gtkradiobutton.c 2005-04-06 16:19:37.126894216 +0300 +@@ -31,6 +31,7 @@ + #include "gtkradiobutton.h" + #include "gtkintl.h" + ++#define TOGGLE_ON_CLICK "toggle-on-click" + + enum { + PROP_0, +@@ -506,6 +507,9 @@ + { + tmp_list = tmp_list->next; + ++ if( !tmp_list ) ++ return FALSE; ++ + while (tmp_list) + { + GtkWidget *child = tmp_list->data; +@@ -543,7 +547,10 @@ + if (new_focus) + { + gtk_widget_grab_focus (new_focus); +- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (new_focus), TRUE); ++ ++ /* arrow keys select the button ? CHECK THIS!! ++ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (new_focus), TRUE); ++ */ + } + + return TRUE; +@@ -579,7 +586,7 @@ + GtkToggleButton *toggle_button; + GtkRadioButton *radio_button; + GtkToggleButton *tmp_button; +- GtkStateType new_state; ++ GtkStateType new_state = GTK_WIDGET_STATE( button ); + GSList *tmp_list; + gint toggled; + gboolean depressed; +@@ -591,52 +598,54 @@ + g_object_ref (GTK_WIDGET (button)); + + if (toggle_button->active) +- { +- tmp_button = NULL; +- tmp_list = radio_button->group; +- +- while (tmp_list) +- { +- tmp_button = tmp_list->data; +- tmp_list = tmp_list->next; ++ { ++ tmp_button = NULL; ++ tmp_list = radio_button->group; + +- if (tmp_button->active && tmp_button != toggle_button) +- break; ++ while (tmp_list) ++ { ++ tmp_button = tmp_list->data; ++ tmp_list = tmp_list->next; ++ ++ if (tmp_button->active && tmp_button != toggle_button) ++ break; + +- tmp_button = NULL; +- } ++ tmp_button = NULL; ++ } + +- if (!tmp_button) +- { +- new_state = (button->in_button ? GTK_STATE_PRELIGHT : GTK_STATE_ACTIVE); ++ if (!tmp_button) ++ { ++ new_state = (button->in_button ? ++ GTK_STATE_PRELIGHT : GTK_STATE_ACTIVE); ++ } ++ else ++ { ++ toggled = TRUE; ++ toggle_button->active = !toggle_button->active; ++ new_state = (button->in_button ? GTK_STATE_PRELIGHT : GTK_STATE_NORMAL); ++ } + } + else + { + toggled = TRUE; + toggle_button->active = !toggle_button->active; +- new_state = (button->in_button ? GTK_STATE_PRELIGHT : GTK_STATE_NORMAL); +- } +- } +- else +- { +- toggled = TRUE; +- toggle_button->active = !toggle_button->active; + +- tmp_list = radio_button->group; +- while (tmp_list) +- { +- tmp_button = tmp_list->data; +- tmp_list = tmp_list->next; +- +- if (tmp_button->active && (tmp_button != toggle_button)) ++ tmp_list = radio_button->group; ++ while (tmp_list) + { +- gtk_button_clicked (GTK_BUTTON (tmp_button)); +- break; ++ tmp_button = tmp_list->data; ++ tmp_list = tmp_list->next; ++ ++ if (tmp_button->active && (tmp_button != toggle_button)) ++ { ++ gtk_button_clicked (GTK_BUTTON (tmp_button)); ++ break; ++ } + } ++ ++ new_state = (button->in_button ? GTK_STATE_PRELIGHT : GTK_STATE_ACTIVE); + } + +- new_state = (button->in_button ? GTK_STATE_PRELIGHT : GTK_STATE_ACTIVE); +- } + + if (toggle_button->inconsistent) + depressed = FALSE; +@@ -663,7 +672,6 @@ + GdkRectangle *area) + { + GtkWidget *widget; +- GtkWidget *child; + GtkButton *button; + GtkToggleButton *toggle_button; + GtkStateType state_type; +@@ -686,54 +694,80 @@ + "focus-padding", &focus_pad, + NULL); + +- _gtk_check_button_get_props (check_button, &indicator_size, &indicator_spacing); +- +- x = widget->allocation.x + indicator_spacing + GTK_CONTAINER (widget)->border_width; +- y = widget->allocation.y + (widget->allocation.height - indicator_size) / 2; +- +- child = GTK_BIN (check_button)->child; +- if (!interior_focus || !(child && GTK_WIDGET_VISIBLE (child))) +- x += focus_width + focus_pad; ++ _gtk_check_button_get_props (check_button, ++ &indicator_size, &indicator_spacing); + ++ x = widget->allocation.x + indicator_spacing + ++ GTK_CONTAINER (widget)->border_width; ++ y = widget->allocation.y + (widget->allocation.height - ++ indicator_size + focus_width + ++ focus_pad) / 2; ++ ++ /* Hildon - always add space for the padding ++ */ ++ x += focus_width + focus_pad; ++ + if (toggle_button->inconsistent) +- shadow_type = GTK_SHADOW_ETCHED_IN; ++ shadow_type = GTK_SHADOW_ETCHED_IN; ++ + else if (toggle_button->active) +- shadow_type = GTK_SHADOW_IN; ++ shadow_type = GTK_SHADOW_IN; ++ + else +- shadow_type = GTK_SHADOW_OUT; ++ shadow_type = GTK_SHADOW_OUT; ++ ++ if (button->activate_timeout || ++ (button->button_down && button->in_button) ) ++ state_type = GTK_STATE_ACTIVE; + +- if (button->activate_timeout || (button->button_down && button->in_button)) +- state_type = GTK_STATE_ACTIVE; + else if (button->in_button) +- state_type = GTK_STATE_PRELIGHT; ++ state_type = GTK_STATE_PRELIGHT; ++ + else if (!GTK_WIDGET_IS_SENSITIVE (widget)) + state_type = GTK_STATE_INSENSITIVE; ++ + else +- state_type = GTK_STATE_NORMAL; ++ state_type = GTK_STATE_NORMAL; + ++ /* Hildon change. We want to draw active image always when we have ++ * focus. */ ++ if (GTK_WIDGET_HAS_FOCUS (widget)) ++ state_type = GTK_STATE_ACTIVE; ++ + if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) +- x = widget->allocation.x + widget->allocation.width - (indicator_size + x - widget->allocation.x); +- ++ { ++ x = widget->allocation.x + widget->allocation.width - ++ (indicator_size + x - widget->allocation.x); ++ } ++ /* Well, commenting this out fixes bug #280, ++ without apparent side effects. ++ * + if (GTK_WIDGET_STATE (toggle_button) == GTK_STATE_PRELIGHT) + { + GdkRectangle restrict_area; + GdkRectangle new_area; + +- restrict_area.x = widget->allocation.x + GTK_CONTAINER (widget)->border_width; +- restrict_area.y = widget->allocation.y + GTK_CONTAINER (widget)->border_width; +- restrict_area.width = widget->allocation.width - (2 * GTK_CONTAINER (widget)->border_width); +- restrict_area.height = widget->allocation.height - (2 * GTK_CONTAINER (widget)->border_width); ++ restrict_area.x = widget->allocation.x + ++ GTK_CONTAINER (widget)->border_width; ++ restrict_area.y = widget->allocation.y + ++ GTK_CONTAINER (widget)->border_width; ++ restrict_area.width = widget->allocation.width - ++ (2 * GTK_CONTAINER (widget)->border_width); ++ restrict_area.height = widget->allocation.height - ++ (2 * GTK_CONTAINER (widget)->border_width); + + if (gdk_rectangle_intersect (area, &restrict_area, &new_area)) + { +- gtk_paint_flat_box (widget->style, widget->window, GTK_STATE_PRELIGHT, +- GTK_SHADOW_ETCHED_OUT, +- area, widget, "checkbutton", +- new_area.x, new_area.y, +- new_area.width, new_area.height); ++ gtk_paint_flat_box (widget->style, widget->window, ++ GTK_STATE_PRELIGHT, ++ GTK_SHADOW_ETCHED_OUT, ++ area, widget, "checkbutton", ++ new_area.x, new_area.y, ++ new_area.width, new_area.height); + } + } + ++ */ + gtk_paint_option (widget->style, widget->window, + state_type, shadow_type, + area, widget, "radiobutton", -- cgit v1.2.3-54-g00ecf