summaryrefslogtreecommitdiff
path: root/gtk/gtkcalendar.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2007-01-19 03:52:03 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2007-01-19 03:52:03 +0000
commit170fef7ee2711ba4cee183acff4dfa812cf18145 (patch)
tree86f2620156f8cfb173a3ffc503c0369de9872820 /gtk/gtkcalendar.c
parentf7687a8b9c32c6b47fc30d753a5eb440ab01a828 (diff)
downloadgtk+-170fef7ee2711ba4cee183acff4dfa812cf18145.tar.gz
Fix problems with the initial focus in GtkCalendar. (#397783, Vincent
2007-01-18 Matthias Clasen <mclasen@redhat.com> * gtk/gtkcalendar.c: Fix problems with the initial focus in GtkCalendar. (#397783, Vincent Untz) svn path=/trunk/; revision=17190
Diffstat (limited to 'gtk/gtkcalendar.c')
-rw-r--r--gtk/gtkcalendar.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/gtk/gtkcalendar.c b/gtk/gtkcalendar.c
index 91014f081c..ede76c9254 100644
--- a/gtk/gtkcalendar.c
+++ b/gtk/gtkcalendar.c
@@ -2719,7 +2719,7 @@ move_focus (GtkCalendar *calendar,
gint direction)
{
GtkTextDirection text_dir = gtk_widget_get_direction (GTK_WIDGET (calendar));
-
+
if ((text_dir == GTK_TEXT_DIR_LTR && direction == -1) ||
(text_dir == GTK_TEXT_DIR_RTL && direction == 1))
{
@@ -2730,6 +2730,11 @@ move_focus (GtkCalendar *calendar,
calendar->focus_col = 6;
calendar->focus_row--;
}
+
+ if (calendar->focus_col < 0)
+ calendar->focus_col = 6;
+ if (calendar->focus_row < 0)
+ calendar->focus_row = 5;
}
else
{
@@ -2740,6 +2745,11 @@ move_focus (GtkCalendar *calendar,
calendar->focus_col = 0;
calendar->focus_row++;
}
+
+ if (calendar->focus_col < 0)
+ calendar->focus_col = 0;
+ if (calendar->focus_row < 0)
+ calendar->focus_row = 0;
}
}
@@ -2759,6 +2769,7 @@ gtk_calendar_key_press (GtkWidget *widget,
old_focus_row = calendar->focus_row;
old_focus_col = calendar->focus_col;
+ g_print ("focus %d %d\n", old_focus_row, old_focus_col));
switch (event->keyval)
{
case GDK_KP_Left:
@@ -2796,6 +2807,10 @@ gtk_calendar_key_press (GtkWidget *widget,
{
if (calendar->focus_row > 0)
calendar->focus_row--;
+ if (calendar->focus_row < 0)
+ calendar->focus_row = 5;
+ if (calendar->focus_col < 0)
+ calendar->focus_col = 6;
calendar_invalidate_day (calendar, old_focus_row, old_focus_col);
calendar_invalidate_day (calendar, calendar->focus_row,
calendar->focus_col);
@@ -2810,6 +2825,8 @@ gtk_calendar_key_press (GtkWidget *widget,
{
if (calendar->focus_row < 5)
calendar->focus_row++;
+ if (calendar->focus_col < 0)
+ calendar->focus_col = 0;
calendar_invalidate_day (calendar, old_focus_row, old_focus_col);
calendar_invalidate_day (calendar, calendar->focus_row,
calendar->focus_col);