- arrow = GTK_ARROW (widget);
- misc = GTK_MISC (widget);
-
- width = widget->allocation.width - misc->xpad * 2;
- height = widget->allocation.height - misc->ypad * 2;
- extent = MIN (width, height);
-
- x = ((widget->allocation.x + misc->xpad) * (1.0 - misc->xalign) +
- (widget->allocation.x + widget->allocation.width - extent - misc->xpad) * misc->xalign);
- y = ((widget->allocation.y + misc->ypad) * (1.0 - misc->yalign) +
- (widget->allocation.y + widget->allocation.height - extent - misc->ypad) * misc->yalign);
-
- shadow_type = arrow->shadow_type;
-
- if (widget->state == GTK_STATE_ACTIVE)
- {
- if (shadow_type == GTK_SHADOW_IN)
- shadow_type = GTK_SHADOW_OUT;
- else if (shadow_type == GTK_SHADOW_OUT)
- shadow_type = GTK_SHADOW_IN;
- else if (shadow_type == GTK_SHADOW_ETCHED_IN)
- shadow_type = GTK_SHADOW_ETCHED_OUT;
- else if (shadow_type == GTK_SHADOW_ETCHED_OUT)
- shadow_type = GTK_SHADOW_ETCHED_IN;
- }
-
- gtk_paint_arrow (widget->style, widget->window,
- widget->state, shadow_type,
- &event->area, widget, "arrow",
- arrow->arrow_type, TRUE,
- x, y, extent, extent);
+ xalign = 1.0 - xalign;
+ if (priv->arrow_type == GTK_ARROW_LEFT)
+ effective_arrow_type = GTK_ARROW_RIGHT;
+ else if (priv->arrow_type == GTK_ARROW_RIGHT)
+ effective_arrow_type = GTK_ARROW_LEFT;