237 lines
7.2 KiB
Diff
237 lines
7.2 KiB
Diff
--- 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;
|
|
}
|
|
--- gtk+-2.4.1/gtk/gtkcalendar.c 2004-03-06 14:37:26.000000000 +1100
|
|
+++ gtk+-2.4.1/gtk/gtkcalendar.c 2004-05-26 14:58:57.000000000 +1000
|
|
@@ -340,6 +340,9 @@
|
|
static void gtk_calendar_select_and_focus_day (GtkCalendar *calendar,
|
|
guint day);
|
|
|
|
+static void gtk_calendar_do_select_day (GtkCalendar *calendar,
|
|
+ guint day);
|
|
+
|
|
static void gtk_calendar_paint_arrow (GtkWidget *widget,
|
|
guint arrow);
|
|
static void gtk_calendar_paint_day_num (GtkWidget *widget,
|
|
@@ -861,13 +864,13 @@
|
|
if (month_len < calendar->selected_day)
|
|
{
|
|
calendar->selected_day = 0;
|
|
- gtk_calendar_select_day (calendar, month_len);
|
|
+ gtk_calendar_do_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);
|
|
+ gtk_calendar_do_select_day (calendar, calendar->selected_day);
|
|
}
|
|
|
|
gtk_widget_queue_draw (GTK_WIDGET (calendar));
|
|
@@ -908,10 +911,10 @@
|
|
if (month_len < calendar->selected_day)
|
|
{
|
|
calendar->selected_day = 0;
|
|
- gtk_calendar_select_day (calendar, month_len);
|
|
+ gtk_calendar_do_select_day (calendar, month_len);
|
|
}
|
|
else
|
|
- gtk_calendar_select_day (calendar, calendar->selected_day);
|
|
+ gtk_calendar_do_select_day (calendar, calendar->selected_day);
|
|
|
|
gtk_widget_queue_draw (GTK_WIDGET (calendar));
|
|
gtk_calendar_thaw (calendar);
|
|
@@ -939,10 +942,10 @@
|
|
if (month_len < calendar->selected_day)
|
|
{
|
|
calendar->selected_day = 0;
|
|
- gtk_calendar_select_day (calendar, month_len);
|
|
+ gtk_calendar_do_select_day (calendar, month_len);
|
|
}
|
|
else
|
|
- gtk_calendar_select_day (calendar, calendar->selected_day);
|
|
+ gtk_calendar_do_select_day (calendar, calendar->selected_day);
|
|
|
|
gtk_widget_queue_draw (GTK_WIDGET (calendar));
|
|
gtk_calendar_thaw (calendar);
|
|
@@ -974,10 +977,10 @@
|
|
if (month_len < calendar->selected_day)
|
|
{
|
|
calendar->selected_day = 0;
|
|
- gtk_calendar_select_day (calendar, month_len);
|
|
+ gtk_calendar_do_select_day (calendar, month_len);
|
|
}
|
|
else
|
|
- gtk_calendar_select_day (calendar, calendar->selected_day);
|
|
+ gtk_calendar_do_select_day (calendar, calendar->selected_day);
|
|
|
|
gtk_widget_queue_draw (GTK_WIDGET (calendar));
|
|
gtk_calendar_thaw (calendar);
|
|
@@ -2480,9 +2483,9 @@
|
|
return TRUE;
|
|
}
|
|
|
|
-void
|
|
-gtk_calendar_select_day (GtkCalendar *calendar,
|
|
- guint day)
|
|
+static void
|
|
+gtk_calendar_do_select_day (GtkCalendar *calendar,
|
|
+ guint day)
|
|
{
|
|
g_return_if_fail (GTK_IS_CALENDAR (calendar));
|
|
g_return_if_fail (day <= 31);
|
|
@@ -2499,6 +2502,13 @@
|
|
if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar)))
|
|
gtk_calendar_paint_day_num (GTK_WIDGET (calendar), selected_day);
|
|
}
|
|
+}
|
|
+
|
|
+void
|
|
+gtk_calendar_select_day (GtkCalendar *calendar,
|
|
+ guint day)
|
|
+{
|
|
+ gtk_calendar_do_select_day (calendar, day);
|
|
|
|
calendar->selected_day = day;
|
|
|
|
--- gtk+-2.4.1/gtk/gtkentry.c 2004-04-22 08:08:08.000000000 +1000
|
|
+++ gtk+-2.4.1/gtk/gtkentry.c 2004-05-26 14:52:17.000000000 +1000
|
|
@@ -557,6 +557,15 @@
|
|
0.0,
|
|
G_PARAM_READABLE | G_PARAM_WRITABLE));
|
|
|
|
+ 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),
|
|
@@ -1124,7 +1133,7 @@
|
|
{
|
|
GtkEntry *entry = GTK_ENTRY (widget);
|
|
PangoFontMetrics *metrics;
|
|
- gint xborder, yborder;
|
|
+ gint xborder, yborder, min_width;
|
|
PangoContext *context;
|
|
|
|
gtk_widget_ensure_style (widget);
|
|
@@ -1140,9 +1149,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.4.1/gtk/gtkrange.c 2004-03-06 14:38:08.000000000 +1100
|
|
+++ gtk+-2.4.1/gtk/gtkrange.c 2004-05-26 14:52:17.000000000 +1000
|
|
@@ -180,6 +180,7 @@
|
|
static GtkWidgetClass *parent_class = NULL;
|
|
static guint signals[LAST_SIGNAL];
|
|
|
|
+static GdkAtom recognize_protocols_atom, atom_atom;
|
|
|
|
GType
|
|
gtk_range_get_type (void)
|
|
@@ -220,6 +221,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;
|
|
@@ -815,6 +819,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);
|
|
}
|
|
|
|
@@ -1186,7 +1196,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;
|
|
@@ -1364,7 +1374,7 @@
|
|
return TRUE;
|
|
}
|
|
|
|
- return FALSE;
|
|
+ return TRUE;
|
|
}
|
|
|
|
/**
|