[gnome-calendar/wip/pandusonu/week-view] week-grid: fix inversed selection on RTL languages
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-calendar/wip/pandusonu/week-view] week-grid: fix inversed selection on RTL languages
- Date: Wed, 14 Dec 2016 19:12:04 +0000 (UTC)
commit 84c411e50538ae41486b5fb1f58c1d6470cc3279
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Wed Dec 14 17:11:37 2016 -0200
week-grid: fix inversed selection on RTL languages
src/views/gcal-week-grid.c | 18 +++++++++++++++---
1 files changed, 15 insertions(+), 3 deletions(-)
---
diff --git a/src/views/gcal-week-grid.c b/src/views/gcal-week-grid.c
index c8fc94c..e377ae2 100644
--- a/src/views/gcal-week-grid.c
+++ b/src/views/gcal-week-grid.c
@@ -840,6 +840,8 @@ gcal_week_grid_button_release (GtkWidget *widget,
gdouble x, y;
gint column;
gint minute;
+ gint start_cell;
+ gint end_cell;
gint out_x;
gint out_y;
@@ -854,6 +856,16 @@ gcal_week_grid_button_release (GtkWidget *widget,
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);
/* 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)
{
- start = g_date_time_add_minutes (week_start, self->selection_start * 30);
- end = g_date_time_add_minutes (week_start, (self->selection_end + 1) * 30);
+ start = g_date_time_add_minutes (week_start, start_cell * 30);
+ end = g_date_time_add_minutes (week_start, (end_cell + 1) * 30);
}
else
{
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));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]