+ GtkTreePath *path; // = gtk_tree_path_new();
+ gint *indices;
+ gdouble value;
+ EventViewerData *event_viewer_data = (EventViewerData*)data;
+
+ gtk_tree_view_get_cursor(GTK_TREE_VIEW(event_viewer_data->tree_v), &path, NULL);
+ if(path == NULL)
+ {
+ /* No prior cursor, put it at beginning of page and let the execution do */
+ path = gtk_tree_path_new_from_indices(0, -1);
+ gtk_tree_view_set_cursor(GTK_TREE_VIEW(event_viewer_data->tree_v), path, NULL, FALSE);
+ }
+
+ indices = gtk_tree_path_get_indices(path);
+
+ value = gtk_adjustment_get_value(event_viewer_data->vadjust_c);
+
+ if(arg1 == GTK_MOVEMENT_DISPLAY_LINES)
+ {
+ /* Move one line */
+ if(arg2 == 1)
+ {
+ /* move one line down */
+ if(indices[0] == event_viewer_data->num_visible_events - 1)
+ {
+ if(value + event_viewer_data->num_visible_events <=
+ event_viewer_data->number_of_events -1)
+ {
+ event_viewer_data->currently_selected_event += 1;
+ // gtk_adjustment_set_value(event_viewer_data->vadjust_c, value+1);
+ //gtk_tree_path_free(path);
+ //path = gtk_tree_path_new_from_indices(event_viewer_data->num_visible_events-1, -1);
+ //gtk_tree_view_set_cursor(GTK_TREE_VIEW(event_viewer_data->tree_v), path, NULL, FALSE);
+ g_signal_stop_emission_by_name(G_OBJECT(widget), "move-cursor");
+ }
+ }
+ } else {
+ /* Move one line up */
+ if(indices[0] == 0)
+ {
+ if(value - 1 >= 0 )
+ {
+ event_viewer_data->currently_selected_event -= 1;
+ // gtk_adjustment_set_value(event_viewer_data->vadjust_c, value-1);
+ //gtk_tree_path_free(path);
+ //path = gtk_tree_path_new_from_indices(0, -1);
+ //gtk_tree_view_set_cursor(GTK_TREE_VIEW(event_viewer_data->tree_v), path, NULL, FALSE);
+ g_signal_stop_emission_by_name(G_OBJECT(widget), "move-cursor");
+ }
+
+ }
+ }
+
+ }
+
+ if(arg1 == GTK_MOVEMENT_PAGES)
+ {
+ /* Move one page */
+ if(arg2 == 1)
+ {
+ if(event_viewer_data->num_visible_events == 1)
+ value += 1 ;
+ /* move one page down */
+ if(value + event_viewer_data->num_visible_events-1 <=
+ event_viewer_data->number_of_events )
+ {
+ event_viewer_data->currently_selected_event += event_viewer_data->num_visible_events-1;
+ // gtk_adjustment_set_value(event_viewer_data->vadjust_c,
+ // value+(event_viewer_data->num_visible_events-1));
+ //gtk_tree_path_free(path);
+ //path = gtk_tree_path_new_from_indices(0, -1);
+ //gtk_tree_view_set_cursor(GTK_TREE_VIEW(event_viewer_data->tree_v), path, NULL, FALSE);
+ g_signal_stop_emission_by_name(G_OBJECT(widget), "move-cursor");
+ }
+ } else {
+ /* Move one page up */
+ if(event_viewer_data->num_visible_events == 1)
+ value -= 1 ;
+
+ if(indices[0] < event_viewer_data->num_visible_events - 2 )
+ {
+ if(value - (event_viewer_data->num_visible_events-1) >= 0)
+ {
+ event_viewer_data->currently_selected_event -= event_viewer_data->num_visible_events-1;
+
+ // gtk_adjustment_set_value(event_viewer_data->vadjust_c,
+ // value-(event_viewer_data->num_visible_events-1));
+ //gtk_tree_path_free(path);
+ //path = gtk_tree_path_new_from_indices(0, -1);
+ //gtk_tree_view_set_cursor(GTK_TREE_VIEW(event_viewer_data->tree_v), path, NULL, FALSE);
+ g_signal_stop_emission_by_name(G_OBJECT(widget), "move-cursor");
+
+ } else {
+ /* Go to first Event */
+ event_viewer_data->currently_selected_event == 0 ;
+ // gtk_adjustment_set_value(event_viewer_data->vadjust_c,
+ // 0);
+ //gtk_tree_path_free(path);
+ //path = gtk_tree_path_new_from_indices(0, -1);
+ //gtk_tree_view_set_cursor(GTK_TREE_VIEW(event_viewer_data->tree_v), path, NULL, FALSE);
+ g_signal_stop_emission_by_name(G_OBJECT(widget), "move-cursor");
+
+ }
+ }
+
+ }
+
+ }
+
+ if(arg1 == GTK_MOVEMENT_BUFFER_ENDS)
+ {
+ /* Move to the ends of the buffer */
+ if(arg2 == 1)