[gnome-todo/gnome-3-22] edit-pane: improve behavior on unset due dates



commit 4a2f6c9e5deb3d05e58c1f8121ff87b66c646353
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Wed Nov 30 23:58:25 2016 -0200

    edit-pane: improve behavior on unset due dates
    
    When a due date is not available, jump back to the current day.

 src/gtd-edit-pane.c |   31 ++++++++++++++++++++++---------
 1 files changed, 22 insertions(+), 9 deletions(-)
---
diff --git a/src/gtd-edit-pane.c b/src/gtd-edit-pane.c
index 2b3e97b..24930bc 100644
--- a/src/gtd-edit-pane.c
+++ b/src/gtd-edit-pane.c
@@ -182,24 +182,37 @@ gtd_edit_pane_update_date (GtdEditPane *pane)
   dt = priv->task ? gtd_task_get_due_date (priv->task) : NULL;
   text = dt ? g_date_time_format (dt, "%x") : NULL;
 
+  g_signal_handlers_block_by_func (priv->calendar,
+                                   gtd_edit_pane__date_selected,
+                                   pane);
+
   if (dt)
     {
-      g_signal_handlers_block_by_func (priv->calendar,
-                                       gtd_edit_pane__date_selected,
-                                       pane);
-
       gtk_calendar_select_month (priv->calendar,
                                  g_date_time_get_month (dt) - 1,
                                  g_date_time_get_year (dt));
       gtk_calendar_select_day (priv->calendar,
                                g_date_time_get_day_of_month (dt));
-      gtk_calendar_mark_day (priv->calendar,
-                             g_date_time_get_day_of_month (dt));
 
-      g_signal_handlers_unblock_by_func (priv->calendar,
-                                         gtd_edit_pane__date_selected,
-                                         pane);
     }
+  else
+    {
+      GDateTime *today;
+
+      today = g_date_time_new_now_local ();
+
+      gtk_calendar_select_month (priv->calendar,
+                                 g_date_time_get_month (today) - 1,
+                                 g_date_time_get_year (today));
+      gtk_calendar_select_day (priv->calendar,
+                               g_date_time_get_day_of_month (today));
+
+      g_clear_pointer (&today, g_date_time_unref);
+    }
+
+  g_signal_handlers_unblock_by_func (priv->calendar,
+                                     gtd_edit_pane__date_selected,
+                                     pane);
 
   gtk_label_set_label (priv->date_label, text ? text : _("No date set"));
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]