--- gtk+-2.4.1/gtk/gtkarrow.c 2004-03-13 09:51:13.000000000 +1100 +++ gtk+-2.4.1/gtk/gtkarrow.c 2004-05-26 14:52:17.000000000 +1000 @@ -29,7 +29,7 @@ #include "gtkarrow.h" #include "gtkintl.h" -#define MIN_ARROW_SIZE 15 +#define MIN_ARROW_SIZE 7 enum { PROP_0, @@ -53,6 +53,8 @@ guint prop_id, GValue *value, GParamSpec *pspec); +static void gtk_arrow_size_request (GtkWidget *arrow, + GtkRequisition *requisition); GType gtk_arrow_get_type (void) @@ -111,6 +113,7 @@ G_PARAM_READABLE | G_PARAM_WRITABLE)); widget_class->expose_event = gtk_arrow_expose; + widget_class->size_request = gtk_arrow_size_request; } static void @@ -166,13 +169,18 @@ } static void +gtk_arrow_size_request (GtkWidget *arrow, + GtkRequisition *requisition) +{ + requisition->width = MIN_ARROW_SIZE + GTK_MISC (arrow)->xpad * 2; + requisition->height = MIN_ARROW_SIZE + GTK_MISC (arrow)->ypad * 2; +} + +static void gtk_arrow_init (GtkArrow *arrow) { GTK_WIDGET_SET_FLAGS (arrow, GTK_NO_WINDOW); - GTK_WIDGET (arrow)->requisition.width = MIN_ARROW_SIZE + GTK_MISC (arrow)->xpad * 2; - GTK_WIDGET (arrow)->requisition.height = MIN_ARROW_SIZE + GTK_MISC (arrow)->ypad * 2; - arrow->arrow_type = GTK_ARROW_RIGHT; arrow->shadow_type = GTK_SHADOW_OUT; }