changeset 51:33a0ba7f52d1

2002-11-6 Brian Masney <masneyb@gftp.org> * src/gtk/gftp-gtk.c - connect to the select_row signal in the file listbox to grab the double click event
author masneyb
date Thu, 07 Nov 2002 02:38:34 +0000
parents d433c1417d7d
children 59bddadd51d7
files ChangeLog src/gtk/gftp-gtk.c
diffstat 2 files changed, 21 insertions(+), 28 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Nov 06 04:10:45 2002 +0000
+++ b/ChangeLog	Thu Nov 07 02:38:34 2002 +0000
@@ -1,3 +1,7 @@
+2002-11-6 Brian Masney <masneyb@gftp.org>
+	* src/gtk/gftp-gtk.c - connect to the select_row signal in the file
+	listbox to grab the double click event
+
 2002-11-5 Brian Masney <masneyb@gftp.org>
 	* src/gtk/dnd.c - some code cleanups. Also, add the file transfer with
 	the function add_file_transfer()
@@ -163,7 +167,7 @@
 
 	* cvsclean - added this script
 
-	* *.[ch] - added $Id: ChangeLog,v 1.28 2002/11/06 04:10:45 masneyb Exp $ tags
+	* *.[ch] - added $Id: ChangeLog,v 1.29 2002/11/07 02:38:30 masneyb Exp $ tags
 
 	* debian/* - updated files from Debian maintainer
 
--- a/src/gtk/gftp-gtk.c	Wed Nov 06 04:10:45 2002 +0000
+++ b/src/gtk/gftp-gtk.c	Thu Nov 07 02:38:34 2002 +0000
@@ -513,34 +513,25 @@
   gftp_window_data * wdata;
 
   wdata = data;
+
   if (event->button == 3)
     gtk_item_factory_popup (wdata->ifactory, (guint) event->x_root,
                             (guint) event->y_root, 3, event->time);
-  else if (!GFTP_IS_CONNECTED (wdata->request) || !IS_ONE_SELECTED (wdata))
-    return (TRUE);
+  return (FALSE);
+}
+
 
-#if GTK_MAJOR_VERSION == 1
-  if (event->type == GDK_2BUTTON_PRESS && event->button == 1)
-    {
-      list_doaction (wdata);
-      return (FALSE);
-    }
-  return (TRUE);
-#else
-  /* FIXME - If we're using GTK 2.0, if I connect to the button_press_event 
-     signal, whenever I get the GDK_2BUTTON_PRESS event, nothing is selected 
-     inside the clist. But if I connect_after to the button_release_event, it 
-     seems to only get called when we double click */
+void 
+select_row_callback (GtkWidget *widget, gint row, gint column,
+                     GdkEventButton *event, gpointer data)
+{
+  gftp_window_data * wdata;
 
-  /* This is also causing a bug where the file transfer is being added twice */
+  wdata = data;
 
-  if (event->button == 1)
-    {
-      list_doaction (wdata);
-      return (FALSE);
-    }
-  return (TRUE);
-#endif
+  if (event != NULL && event->type == GDK_2BUTTON_PRESS && event->button == 1 &&
+      GFTP_IS_CONNECTED (wdata->request) && IS_ONE_SELECTED (wdata))
+    list_doaction (wdata);
 }
 
 
@@ -626,13 +617,11 @@
 		      (gpointer) wdata);
   gtk_signal_connect_after (GTK_OBJECT (wdata->listbox), "key_press_event",
                             GTK_SIGNAL_FUNC (list_enter), (gpointer) wdata);
-#if GTK_MAJOR_VERSION == 1
+  gtk_signal_connect (GTK_OBJECT (wdata->listbox), "select_row",
+                      GTK_SIGNAL_FUNC(select_row_callback),
+                      (gpointer) wdata);
   gtk_signal_connect_after (GTK_OBJECT (wdata->listbox), "button_press_event",
                             GTK_SIGNAL_FUNC (list_dblclick), (gpointer) wdata);
-#else
-  g_signal_connect_after (G_OBJECT (wdata->listbox), "button_release_event",
-                          G_CALLBACK (list_dblclick), (gpointer) wdata);
-#endif
   return (parent);
 }