bb44777
diff -ur gmrun-0.9.2/src/gtkcompletionline.cc gmrun-0.9.2.new/src/gtkcompletionline.cc
bb44777
--- gmrun-0.9.2/src/gtkcompletionline.cc	2010-01-11 12:20:16.076644635 +0200
bb44777
+++ gmrun-0.9.2.new/src/gtkcompletionline.cc	2010-01-11 12:21:11.815581518 +0200
bb44777
@@ -75,6 +75,8 @@
bb44777
 
bb44777
 static gboolean
bb44777
 on_key_press(GtkCompletionLine *cl, GdkEventKey *event, gpointer data);
bb44777
+static gboolean
bb44777
+on_scroll(GtkCompletionLine *cl, GdkEventScroll *event, gpointer data);
bb44777
 
bb44777
 /* get_type */
bb44777
 guint gtk_completion_line_get_type(void)
bb44777
@@ -204,6 +206,8 @@
bb44777
                        GTK_SIGNAL_FUNC(on_key_press), NULL);
bb44777
   gtk_signal_connect(GTK_OBJECT(object), "key_release_event",
bb44777
                      GTK_SIGNAL_FUNC(on_key_press), NULL);
bb44777
+  gtk_signal_connect(GTK_OBJECT(object), "scroll-event",
bb44777
+                     GTK_SIGNAL_FUNC(on_scroll), NULL);
bb44777
 
bb44777
   object->hist = new HistoryFile();
bb44777
 
bb44777
@@ -954,6 +958,45 @@
bb44777
 }
bb44777
 
bb44777
 static gboolean
bb44777
+on_scroll(GtkCompletionLine *cl, GdkEventScroll *event, gpointer data)
bb44777
+{
bb44777
+	if (event->direction == GDK_SCROLL_UP) {
bb44777
+      if (cl->win_compl != NULL) {
bb44777
+        int &item = cl->list_compl_items_where;
bb44777
+        item--;
bb44777
+        if (item < 0) {
bb44777
+          item = 0;
bb44777
+        } else {
bb44777
+          complete_from_list(cl);
bb44777
+        }
bb44777
+      } else {
bb44777
+        up_history(cl);
bb44777
+      }
bb44777
+      if (MODE_SRC) {
bb44777
+        search_off(cl);
bb44777
+      }
bb44777
+	  return TRUE;
bb44777
+	} else if (event->direction == GDK_SCROLL_DOWN) {
bb44777
+      if (cl->win_compl != NULL) {
bb44777
+        int &item = cl->list_compl_items_where;
bb44777
+        item++;
bb44777
+        if (item >= cl->list_compl_nr_rows) {
bb44777
+          item = cl->list_compl_nr_rows - 1;
bb44777
+        } else {
bb44777
+          complete_from_list(cl);
bb44777
+        }
bb44777
+      } else {
bb44777
+        down_history(cl);
bb44777
+      }
bb44777
+      if (MODE_SRC) {
bb44777
+        search_off(cl);
bb44777
+      }
bb44777
+	  return TRUE;
bb44777
+	}
bb44777
+	return FALSE;
bb44777
+}
bb44777
+
bb44777
+static gboolean
bb44777
 on_key_press(GtkCompletionLine *cl, GdkEventKey *event, gpointer data)
bb44777
 {
bb44777
   static gint tt_id = -1;
bb44777
Only in gmrun-0.9.2.new/src: gtkcompletionline.cc.orig