Index: launcher.c
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/launcher.c,v
retrieving revision 1.263
diff -u -r1.263 launcher.c
--- launcher.c	6 Nov 2003 12:00:55 -0000	1.263
+++ launcher.c	28 Nov 2003 10:47:27 -0000
@@ -108,6 +108,17 @@
 	}
 }
 
+static gboolean
+launcher_stop_debouncing (gpointer data)
+{
+	Launcher *launcher = (Launcher *) data;
+
+	launcher->ignore_click = FALSE;
+	launcher->ignore_click_timeout_id = 0;
+
+	return FALSE;
+}
+
 static void
 launch_url (Launcher *launcher)
 {
@@ -151,10 +162,29 @@
 	   Launcher  *launcher)
 {
 	GnomeDesktopItem *item;
+	gint              ignore_time;
+	GError           *error;
 
 	g_return_if_fail (launcher != NULL);
 	g_return_if_fail (launcher->ditem != NULL);
 
+	if (launcher->ignore_click)
+		return;
+
+	error = NULL;
+	ignore_time = gconf_client_get_int (
+				panel_gconf_get_client (),
+				"/desktop/gnome/peripherals/mouse/double_click",
+				&error);
+	if (error) {
+		ignore_time = 1000;
+	}
+
+	launcher->ignore_click = TRUE;
+	launcher->ignore_click_timeout_id = g_timeout_add (ignore_time,
+							   launcher_stop_debouncing,
+							   launcher);
+	
 	item = launcher->ditem;
 
 	if (panel_global_config_get_enable_animations ())
@@ -178,7 +208,7 @@
 			g_clear_error (&error);
 		}
 	}
-	
+
 	if (panel_global_config_get_drawer_auto_close ()) {
 		PanelToplevel *toplevel;
 
@@ -257,6 +287,10 @@
 		gnome_desktop_item_unref (launcher->revert_ditem);
 	launcher->revert_ditem = NULL;
 
+	if (launcher->ignore_click_timeout_id)
+		g_source_remove (launcher->ignore_click_timeout_id);
+	launcher->ignore_click_timeout_id = 0;
+
 	g_free (launcher);
 }
 
@@ -441,6 +475,8 @@
 	launcher->prop_dialog = NULL;
 	launcher->destroy_handler = 0;
 	launcher->non_writable = FALSE;
+	launcher->ignore_click = FALSE;
+	launcher->ignore_click_timeout_id = 0;
 
 	/* Icon will be setup later */
 	launcher->button = button_widget_new (NULL /* icon */,
Index: launcher.h
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/launcher.h,v
retrieving revision 1.47
diff -u -r1.47 launcher.h
--- launcher.h	6 Nov 2003 12:00:55 -0000	1.47
+++ launcher.h	28 Nov 2003 10:47:27 -0000
@@ -34,6 +34,11 @@
 	/* If we can't hoard, and it's not hoarded
 	   already, then we can't write this launcher */
 	gboolean           non_writable;
+
+	/* This is to prevent the "double-click effect" when people
+	   think they have to double-click to launch something. */
+	gboolean           ignore_click;
+	guint              ignore_click_timeout_id;
 } Launcher;
 
 void panel_launcher_create           (PanelToplevel *toplevel,
