| Index: gtk+-2.10.6/gtk/gtkspinbutton.c |
| =================================================================== |
| --- gtk+-2.10.6.orig/gtk/gtkspinbutton.c |
| +++ gtk+-2.10.6/gtk/gtkspinbutton.c |
| @@ -682,7 +682,7 @@ gtk_spin_button_size_allocate (GtkWidget |
| |
| spin = GTK_SPIN_BUTTON (widget); |
| arrow_size = spin_button_get_arrow_size (spin); |
| - panel_width = arrow_size + 2 * widget->style->xthickness; |
| + panel_width = (2 * arrow_size) + 4 * widget->style->xthickness; |
| |
| widget->allocation = *allocation; |
| |
| @@ -815,19 +815,16 @@ gtk_spin_button_draw_arrow (GtkSpinButto |
| { |
| width = spin_button_get_arrow_size (spin_button) + 2 * widget->style->xthickness; |
| |
| + y = widget->style->ythickness; |
| + height = widget->requisition.height - (2 * y); |
| + |
| if (arrow_type == GTK_ARROW_UP) |
| { |
| x = 0; |
| - y = 0; |
| - |
| - height = widget->requisition.height / 2; |
| } |
| else |
| { |
| - x = 0; |
| - y = widget->requisition.height / 2; |
| - |
| - height = (widget->requisition.height + 1) / 2; |
| + x = width; |
| } |
| |
| if (spin_button_at_limit (spin_button, arrow_type)) |
| @@ -857,32 +854,17 @@ gtk_spin_button_draw_arrow (GtkSpinButto |
| shadow_type = GTK_SHADOW_OUT; |
| } |
| } |
| - |
| + |
| gtk_paint_box (widget->style, spin_button->panel, |
| state_type, shadow_type, |
| NULL, widget, |
| - (arrow_type == GTK_ARROW_UP)? "spinbutton_up" : "spinbutton_down", |
| + NULL, |
| x, y, width, height); |
| |
| height = widget->requisition.height; |
| |
| - if (arrow_type == GTK_ARROW_DOWN) |
| - { |
| - y = height / 2; |
| - height = height - y - 2; |
| - } |
| - else |
| - { |
| - y = 2; |
| - height = height / 2 - 2; |
| - } |
| - |
| width -= 3; |
| - |
| - if (widget && gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL) |
| - x = 2; |
| - else |
| - x = 1; |
| + height -= 3; |
| |
| w = width / 2; |
| w -= w % 2 - 1; /* force odd */ |
| @@ -1062,7 +1044,7 @@ gtk_spin_button_button_press (GtkWidget |
| if (GTK_ENTRY (widget)->editable) |
| gtk_spin_button_update (spin); |
| |
| - if (event->y <= widget->requisition.height / 2) |
| + if (event->x <= (spin_button_get_arrow_size (spin) + widget->style->xthickness)) |
| { |
| if (event->button == 1) |
| start_spinning (spin, GTK_ARROW_UP, spin->adjustment->step_increment); |
| @@ -1097,44 +1079,11 @@ gtk_spin_button_button_release (GtkWidge |
| |
| arrow_size = spin_button_get_arrow_size (spin); |
| |
| - if (event->button == spin->button) |
| - { |
| - int click_child = spin->click_child; |
| + gtk_spin_button_stop_spinning (spin); |
| |
| - gtk_spin_button_stop_spinning (spin); |
| - |
| - if (event->button == 3) |
| - { |
| - if (event->y >= 0 && event->x >= 0 && |
| - event->y <= widget->requisition.height && |
| - event->x <= arrow_size + 2 * widget->style->xthickness) |
| - { |
| - if (click_child == GTK_ARROW_UP && |
| - event->y <= widget->requisition.height / 2) |
| - { |
| - gdouble diff; |
| - |
| - diff = spin->adjustment->upper - spin->adjustment->value; |
| - if (diff > EPSILON) |
| - gtk_spin_button_real_spin (spin, diff); |
| - } |
| - else if (click_child == GTK_ARROW_DOWN && |
| - event->y > widget->requisition.height / 2) |
| - { |
| - gdouble diff; |
| - |
| - diff = spin->adjustment->value - spin->adjustment->lower; |
| - if (diff > EPSILON) |
| - gtk_spin_button_real_spin (spin, -diff); |
| - } |
| - } |
| - } |
| - spin_button_redraw (spin); |
| + spin_button_redraw (spin); |
| |
| - return TRUE; |
| - } |
| - else |
| - return GTK_WIDGET_CLASS (gtk_spin_button_parent_class)->button_release_event (widget, event); |
| + return TRUE; |
| } |
| |
| static gint |