diff options
author | Matthias Clasen <mclasen@redhat.com> | 2007-01-19 03:52:03 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2007-01-19 03:52:03 +0000 |
commit | 170fef7ee2711ba4cee183acff4dfa812cf18145 (patch) | |
tree | 86f2620156f8cfb173a3ffc503c0369de9872820 /gtk/gtkcalendar.c | |
parent | f7687a8b9c32c6b47fc30d753a5eb440ab01a828 (diff) | |
download | gtk+-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.c | 19 |
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); |