[gnome-todo] task-row: show row when drag fails



commit 59f168eb5867496d38e054f28a95e48a99a1d5b2
Author: Jens Sauer <jsauer65 gmail com>
Date:   Fri Apr 7 11:42:32 2017 +0200

    task-row: show row when drag fails
    
    When a task is being draged out of the window or into the GtdEditPane it
    disappears from the task list until the list is reopened.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=773562

 data/ui/task-row.ui |    1 +
 src/gtd-task-row.c  |   12 ++++++++++++
 2 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/data/ui/task-row.ui b/data/ui/task-row.ui
index 32b1f04..aa27886 100644
--- a/data/ui/task-row.ui
+++ b/data/ui/task-row.ui
@@ -29,6 +29,7 @@
                     <property name="visible">True</property>
                     <signal name="button-press-event" handler="button_press_event" object="GtdTaskRow" 
swapped="no" />
                     <signal name="drag-begin" handler="drag_begin_cb" object="GtdTaskRow" swapped="no" />
+                    <signal name="drag-failed" handler="drag_failed_cb" object="GtdTaskRow" swapped="no" />
                     <signal name="enter-notify-event" handler="mouse_over_event" object="GtdTaskRow" 
swapped="no" />
                     <signal name="leave-notify-event" handler="mouse_out_event" object="GtdTaskRow" 
swapped="no" />
                     <child>
diff --git a/src/gtd-task-row.c b/src/gtd-task-row.c
index 8e3295c..471afe8 100644
--- a/src/gtd-task-row.c
+++ b/src/gtd-task-row.c
@@ -205,6 +205,17 @@ drag_begin_cb (GtkWidget      *widget,
   g_clear_pointer (&surface, cairo_surface_destroy);
 }
 
+static gboolean
+drag_failed_cb (GtkWidget      *widget,
+                GdkDragContext *context,
+                GtkDragResult  result,
+                GtdTaskRow     *self)
+{
+  gtk_widget_show (GTK_WIDGET (self));
+
+  return FALSE;
+}
+
 static void
 gtd_task_row__priority_changed_cb (GtdTaskRow *row,
                                    GParamSpec *spec,
@@ -583,6 +594,7 @@ gtd_task_row_class_init (GtdTaskRowClass *klass)
   gtk_widget_class_bind_template_callback (widget_class, button_press_event);
   gtk_widget_class_bind_template_callback (widget_class, complete_check_toggled_cb);
   gtk_widget_class_bind_template_callback (widget_class, drag_begin_cb);
+  gtk_widget_class_bind_template_callback (widget_class, drag_failed_cb);
   gtk_widget_class_bind_template_callback (widget_class, mouse_out_event);
   gtk_widget_class_bind_template_callback (widget_class, mouse_over_event);
 


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