]> Pileus Git - ~andy/gtk/commitdiff
end drag selections if necessary.
authorLars Hamann <lars@gtk.org>
Mon, 11 Jan 1999 23:24:41 +0000 (23:24 +0000)
committerLars Hamann <lars@src.gnome.org>
Mon, 11 Jan 1999 23:24:41 +0000 (23:24 +0000)
Mon Jan 11 23:52:58 1999  Lars Hamann  <lars@gtk.org>

* gtk/gtklist.c (gtk_list_signal_drag_begin)
(gtk_list_drag_begin): end drag selections if necessary.

* gtk/gtkspinbutton.c/h (gtk_spin_button_update): made function
public. Manually force synchronization of spin button text and
  adjustment value.

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtklist.c
gtk/gtkspinbutton.c
gtk/gtkspinbutton.h

index ff0e502b9ffe3b8be6c77bd2d3729837cf3b9720..85024053036df34f2f313b673c49e76be9178c1e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Mon Jan 11 23:52:58 1999  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtklist.c (gtk_list_signal_drag_begin)
+       (gtk_list_drag_begin): end drag selections if necessary.
+
+       * gtk/gtkspinbutton.c/h (gtk_spin_button_update): made function
+       public. Manually force synchronization of spin button text and
+       adjustment value.
+
 Mon Jan 11 15:23:32 1999  Tim Janik  <timj@gtk.org>
 
        * gtk/gtktogglebutton.c: eliminated some queue_draws when invoking
index ff0e502b9ffe3b8be6c77bd2d3729837cf3b9720..85024053036df34f2f313b673c49e76be9178c1e 100644 (file)
@@ -1,3 +1,12 @@
+Mon Jan 11 23:52:58 1999  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtklist.c (gtk_list_signal_drag_begin)
+       (gtk_list_drag_begin): end drag selections if necessary.
+
+       * gtk/gtkspinbutton.c/h (gtk_spin_button_update): made function
+       public. Manually force synchronization of spin button text and
+       adjustment value.
+
 Mon Jan 11 15:23:32 1999  Tim Janik  <timj@gtk.org>
 
        * gtk/gtktogglebutton.c: eliminated some queue_draws when invoking
index ff0e502b9ffe3b8be6c77bd2d3729837cf3b9720..85024053036df34f2f313b673c49e76be9178c1e 100644 (file)
@@ -1,3 +1,12 @@
+Mon Jan 11 23:52:58 1999  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtklist.c (gtk_list_signal_drag_begin)
+       (gtk_list_drag_begin): end drag selections if necessary.
+
+       * gtk/gtkspinbutton.c/h (gtk_spin_button_update): made function
+       public. Manually force synchronization of spin button text and
+       adjustment value.
+
 Mon Jan 11 15:23:32 1999  Tim Janik  <timj@gtk.org>
 
        * gtk/gtktogglebutton.c: eliminated some queue_draws when invoking
index ff0e502b9ffe3b8be6c77bd2d3729837cf3b9720..85024053036df34f2f313b673c49e76be9178c1e 100644 (file)
@@ -1,3 +1,12 @@
+Mon Jan 11 23:52:58 1999  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtklist.c (gtk_list_signal_drag_begin)
+       (gtk_list_drag_begin): end drag selections if necessary.
+
+       * gtk/gtkspinbutton.c/h (gtk_spin_button_update): made function
+       public. Manually force synchronization of spin button text and
+       adjustment value.
+
 Mon Jan 11 15:23:32 1999  Tim Janik  <timj@gtk.org>
 
        * gtk/gtktogglebutton.c: eliminated some queue_draws when invoking
index ff0e502b9ffe3b8be6c77bd2d3729837cf3b9720..85024053036df34f2f313b673c49e76be9178c1e 100644 (file)
@@ -1,3 +1,12 @@
+Mon Jan 11 23:52:58 1999  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtklist.c (gtk_list_signal_drag_begin)
+       (gtk_list_drag_begin): end drag selections if necessary.
+
+       * gtk/gtkspinbutton.c/h (gtk_spin_button_update): made function
+       public. Manually force synchronization of spin button text and
+       adjustment value.
+
 Mon Jan 11 15:23:32 1999  Tim Janik  <timj@gtk.org>
 
        * gtk/gtktogglebutton.c: eliminated some queue_draws when invoking
index ff0e502b9ffe3b8be6c77bd2d3729837cf3b9720..85024053036df34f2f313b673c49e76be9178c1e 100644 (file)
@@ -1,3 +1,12 @@
+Mon Jan 11 23:52:58 1999  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtklist.c (gtk_list_signal_drag_begin)
+       (gtk_list_drag_begin): end drag selections if necessary.
+
+       * gtk/gtkspinbutton.c/h (gtk_spin_button_update): made function
+       public. Manually force synchronization of spin button text and
+       adjustment value.
+
 Mon Jan 11 15:23:32 1999  Tim Janik  <timj@gtk.org>
 
        * gtk/gtktogglebutton.c: eliminated some queue_draws when invoking
index ff0e502b9ffe3b8be6c77bd2d3729837cf3b9720..85024053036df34f2f313b673c49e76be9178c1e 100644 (file)
@@ -1,3 +1,12 @@
+Mon Jan 11 23:52:58 1999  Lars Hamann  <lars@gtk.org>
+
+       * gtk/gtklist.c (gtk_list_signal_drag_begin)
+       (gtk_list_drag_begin): end drag selections if necessary.
+
+       * gtk/gtkspinbutton.c/h (gtk_spin_button_update): made function
+       public. Manually force synchronization of spin button text and
+       adjustment value.
+
 Mon Jan 11 15:23:32 1999  Tim Janik  <timj@gtk.org>
 
        * gtk/gtktogglebutton.c: eliminated some queue_draws when invoking
