week-grid: fix inversed selection on RTL languages
This commit is contained in:
@@ -840,6 +840,8 @@ gcal_week_grid_button_release (GtkWidget *widget,
|
|||||||
gdouble x, y;
|
gdouble x, y;
|
||||||
gint column;
|
gint column;
|
||||||
gint minute;
|
gint minute;
|
||||||
|
gint start_cell;
|
||||||
|
gint end_cell;
|
||||||
gint out_x;
|
gint out_x;
|
||||||
gint out_y;
|
gint out_y;
|
||||||
|
|
||||||
@@ -854,6 +856,16 @@ gcal_week_grid_button_release (GtkWidget *widget,
|
|||||||
|
|
||||||
self->selection_end = (column * MINUTES_PER_DAY + minute) / 30;
|
self->selection_end = (column * MINUTES_PER_DAY + minute) / 30;
|
||||||
|
|
||||||
|
start_cell = self->selection_start;
|
||||||
|
end_cell = self->selection_end;
|
||||||
|
|
||||||
|
if (start_cell > end_cell)
|
||||||
|
{
|
||||||
|
start_cell = start_cell + end_cell;
|
||||||
|
end_cell = start_cell - end_cell;
|
||||||
|
start_cell = start_cell - end_cell;
|
||||||
|
}
|
||||||
|
|
||||||
gtk_widget_queue_draw (widget);
|
gtk_widget_queue_draw (widget);
|
||||||
|
|
||||||
/* Fake the week view's event so we can control the X and Y values */
|
/* Fake the week view's event so we can control the X and Y values */
|
||||||
@@ -862,13 +874,13 @@ gcal_week_grid_button_release (GtkWidget *widget,
|
|||||||
|
|
||||||
if (ltr)
|
if (ltr)
|
||||||
{
|
{
|
||||||
start = g_date_time_add_minutes (week_start, self->selection_start * 30);
|
start = g_date_time_add_minutes (week_start, start_cell * 30);
|
||||||
end = g_date_time_add_minutes (week_start, (self->selection_end + 1) * 30);
|
end = g_date_time_add_minutes (week_start, (end_cell + 1) * 30);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
start = g_date_time_add_minutes (week_start, MAX_MINUTES - column * MINUTES_PER_DAY + minute);
|
start = g_date_time_add_minutes (week_start, MAX_MINUTES - column * MINUTES_PER_DAY + minute);
|
||||||
end = g_date_time_add_minutes (week_start, MAX_MINUTES - column * MINUTES_PER_DAY + (self->selection_end + 1) * 30);
|
end = g_date_time_add_minutes (week_start, MAX_MINUTES - column * MINUTES_PER_DAY + (end_cell + 1) * 30);
|
||||||
}
|
}
|
||||||
|
|
||||||
x = round ((column + 0.5) * (alloc.width / 7.0));
|
x = round ((column + 0.5) * (alloc.width / 7.0));
|
||||||
|
|||||||
Reference in New Issue
Block a user