[gnome-calendar/wip/pandusonu/week-view] week-grid: fix inversed selection on RTL languages



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]