index 2d4f3ccbb6df6bb43c8ac7ae0422108d8c685721..45527aa94adb6efb89e3b83e900dbbfc48231767 100644 (file)
@@ -103,6 +103,9 @@ static void gtk_list_update_extended_selection  (GtkList   *list,
                                                 gint       row);
 
 /** GtkListItem Signal Functions **/
+static void gtk_list_signal_drag_begin         (GtkWidget      *widget,
+                                               GdkDragContext *context,
+                                               GtkList        *list);
 static void gtk_list_signal_focus_lost         (GtkWidget     *item,
                                                GdkEventKey   *event,
                                                GtkList       *list);
@@ -141,6 +144,10 @@ static void gtk_list_signal_item_toggle        (GtkListItem   *list_item,
                                                GtkList       *list);
 
 
+static void gtk_list_drag_begin (GtkWidget      *widget,
+                                GdkDragContext *context);
+
+
 static GtkContainerClass *parent_class = NULL;
 static guint list_signals[LAST_SIGNAL] = { 0 };
 
@@ -229,6 +236,7 @@ gtk_list_class_init (GtkListClass *class)
   widget_class->motion_notify_event = gtk_list_motion_notify;
   widget_class->size_request = gtk_list_size_request;
   widget_class->size_allocate = gtk_list_size_allocate;
+  widget_class->drag_begin = gtk_list_drag_begin;
 
   container_class->add = gtk_list_add;
   container_class->remove = gtk_list_remove;
@@ -542,17 +550,15 @@ gtk_list_motion_notify (GtkWidget      *widget,
 
   if (row != focus_row)
     gtk_widget_grab_focus (item);
-         
+
   switch (list->selection_mode)
     {
     case GTK_SELECTION_BROWSE:
       gtk_list_select_child (list, item);
       break;
-      
     case GTK_SELECTION_EXTENDED:
       gtk_list_update_extended_selection (list, row);
       break;
-
     default:
       break;
     }
@@ -1014,6 +1020,9 @@ gtk_list_insert_items (GtkList *list,
       tmp_list = tmp_list->next;
 
       gtk_widget_set_parent (widget, GTK_WIDGET (list));
+      gtk_signal_connect (GTK_OBJECT (widget), "drag_begin",
+                         GTK_SIGNAL_FUNC (gtk_list_signal_drag_begin),
+                         list);
       gtk_signal_connect (GTK_OBJECT (widget), "focus_out_event",
                          GTK_SIGNAL_FUNC (gtk_list_signal_focus_lost),
                          list);
@@ -2613,3 +2622,47 @@ gtk_list_signal_item_toggle (GtkListItem *list_item,
       break;
     }
 }
+
+static void
+gtk_list_signal_drag_begin (GtkWidget      *widget,
+                           GdkDragContext *context,
+                           GtkList         *list)
+{
+  g_return_if_fail (widget != NULL);
+  g_return_if_fail (GTK_IS_LIST_ITEM (widget));
+  g_return_if_fail (list != NULL);
+  g_return_if_fail (GTK_IS_LIST (list));
+
+  gtk_list_drag_begin (GTK_WIDGET (list), context);
+}
+
+static void
+gtk_list_drag_begin (GtkWidget      *widget,
+                    GdkDragContext *context)
+{
+  GtkList *list;
+
+  g_return_if_fail (widget != NULL);
+  g_return_if_fail (GTK_IS_LIST (widget));
+  g_return_if_fail (context != NULL);
+
+  list = GTK_LIST (widget);
+
+  if (list->drag_selection)
+    {
+      gtk_list_end_drag_selection (list);
+
+      switch (list->selection_mode)
+       {
+       case GTK_SELECTION_EXTENDED:
+         gtk_list_end_selection (list);
+         break;
+       case GTK_SELECTION_SINGLE:
+       case GTK_SELECTION_MULTIPLE:
+         list->undo_focus_child = NULL;
+         break;
+       default:
+         break;
+       }
+    }
+}
index 7752b5578ee63cae101c87d0e39aea7f3c7d63ca..0d9714540b6a9bd817f0b3e9dcdccf521666da41 100644 (file)
@@ -97,7 +97,6 @@ static gint gtk_spin_button_key_press      (GtkWidget          *widget,
                                            GdkEventKey        *event);
 static gint gtk_spin_button_key_release    (GtkWidget          *widget,
                                            GdkEventKey        *event);
-static void gtk_spin_button_update         (GtkSpinButton      *spin_button);
 static void gtk_spin_button_activate       (GtkEditable        *editable);
 static void gtk_spin_button_snap           (GtkSpinButton      *spin_button,
                                            gfloat              val);
@@ -1115,7 +1114,7 @@ gtk_spin_button_snap (GtkSpinButton *spin_button,
     }
 }
 
-static void 
+void 
 gtk_spin_button_update (GtkSpinButton *spin_button)
 {
   gfloat val;
index abef75f1a76e74d79c683cc4bbf9984e19397277..99a1b09298b4185f8d9c8d8e1848168008d6499f 100644 (file)
@@ -141,6 +141,8 @@ void                gtk_spin_button_set_shadow_type    (GtkSpinButton  *spin_button,
 
 void           gtk_spin_button_set_snap_to_ticks  (GtkSpinButton  *spin_button,
                                                    gboolean        snap_to_ticks);
+void            gtk_spin_button_update             (GtkSpinButton  *spin_button);
+
 /* deprecated */
 void           gtk_spin_button_construct          (GtkSpinButton  *spin_button,
                                                    GtkAdjustment  *adjustment,