summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Rietveld <kris@imendio.com>2006-07-18 12:33:25 +0000
committerKristian Rietveld <kristian@src.gnome.org>2006-07-18 12:33:25 +0000
commit61f4d77d55fa871e6e1044c9a9ea0ab6401cc3a9 (patch)
treedcd5d2e4776b530c2b0e666277ad2913b4c3b625
parent6ca1b1e68570c903330d47f869d623db3d2eca21 (diff)
downloadgtk+-61f4d77d55fa871e6e1044c9a9ea0ab6401cc3a9.tar.gz
Another fix for #164884.
2006-07-18 Kristian Rietveld <kris@imendio.com> Another fix for #164884. * gtk/gtktreeprivate.h: add in_grab field. * gtk/gtktreeview.c (gtk_tree_view_button_press): only save press to possibly begin a drag when there's no grab pending, (gtk_tree_view_grab_notify): toggle in_grab field.
-rw-r--r--ChangeLog10
-rw-r--r--ChangeLog.pre-2-1010
-rw-r--r--gtk/gtktreeprivate.h2
-rw-r--r--gtk/gtktreeview.c3
4 files changed, 25 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 84059dcfe6..757c7e6063 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2006-07-18 Kristian Rietveld <kris@imendio.com>
+ Another fix for #164884.
+
+ * gtk/gtktreeprivate.h: add in_grab field.
+
+ * gtk/gtktreeview.c (gtk_tree_view_button_press): only save press
+ to possibly begin a drag when there's no grab pending,
+ (gtk_tree_view_grab_notify): toggle in_grab field.
+
+2006-07-18 Kristian Rietveld <kris@imendio.com>
+
* gtk/gtktreeview.c (gtk_tree_view_realize): use MAX
priv->width, alloc.width when allocating the bin_window,
(gtk_tree_view_bin_expose): don't overrun bin_window when drawing
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index 84059dcfe6..757c7e6063 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,5 +1,15 @@
2006-07-18 Kristian Rietveld <kris@imendio.com>
+ Another fix for #164884.
+
+ * gtk/gtktreeprivate.h: add in_grab field.
+
+ * gtk/gtktreeview.c (gtk_tree_view_button_press): only save press
+ to possibly begin a drag when there's no grab pending,
+ (gtk_tree_view_grab_notify): toggle in_grab field.
+
+2006-07-18 Kristian Rietveld <kris@imendio.com>
+
* gtk/gtktreeview.c (gtk_tree_view_realize): use MAX
priv->width, alloc.width when allocating the bin_window,
(gtk_tree_view_bin_expose): don't overrun bin_window when drawing
diff --git a/gtk/gtktreeprivate.h b/gtk/gtktreeprivate.h
index 9e7b591c03..0d3b3e0a61 100644
--- a/gtk/gtktreeprivate.h
+++ b/gtk/gtktreeprivate.h
@@ -231,6 +231,8 @@ struct _GtkTreeViewPrivate
guint rubber_banding_enable : 1;
+ guint in_grab : 1;
+
/* Auto expand/collapse timeout in hover mode */
guint auto_expand_timeout;
diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index ff278f487f..733a3cf79c 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -2613,6 +2613,7 @@ gtk_tree_view_button_press (GtkWidget *widget,
/* Save press to possibly begin a drag
*/
if (!column_handled_click &&
+ !tree_view->priv->in_grab &&
tree_view->priv->pressed_button < 0)
{
tree_view->priv->pressed_button = event->button;
@@ -14513,6 +14514,8 @@ gtk_tree_view_grab_notify (GtkWidget *widget,
{
GtkTreeView *tree_view = GTK_TREE_VIEW (widget);
+ tree_view->priv->in_grab = !was_grabbed;
+
if (!was_grabbed)
tree_view->priv->pressed_button = -1;
}