--- gtk+-2.8.6/gtk/gtkrange.c.orig 2005-12-07 21:13:33 +0100 +++ gtk+-2.8.6/gtk/gtkrange.c 2005-12-07 21:21:12 +0100 @@ -186,6 +186,7 @@ static GtkWidgetClass *parent_class = NULL; static guint signals[LAST_SIGNAL]; +static GdkAtom recognize_protocols_atom, atom_atom; GType gtk_range_get_type (void) @@ -226,6 +227,9 @@ object_class = (GtkObjectClass*) class; widget_class = (GtkWidgetClass*) class; + recognize_protocols_atom = gdk_atom_intern ("RECOGNIZE_PROTOCOLS", FALSE); + atom_atom = gdk_atom_intern ("ATOM", FALSE); + parent_class = g_type_class_peek_parent (class); gobject_class->set_property = gtk_range_set_property; @@ -860,6 +864,12 @@ &attributes, attributes_mask); gdk_window_set_user_data (range->event_window, range); + gdk_property_change (range->event_window, + recognize_protocols_atom, + atom_atom, + 32, GDK_PROP_MODE_REPLACE, + NULL, 0); + widget->style = gtk_style_attach (widget->style, widget->window); } @@ -1229,7 +1239,7 @@ /* ignore presses when we're already doing something else. */ if (range->layout->grab_location != MOUSE_OUTSIDE) - return FALSE; + return TRUE; range->layout->mouse_x = event->x; range->layout->mouse_y = event->y; @@ -1429,7 +1439,7 @@ return TRUE; } - return FALSE; + return TRUE; } /** --- gtk+-2.8.6/gtk/gtkentry.c.orig 2005-09-02 21:51:06 +0200 +++ gtk+-2.8.6/gtk/gtkentry.c 2005-12-07 21:21:12 +0100 @@ -597,6 +597,15 @@ 0.0, GTK_PARAM_READWRITE)); + gtk_widget_class_install_style_property (widget_class, + g_param_spec_int ("min_width", + _("Minimum width"), + _("Minimum width of the entry field"), + 0, + G_MAXINT, + MIN_ENTRY_WIDTH, + G_PARAM_READABLE)); + signals[POPULATE_POPUP] = g_signal_new ("populate_popup", G_OBJECT_CLASS_TYPE (gobject_class), @@ -1227,7 +1236,7 @@ { GtkEntry *entry = GTK_ENTRY (widget); PangoFontMetrics *metrics; - gint xborder, yborder; + gint xborder, yborder, min_width; PangoContext *context; gtk_widget_ensure_style (widget); @@ -1243,9 +1252,11 @@ xborder += INNER_BORDER; yborder += INNER_BORDER; - + + gtk_widget_style_get (widget, "min_width", &min_width, NULL); + if (entry->width_chars < 0) - requisition->width = MIN_ENTRY_WIDTH + xborder * 2; + requisition->width = min_width + xborder * 2; else { gint char_width = pango_font_metrics_get_approximate_char_width (metrics); --- gtk+-2.8.6/gtk/gtkarrow.c.orig 2005-06-21 17:38:39 +0200 +++ gtk+-2.8.6/gtk/gtkarrow.c 2005-12-07 21:21:12 +0100 @@ -31,7 +31,7 @@ #include "gtkintl.h" #include "gtkalias.h" -#define MIN_ARROW_SIZE 15 +#define MIN_ARROW_SIZE 7 enum { PROP_0, @@ -55,6 +55,8 @@ guint prop_id, GValue *value, GParamSpec *pspec); +static void gtk_arrow_size_request (GtkWidget *arrow, + GtkRequisition *requisition); GType gtk_arrow_get_type (void) @@ -113,6 +115,7 @@ GTK_PARAM_READWRITE)); widget_class->expose_event = gtk_arrow_expose; + widget_class->size_request = gtk_arrow_size_request; } static void @@ -168,13 +171,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; } --- gtk+-2.8.6/gtk/gtkcalendar.c.orig 2005-12-07 21:36:14 +0100 +++ gtk+-2.8.6/gtk/gtkcalendar.c 2005-12-07 21:49:21 +0100 @@ -692,6 +692,35 @@ ****************************************/ static void +calendar_select_day (GtkCalendar *calendar, guint day) +{ + g_return_if_fail (GTK_IS_CALENDAR (calendar)); + g_return_if_fail (day <= 31); + + /* Deselect the old day */ + if (calendar->selected_day > 0) + { + gint selected_day; + + selected_day = calendar->selected_day; + calendar->selected_day = 0; + if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar))) + calendar_invalidate_day_num (calendar, selected_day); + } + + calendar->selected_day = day; + + /* Select the new day */ + if (day != 0) + { + if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar))) + calendar_invalidate_day_num (calendar, day); + } + + g_object_notify (G_OBJECT (calendar), "day"); +} + +static void calendar_set_month_next (GtkCalendar *calendar) { gint month_len; @@ -723,10 +752,10 @@ if (month_len < calendar->selected_day) { calendar->selected_day = 0; - gtk_calendar_select_day (calendar, month_len); + calendar_select_day (calendar, month_len); } else - gtk_calendar_select_day (calendar, calendar->selected_day); + calendar_select_day (calendar, calendar->selected_day); gtk_widget_queue_draw (GTK_WIDGET (calendar)); } @@ -752,10 +781,10 @@ if (month_len < calendar->selected_day) { calendar->selected_day = 0; - gtk_calendar_select_day (calendar, month_len); + calendar_select_day (calendar, month_len); } else - gtk_calendar_select_day (calendar, calendar->selected_day); + calendar_select_day (calendar, calendar->selected_day); gtk_widget_queue_draw (GTK_WIDGET (calendar)); } @@ -784,10 +813,10 @@ if (month_len < calendar->selected_day) { calendar->selected_day = 0; - gtk_calendar_select_day (calendar, month_len); + calendar_select_day (calendar, month_len); } else - gtk_calendar_select_day (calendar, calendar->selected_day); + calendar_select_day (calendar, calendar->selected_day); gtk_widget_queue_draw (GTK_WIDGET (calendar)); } @@ -1088,13 +1117,13 @@ if (month_len < calendar->selected_day) { calendar->selected_day = 0; - gtk_calendar_select_day (calendar, month_len); + calendar_select_day (calendar, month_len); } else { if (calendar->selected_day < 0) calendar->selected_day = calendar->selected_day + 1 + month_length[leap (calendar->year)][calendar->month + 1]; - gtk_calendar_select_day (calendar, calendar->selected_day); + calendar_select_day (calendar, calendar->selected_day); } gtk_widget_queue_draw (GTK_WIDGET (calendar)); @@ -3285,27 +3314,7 @@ g_return_if_fail (GTK_IS_CALENDAR (calendar)); g_return_if_fail (day <= 31); - /* Deselect the old day */ - if (calendar->selected_day > 0) - { - gint selected_day; - - selected_day = calendar->selected_day; - calendar->selected_day = 0; - if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar))) - calendar_invalidate_day_num (calendar, selected_day); - } - - calendar->selected_day = day; - - /* Select the new day */ - if (day != 0) - { - if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar))) - calendar_invalidate_day_num (calendar, day); - } - - g_object_notify (G_OBJECT (calendar), "day"); + calendar_select_day (calendar, day); g_signal_emit (calendar, gtk_calendar_signals[DAY_SELECTED_SIGNAL],