summaryrefslogtreecommitdiff
path: root/gtk/gtkclist.c
diff options
context:
space:
mode:
authorLars Hamann <lars@gtk.org>1999-01-08 00:21:36 +0000
committerLars Hamann <lars@src.gnome.org>1999-01-08 00:21:36 +0000
commitb56693d114a9033d5d371b668ac5304a88d6effd (patch)
tree0c3b1ec20dcbb2c0ef9b323c8336a54d676d3b8d /gtk/gtkclist.c
parent41604dd844dd5ad482a9703248c290ea62a58587 (diff)
downloadgdk-pixbuf-b56693d114a9033d5d371b668ac5304a88d6effd.tar.gz
call gtk_spin_button_update before returning a value
Fri Jan 8 00:42:00 1999 Lars Hamann <lars@gtk.org> * gtk/gtkspinbutton.c (gtk_spin_button_get_value_as_int) (gtk_spin_button_get_value_as_float): call gtk_spin_button_update before returning a value * gtk/gtkclist.c (gtk_clist_motion): don't allow 'drag selections' if clist is a drag source. (gtk_clist_drag_begin): remove pointer grabs, end ongoing selections. * gtk/gtkctree.c (remove_grab): copy of clist function. (gtk_ctree_drag_begin): let clists drag_begin method set the source info struct.
Diffstat (limited to 'gtk/gtkclist.c')
-rw-r--r--gtk/gtkclist.c43
1 files changed, 20 insertions, 23 deletions
diff --git a/gtk/gtkclist.c b/gtk/gtkclist.c
index d674d2c39..a201f39dc 100644
--- a/gtk/gtkclist.c
+++ b/gtk/gtkclist.c
@@ -5202,31 +5202,11 @@ gtk_clist_motion (GtkWidget *widget,
x >= (COLUMN_LEFT_XPIXEL(clist, clist->click_cell.column) +
clist->column[clist->click_cell.column].area.width)))
{
- GdkDragContext *context;
GtkTargetList *target_list;
- gint button;
-
- button = clist->drag_button;
- clist->drag_button = 0;
- remove_grab (clist);
-
- switch (clist->selection_mode)
- {
- case GTK_SELECTION_EXTENDED:
- update_extended_selection (clist, clist->focus_row);
- GTK_CLIST_CLASS_FW (clist)->resync_selection
- (clist, (GdkEvent *) event);
- break;
- case GTK_SELECTION_SINGLE:
- case GTK_SELECTION_MULTIPLE:
- clist->anchor = -1;
- case GTK_SELECTION_BROWSE:
- break;
- }
target_list = gtk_target_list_new (&clist_target_table, 1);
- context = gtk_drag_begin (widget, target_list, GDK_ACTION_MOVE,
- button, (GdkEvent *)event);
+ gtk_drag_begin (widget, target_list, GDK_ACTION_MOVE,
+ clist->drag_button, (GdkEvent *)event);
}
return TRUE;
@@ -5283,7 +5263,8 @@ gtk_clist_motion (GtkWidget *widget,
row = CLAMP (row, 0, clist->rows - 1);
- if (button_actions & GTK_BUTTON_SELECTS)
+ if (button_actions & GTK_BUTTON_SELECTS &
+ !gtk_object_get_data (GTK_OBJECT (widget), "gtk-site-data"))
{
if (row == clist->focus_row)
return FALSE;
@@ -7357,6 +7338,22 @@ gtk_clist_drag_begin (GtkWidget *widget,
clist = GTK_CLIST (widget);
+ clist->drag_button = 0;
+ remove_grab (clist);
+
+ switch (clist->selection_mode)
+ {
+ case GTK_SELECTION_EXTENDED:
+ update_extended_selection (clist, clist->focus_row);
+ GTK_CLIST_CLASS_FW (clist)->resync_selection (clist, NULL);
+ break;
+ case GTK_SELECTION_SINGLE:
+ case GTK_SELECTION_MULTIPLE:
+ clist->anchor = -1;
+ case GTK_SELECTION_BROWSE:
+ break;
+ }
+
info = g_dataset_get_data (context, "gtk-clist-drag-source");
if (!info)