]> Pileus Git - ~andy/gtk/commitdiff
Fix problems with the initial focus in GtkCalendar. (#397783, Vincent
authorMatthias Clasen <mclasen@redhat.com>
Fri, 19 Jan 2007 03:52:03 +0000 (03:52 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 19 Jan 2007 03:52:03 +0000 (03:52 +0000)
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

ChangeLog
gtk/gtkcalendar.c

index 42da59ec24eb10ae3fb78fc657a4b7f7e7ed4b47..f0e6fe7f534c3693e6fa1700956d2d11051eeacf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-01-18  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkcalendar.c: Fix problems with the initial
+       focus in GtkCalendar.  (#397783, Vincent Untz)
+
 2007-01-19  Robert Ă–gren  <gtk@roboros.com>
 
        Fix for bug #143460 - missed tablet clicks on Windows
index 91014f081c18068765eb00a69777bda591e5019b..ede76c9254284c8e343779290fda7993a0c61595 100644 (file)
@@ -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);