Complete the RTL flipping support for GtkCalendar, make it possible to

* gtk/gtkcalendar.c: Complete the RTL flipping support for GtkCalendar, make it
	possible to flip the headings using the "magic translated string" technique.
	Translators, note the comment in gtk_calendar_init() explaining this.
This commit is contained in:
Matthias Clasen
2003-08-08 22:17:34 +00:00
parent 35b3fd8915
commit 40f0f447f7
6 changed files with 237 additions and 87 deletions

View File

@ -4,6 +4,10 @@
to let the mouse wheels select the month. Scrolling down to let the mouse wheels select the month. Scrolling down
moves forward in time. (#53134, Abigail Brady) moves forward in time. (#53134, Abigail Brady)
* gtk/gtkcalendar.c: Complete the RTL flipping support for GtkCalendar, make it
possible to flip the headings using the "magic translated string" technique.
Translators, note the comment in gtk_calendar_init() explaining this.
2003-08-08 Matthias Clasen <maclas@gmx.de> 2003-08-08 Matthias Clasen <maclas@gmx.de>
* gdk/gdkregion-generic.c (gdk_region_spans_intersect_foreach): Fix * gdk/gdkregion-generic.c (gdk_region_spans_intersect_foreach): Fix

View File

@ -4,6 +4,10 @@
to let the mouse wheels select the month. Scrolling down to let the mouse wheels select the month. Scrolling down
moves forward in time. (#53134, Abigail Brady) moves forward in time. (#53134, Abigail Brady)
* gtk/gtkcalendar.c: Complete the RTL flipping support for GtkCalendar, make it
possible to flip the headings using the "magic translated string" technique.
Translators, note the comment in gtk_calendar_init() explaining this.
2003-08-08 Matthias Clasen <maclas@gmx.de> 2003-08-08 Matthias Clasen <maclas@gmx.de>
* gdk/gdkregion-generic.c (gdk_region_spans_intersect_foreach): Fix * gdk/gdkregion-generic.c (gdk_region_spans_intersect_foreach): Fix

View File

@ -4,6 +4,10 @@
to let the mouse wheels select the month. Scrolling down to let the mouse wheels select the month. Scrolling down
moves forward in time. (#53134, Abigail Brady) moves forward in time. (#53134, Abigail Brady)
* gtk/gtkcalendar.c: Complete the RTL flipping support for GtkCalendar, make it
possible to flip the headings using the "magic translated string" technique.
Translators, note the comment in gtk_calendar_init() explaining this.
2003-08-08 Matthias Clasen <maclas@gmx.de> 2003-08-08 Matthias Clasen <maclas@gmx.de>
* gdk/gdkregion-generic.c (gdk_region_spans_intersect_foreach): Fix * gdk/gdkregion-generic.c (gdk_region_spans_intersect_foreach): Fix

View File

@ -4,6 +4,10 @@
to let the mouse wheels select the month. Scrolling down to let the mouse wheels select the month. Scrolling down
moves forward in time. (#53134, Abigail Brady) moves forward in time. (#53134, Abigail Brady)
* gtk/gtkcalendar.c: Complete the RTL flipping support for GtkCalendar, make it
possible to flip the headings using the "magic translated string" technique.
Translators, note the comment in gtk_calendar_init() explaining this.
2003-08-08 Matthias Clasen <maclas@gmx.de> 2003-08-08 Matthias Clasen <maclas@gmx.de>
* gdk/gdkregion-generic.c (gdk_region_spans_intersect_foreach): Fix * gdk/gdkregion-generic.c (gdk_region_spans_intersect_foreach): Fix

View File

@ -4,6 +4,10 @@
to let the mouse wheels select the month. Scrolling down to let the mouse wheels select the month. Scrolling down
moves forward in time. (#53134, Abigail Brady) moves forward in time. (#53134, Abigail Brady)
* gtk/gtkcalendar.c: Complete the RTL flipping support for GtkCalendar, make it
possible to flip the headings using the "magic translated string" technique.
Translators, note the comment in gtk_calendar_init() explaining this.
2003-08-08 Matthias Clasen <maclas@gmx.de> 2003-08-08 Matthias Clasen <maclas@gmx.de>
* gdk/gdkregion-generic.c (gdk_region_spans_intersect_foreach): Fix * gdk/gdkregion-generic.c (gdk_region_spans_intersect_foreach): Fix

View File

@ -43,6 +43,7 @@
#include "gtkintl.h" #include "gtkintl.h"
#include "gtkmain.h" #include "gtkmain.h"
#include "gtkmarshalers.h" #include "gtkmarshalers.h"
#include "gtkintl.h"
#include "gdk/gdkkeysyms.h" #include "gdk/gdkkeysyms.h"
/***************************************************************************/ /***************************************************************************/
@ -269,6 +270,8 @@ struct _GtkCalendarPrivateData
guint dirty_main : 1; guint dirty_main : 1;
guint dirty_week : 1; guint dirty_week : 1;
guint year_before : 1;
guint need_timer : 1; guint need_timer : 1;
guint32 timer; guint32 timer;
@ -580,6 +583,7 @@ gtk_calendar_init (GtkCalendar *calendar)
time_t tmp_time; time_t tmp_time;
GtkWidget *widget; GtkWidget *widget;
GtkCalendarPrivateData *private_data; GtkCalendarPrivateData *private_data;
gchar *year_before;
widget = GTK_WIDGET (calendar); widget = GTK_WIDGET (calendar);
GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_FOCUS); GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_FOCUS);
@ -646,6 +650,23 @@ gtk_calendar_init (GtkCalendar *calendar)
private_data->need_timer = 0; private_data->need_timer = 0;
private_data->timer = 0; private_data->timer = 0;
private_data->click_child = -1; private_data->click_child = -1;
private_data->year_before = 0;
/* Translate to calendar:YM if you want years to be displayed
* before months; otherwise translate to calendar:MY.
* Do *not* translate it to anything else, if it
* it isn't calendar:YM or calendar:MY it will not work.
*
* Note that this flipping is in top the text direction flipping,
* so if you have a default text direction of RTL and YM, then
* the year will appear on the right.
*/
year_before = _("calendar:MY");
if (strcmp (year_before, "calendar:YM") == 0)
private_data->year_before = 1;
else if (strcmp (year_before, "calendar:MY") != 0)
g_warning ("Whoever translated calendar:MY did so wrongly.\n");
} }
GtkWidget* GtkWidget*
@ -999,12 +1020,18 @@ gtk_calendar_realize_arrows (GtkWidget *widget)
GdkWindowAttr attributes; GdkWindowAttr attributes;
gint attributes_mask; gint attributes_mask;
gint i; gint i;
gboolean year_left;
g_return_if_fail (GTK_IS_CALENDAR (widget)); g_return_if_fail (GTK_IS_CALENDAR (widget));
calendar = GTK_CALENDAR (widget); calendar = GTK_CALENDAR (widget);
private_data = GTK_CALENDAR_PRIVATE_DATA (widget); private_data = GTK_CALENDAR_PRIVATE_DATA (widget);
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR)
year_left = private_data->year_before;
else
year_left = !private_data->year_before;
/* Arrow windows ------------------------------------- */ /* Arrow windows ------------------------------------- */
if (! (calendar->display_flags & GTK_CALENDAR_NO_MONTH_CHANGE) if (! (calendar->display_flags & GTK_CALENDAR_NO_MONTH_CHANGE)
&& (calendar->display_flags & GTK_CALENDAR_SHOW_HEADING)) && (calendar->display_flags & GTK_CALENDAR_SHOW_HEADING))
@ -1025,18 +1052,34 @@ gtk_calendar_realize_arrows (GtkWidget *widget)
switch (i) switch (i)
{ {
case ARROW_MONTH_LEFT: case ARROW_MONTH_LEFT:
if (year_left)
attributes.x = (widget->allocation.width - 2 * widget->style->xthickness
- (3 + 2*private_data->arrow_width
+ private_data->max_month_width));
else
attributes.x = 3; attributes.x = 3;
break; break;
case ARROW_MONTH_RIGHT: case ARROW_MONTH_RIGHT:
if (year_left)
attributes.x = (widget->allocation.width - 2 * widget->style->xthickness
- 3 - private_data->arrow_width);
else
attributes.x = (private_data->arrow_width attributes.x = (private_data->arrow_width
+ private_data->max_month_width); + private_data->max_month_width);
break; break;
case ARROW_YEAR_LEFT: case ARROW_YEAR_LEFT:
if (year_left)
attributes.x = 3;
else
attributes.x = (widget->allocation.width - 2 * widget->style->xthickness attributes.x = (widget->allocation.width - 2 * widget->style->xthickness
- (3 + 2*private_data->arrow_width - (3 + 2*private_data->arrow_width
+ private_data->max_year_width)); + private_data->max_year_width));
break; break;
case ARROW_YEAR_RIGHT: case ARROW_YEAR_RIGHT:
if (year_left)
attributes.x = (private_data->arrow_width
+ private_data->max_year_width);
else
attributes.x = (widget->allocation.width - 2 * widget->style->xthickness attributes.x = (widget->allocation.width - 2 * widget->style->xthickness
- 3 - private_data->arrow_width); - 3 - private_data->arrow_width);
break; break;
@ -1480,12 +1523,18 @@ gtk_calendar_size_allocate (GtkWidget *widget,
GtkCalendarPrivateData *private_data; GtkCalendarPrivateData *private_data;
gint xthickness = widget->style->xthickness; gint xthickness = widget->style->xthickness;
gint ythickness = widget->style->xthickness; gint ythickness = widget->style->xthickness;
gboolean year_left;
widget->allocation = *allocation; widget->allocation = *allocation;
calendar = GTK_CALENDAR (widget); calendar = GTK_CALENDAR (widget);
private_data = GTK_CALENDAR_PRIVATE_DATA (widget); private_data = GTK_CALENDAR_PRIVATE_DATA (widget);
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR)
year_left = private_data->year_before;
else
year_left = !private_data->year_before;
if (calendar->display_flags & GTK_CALENDAR_SHOW_WEEK_NUMBERS) if (calendar->display_flags & GTK_CALENDAR_SHOW_WEEK_NUMBERS)
{ {
private_data->day_width = (private_data->min_day_width private_data->day_width = (private_data->min_day_width
@ -1515,53 +1564,115 @@ gtk_calendar_size_allocate (GtkWidget *widget,
xthickness, ythickness, xthickness, ythickness,
allocation->width - 2 * xthickness, private_data->header_h); allocation->width - 2 * xthickness, private_data->header_h);
if (private_data->arrow_win[ARROW_MONTH_LEFT]) if (private_data->arrow_win[ARROW_MONTH_LEFT])
gdk_window_move_resize (private_data->arrow_win[ARROW_MONTH_LEFT], {
3, 3, if (year_left)
private_data->arrow_width, gdk_window_move_resize (private_data->arrow_win[ARROW_MONTH_LEFT],
private_data->header_h - 7); (allocation->width - 2 * xthickness
- (3 + 2*private_data->arrow_width
+ private_data->max_month_width)),
3,
private_data->arrow_width,
private_data->header_h - 7);
else
gdk_window_move_resize (private_data->arrow_win[ARROW_MONTH_LEFT],
3, 3,
private_data->arrow_width,
private_data->header_h - 7);
}
if (private_data->arrow_win[ARROW_MONTH_RIGHT]) if (private_data->arrow_win[ARROW_MONTH_RIGHT])
gdk_window_move_resize (private_data->arrow_win[ARROW_MONTH_RIGHT], {
(private_data->arrow_width if (year_left)
+ private_data->max_month_width), gdk_window_move_resize (private_data->arrow_win[ARROW_MONTH_RIGHT],
3, (allocation->width - 2 * xthickness
private_data->arrow_width, - 3 - private_data->arrow_width),
private_data->header_h - 7); 3,
private_data->arrow_width,
private_data->header_h - 7);
else
gdk_window_move_resize (private_data->arrow_win[ARROW_MONTH_RIGHT],
(private_data->arrow_width
+ private_data->max_month_width),
3,
private_data->arrow_width,
private_data->header_h - 7);
}
if (private_data->arrow_win[ARROW_YEAR_LEFT]) if (private_data->arrow_win[ARROW_YEAR_LEFT])
gdk_window_move_resize (private_data->arrow_win[ARROW_YEAR_LEFT], {
(allocation->width - 2 * xthickness if (year_left)
- (3 + 2*private_data->arrow_width gdk_window_move_resize (private_data->arrow_win[ARROW_YEAR_LEFT],
+ private_data->max_year_width)), 3, 3,
3, private_data->arrow_width,
private_data->arrow_width, private_data->header_h - 7);
private_data->header_h - 7); else
gdk_window_move_resize (private_data->arrow_win[ARROW_YEAR_LEFT],
(allocation->width - 2 * xthickness
- (3 + 2*private_data->arrow_width
+ private_data->max_year_width)),
3,
private_data->arrow_width,
private_data->header_h - 7);
}
if (private_data->arrow_win[ARROW_YEAR_RIGHT]) if (private_data->arrow_win[ARROW_YEAR_RIGHT])
gdk_window_move_resize (private_data->arrow_win[ARROW_YEAR_RIGHT], {
(allocation->width - 2 * xthickness if (year_left)
- 3 - private_data->arrow_width), gdk_window_move_resize (private_data->arrow_win[ARROW_YEAR_RIGHT],
3, (private_data->arrow_width
private_data->arrow_width, + private_data->max_year_width),
private_data->header_h - 7); 3,
private_data->arrow_width,
private_data->header_h - 7);
else
gdk_window_move_resize (private_data->arrow_win[ARROW_YEAR_RIGHT],
(allocation->width - 2 * xthickness
- 3 - private_data->arrow_width),
3,
private_data->arrow_width,
private_data->header_h - 7);
}
if (private_data->day_name_win) if (private_data->day_name_win)
gdk_window_move_resize (private_data->day_name_win, gdk_window_move_resize (private_data->day_name_win,
xthickness + INNER_BORDER, xthickness + INNER_BORDER,
private_data->header_h + (widget->style->ythickness + INNER_BORDER), private_data->header_h + (widget->style->ythickness + INNER_BORDER),
allocation->width - (xthickness + INNER_BORDER) * 2, allocation->width - (xthickness + INNER_BORDER) * 2,
private_data->day_name_h); private_data->day_name_h);
if (private_data->week_win) if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR)
gdk_window_move_resize (private_data->week_win, {
(xthickness + INNER_BORDER), if (private_data->week_win)
private_data->header_h + private_data->day_name_h gdk_window_move_resize (private_data->week_win,
+ (widget->style->ythickness + INNER_BORDER), (xthickness + INNER_BORDER),
private_data->week_width, private_data->header_h + private_data->day_name_h
private_data->main_h); + (widget->style->ythickness + INNER_BORDER),
gdk_window_move_resize (private_data->main_win, private_data->week_width,
private_data->week_width + (xthickness + INNER_BORDER), private_data->main_h);
private_data->header_h + private_data->day_name_h gdk_window_move_resize (private_data->main_win,
+ (widget->style->ythickness + INNER_BORDER), private_data->week_width + (xthickness + INNER_BORDER),
allocation->width private_data->header_h + private_data->day_name_h
- private_data->week_width + (widget->style->ythickness + INNER_BORDER),
- (xthickness + INNER_BORDER) * 2, allocation->width
private_data->main_h); - private_data->week_width
- (xthickness + INNER_BORDER) * 2,
private_data->main_h);
}
else
{
gdk_window_move_resize (private_data->main_win,
(xthickness + INNER_BORDER),
private_data->header_h + private_data->day_name_h
+ (widget->style->ythickness + INNER_BORDER),
allocation->width
- private_data->week_width
- (xthickness + INNER_BORDER) * 2,
private_data->main_h);
if (private_data->week_win)
gdk_window_move_resize (private_data->week_win,
allocation->width
- private_data->week_width
- (xthickness + INNER_BORDER),
private_data->header_h + private_data->day_name_h
+ (widget->style->ythickness + INNER_BORDER),
private_data->week_width,
private_data->main_h);
}
} }
} }
@ -1612,6 +1723,7 @@ gtk_calendar_paint_header (GtkWidget *widget)
GtkCalendarPrivateData *private_data; GtkCalendarPrivateData *private_data;
PangoLayout *layout; PangoLayout *layout;
PangoRectangle logical_rect; PangoRectangle logical_rect;
gboolean year_left;
calendar = GTK_CALENDAR (widget); calendar = GTK_CALENDAR (widget);
private_data = GTK_CALENDAR_PRIVATE_DATA (widget); private_data = GTK_CALENDAR_PRIVATE_DATA (widget);
@ -1621,6 +1733,12 @@ gtk_calendar_paint_header (GtkWidget *widget)
private_data->dirty_header = 1; private_data->dirty_header = 1;
return; return;
} }
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR)
year_left = private_data->year_before;
else
year_left = !private_data->year_before;
private_data->dirty_header = 0; private_data->dirty_header = 0;
gc = calendar->gc; gc = calendar->gc;
@ -1650,11 +1768,17 @@ gtk_calendar_paint_header (GtkWidget *widget)
/* Draw year and its arrows */ /* Draw year and its arrows */
if (calendar->display_flags & GTK_CALENDAR_NO_MONTH_CHANGE) if (calendar->display_flags & GTK_CALENDAR_NO_MONTH_CHANGE)
x = header_width - (3 + max_year_width if (year_left)
- (max_year_width - logical_rect.width)/2); x = 3 + (max_year_width - logical_rect.width)/2;
else
x = header_width - (3 + max_year_width
- (max_year_width - logical_rect.width)/2);
else else
x = header_width - (3 + private_data->arrow_width + max_year_width if (year_left)
- (max_year_width - logical_rect.width)/2); x = 3 + private_data->arrow_width + (max_year_width - logical_rect.width)/2;
else
x = header_width - (3 + private_data->arrow_width + max_year_width
- (max_year_width - logical_rect.width)/2);
gdk_gc_set_foreground (gc, HEADER_FG_COLOR (GTK_WIDGET (calendar))); gdk_gc_set_foreground (gc, HEADER_FG_COLOR (GTK_WIDGET (calendar)));
@ -1666,8 +1790,16 @@ gtk_calendar_paint_header (GtkWidget *widget)
pango_layout_get_pixel_extents (layout, NULL, &logical_rect); pango_layout_get_pixel_extents (layout, NULL, &logical_rect);
if (calendar->display_flags & GTK_CALENDAR_NO_MONTH_CHANGE) if (calendar->display_flags & GTK_CALENDAR_NO_MONTH_CHANGE)
if (year_left)
x = header_width - (3 + max_month_width
- (max_month_width - logical_rect.width)/2);
else
x = 3 + (max_month_width - logical_rect.width) / 2; x = 3 + (max_month_width - logical_rect.width) / 2;
else else
if (year_left)
x = header_width - (3 + private_data->arrow_width + max_month_width
- (max_month_width - logical_rect.width)/2);
else
x = 3 + private_data->arrow_width + (max_month_width - logical_rect.width)/2; x = 3 + private_data->arrow_width + (max_month_width - logical_rect.width)/2;
gdk_draw_layout (private_data->header_win, gc, x, y, layout); gdk_draw_layout (private_data->header_win, gc, x, y, layout);
@ -1768,8 +1900,9 @@ gtk_calendar_paint_day_names (GtkWidget *widget)
gdk_draw_layout (private_data->day_name_win, gc, gdk_draw_layout (private_data->day_name_win, gc,
(CALENDAR_MARGIN + (CALENDAR_MARGIN +
+ private_data->week_width + (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR ?
+ (private_data->week_width ? CALENDAR_XSEP : 0) (private_data->week_width + (private_data->week_width ? CALENDAR_XSEP : 0))
: 0)
+ day_wid_sep * i + day_wid_sep * i
+ (day_width - logical_rect.width)/2), + (day_width - logical_rect.width)/2),
CALENDAR_MARGIN + focus_width + focus_padding + logical_rect.y, CALENDAR_MARGIN + focus_width + focus_padding + logical_rect.y,
@ -2922,6 +3055,35 @@ gtk_calendar_scroll (GtkWidget *widget,
return TRUE; return TRUE;
} }
static void
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))
{
if (calendar->focus_col > 0)
calendar->focus_col--;
else if (calendar->focus_row > 0)
{
calendar->focus_col = 6;
calendar->focus_row--;
}
}
else
{
if (calendar->focus_col < 6)
calendar->focus_col++;
else if (calendar->focus_row < 5)
{
calendar->focus_col = 0;
calendar->focus_row++;
}
}
}
static gboolean static gboolean
gtk_calendar_key_press (GtkWidget *widget, gtk_calendar_key_press (GtkWidget *widget,
GdkEventKey *event) GdkEventKey *event)
@ -2944,20 +3106,10 @@ gtk_calendar_key_press (GtkWidget *widget,
case GDK_Left: case GDK_Left:
return_val = TRUE; return_val = TRUE;
if (event->state & GDK_CONTROL_MASK) if (event->state & GDK_CONTROL_MASK)
{ gtk_calendar_set_month_prev (calendar);
gtk_calendar_set_month_prev (calendar);
}
else else
{ {
if (calendar->focus_col > 0) move_focus (calendar, -1);
{
calendar->focus_col--;
}
else if (calendar->focus_row > 0)
{
calendar->focus_col = 6;
calendar->focus_row--;
}
gtk_calendar_paint_day (widget, old_focus_row, old_focus_col); gtk_calendar_paint_day (widget, old_focus_row, old_focus_col);
gtk_calendar_paint_day (widget, calendar->focus_row, gtk_calendar_paint_day (widget, calendar->focus_row,
calendar->focus_col); calendar->focus_col);
@ -2967,20 +3119,10 @@ gtk_calendar_key_press (GtkWidget *widget,
case GDK_Right: case GDK_Right:
return_val = TRUE; return_val = TRUE;
if (event->state & GDK_CONTROL_MASK) if (event->state & GDK_CONTROL_MASK)
{
gtk_calendar_set_month_next (calendar); gtk_calendar_set_month_next (calendar);
}
else else
{ {
if (calendar->focus_col < 6) move_focus (calendar, 1);
{
calendar->focus_col++;
}
else if (calendar->focus_row < 5)
{
calendar->focus_col = 0;
calendar->focus_row++;
}
gtk_calendar_paint_day (widget, old_focus_row, old_focus_col); gtk_calendar_paint_day (widget, old_focus_row, old_focus_col);
gtk_calendar_paint_day (widget, calendar->focus_row, gtk_calendar_paint_day (widget, calendar->focus_row,
calendar->focus_col); calendar->focus_col);
@ -2990,15 +3132,11 @@ gtk_calendar_key_press (GtkWidget *widget,
case GDK_Up: case GDK_Up:
return_val = TRUE; return_val = TRUE;
if (event->state & GDK_CONTROL_MASK) if (event->state & GDK_CONTROL_MASK)
{ gtk_calendar_set_year_prev (calendar);
gtk_calendar_set_year_prev (calendar);
}
else else
{ {
if (calendar->focus_row > 0) if (calendar->focus_row > 0)
{ calendar->focus_row--;
calendar->focus_row--;
}
gtk_calendar_paint_day (widget, old_focus_row, old_focus_col); gtk_calendar_paint_day (widget, old_focus_row, old_focus_col);
gtk_calendar_paint_day (widget, calendar->focus_row, gtk_calendar_paint_day (widget, calendar->focus_row,
calendar->focus_col); calendar->focus_col);
@ -3008,15 +3146,11 @@ gtk_calendar_key_press (GtkWidget *widget,
case GDK_Down: case GDK_Down:
return_val = TRUE; return_val = TRUE;
if (event->state & GDK_CONTROL_MASK) if (event->state & GDK_CONTROL_MASK)
{ gtk_calendar_set_year_next (calendar);
gtk_calendar_set_year_next (calendar);
}
else else
{ {
if (calendar->focus_row < 5) if (calendar->focus_row < 5)
{ calendar->focus_row++;
calendar->focus_row++;
}
gtk_calendar_paint_day (widget, old_focus_row, old_focus_col); gtk_calendar_paint_day (widget, old_focus_row, old_focus_col);
gtk_calendar_paint_day (widget, calendar->focus_row, gtk_calendar_paint_day (widget, calendar->focus_row,
calendar->focus_col); calendar->focus_col);
@ -3034,13 +3168,9 @@ gtk_calendar_key_press (GtkWidget *widget,
gtk_calendar_freeze (calendar); gtk_calendar_freeze (calendar);
if (calendar->day_month[row][col] == MONTH_PREV) if (calendar->day_month[row][col] == MONTH_PREV)
{ gtk_calendar_set_month_prev (calendar);
gtk_calendar_set_month_prev (calendar);
}
else if (calendar->day_month[row][col] == MONTH_NEXT) else if (calendar->day_month[row][col] == MONTH_NEXT)
{ gtk_calendar_set_month_next (calendar);
gtk_calendar_set_month_next (calendar);
}
gtk_calendar_select_and_focus_day (calendar, day); gtk_calendar_select_and_focus_day (calendar, day);