[gtk+] notebook: Do not reorder tabs after a grab notify if there isn't an ongoing reorder operation



commit feabf353716007833cab18d64499180348a5c22a
Author: Carlos Garcia Campos <cgarcia igalia com>
Date:   Tue Feb 2 18:50:58 2016 +0100

    notebook: Do not reorder tabs after a grab notify if there isn't an ongoing reorder operation
    
    This broke in f535251507a6a0af68aed6348ae80cbdac9b1f4a that removed
    during_reorder in favor of using the current operation, but removed the
    check from gtk_notebook_stop_reorder().

 gtk/gtknotebook.c |   31 +++++++++++++++++--------------
 1 files changed, 17 insertions(+), 14 deletions(-)
---
diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c
index ca665da..a4d97ed 100644
--- a/gtk/gtknotebook.c
+++ b/gtk/gtknotebook.c
@@ -3013,24 +3013,27 @@ gtk_notebook_stop_reorder (GtkNotebook *notebook)
 
   if (page->reorderable || page->detachable)
     {
-      gint old_page_num, page_num, i;
-      GList *element;
+      if (priv->operation == DRAG_OPERATION_REORDER)
+        {
+          gint old_page_num, page_num, i;
+          GList *element;
 
-      element = get_drop_position (notebook);
-      old_page_num = g_list_position (priv->children, priv->focus_tab);
-      page_num = reorder_tab (notebook, element, priv->focus_tab);
-      gtk_notebook_child_reordered (notebook, page);
+          element = get_drop_position (notebook);
+          old_page_num = g_list_position (priv->children, priv->focus_tab);
+          page_num = reorder_tab (notebook, element, priv->focus_tab);
+          gtk_notebook_child_reordered (notebook, page);
 
-      if (priv->has_scrolled || old_page_num != page_num)
-        {
-          for (element = priv->children, i = 0; element; element = element->next, i++)
+          if (priv->has_scrolled || old_page_num != page_num)
             {
-              if (MIN (old_page_num, page_num) <= i && i <= MAX (old_page_num, page_num))
-                gtk_widget_child_notify (((GtkNotebookPage *) element->data)->child, "position");
+              for (element = priv->children, i = 0; element; element = element->next, i++)
+                {
+                  if (MIN (old_page_num, page_num) <= i && i <= MAX (old_page_num, page_num))
+                    gtk_widget_child_notify (((GtkNotebookPage *) element->data)->child, "position");
+                }
+              g_signal_emit (notebook,
+                             notebook_signals[PAGE_REORDERED], 0,
+                             page->child, page_num);
             }
-          g_signal_emit (notebook,
-                         notebook_signals[PAGE_REORDERED], 0,
-                         page->child, page_num);
         }
 
       priv->has_scrolled = FALSE;


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