diff console/libgnt/gnttree.c @ 14216:e9dd2f76e61b

[gaim-migrate @ 16897] A couple more keybindings. committer: Tailor Script <tailor@pidgin.im>
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sun, 20 Aug 2006 07:11:09 +0000
parents e9304dd00992
children f3ef96e8428f
line wrap: on
line diff
--- a/console/libgnt/gnttree.c	Sun Aug 20 02:24:15 2006 +0000
+++ b/console/libgnt/gnttree.c	Sun Aug 20 07:11:09 2006 +0000
@@ -490,6 +490,41 @@
 			else
 				redraw_tree(tree);
 		}
+		else if (strcmp(text+1, GNT_KEY_PGDOWN) == 0)
+		{
+			row = get_next(tree->bottom);
+			if (row)
+			{
+				int dist = get_distance(tree->top, tree->current);
+				tree->top = tree->bottom;
+				tree->current = get_next_n_opt(tree->top, dist, NULL);
+				redraw_tree(tree);
+			}
+			else if (tree->current != tree->bottom)
+			{
+				tree->current = tree->bottom;
+				redraw_tree(tree);
+			}
+		}
+		else if (strcmp(text+1, GNT_KEY_PGUP) == 0)
+		{
+			if (tree->top != tree->root)
+			{
+				int dist = get_distance(tree->top, tree->current);
+				row = get_prev_n(tree->top, widget->priv.height - 1 -
+					tree->show_title * 2 - 2 * (GNT_WIDGET_IS_FLAG_SET(widget, GNT_WIDGET_NO_BORDER) == 0));
+				if (row == NULL)
+					row = tree->root;
+				tree->top = row;
+				tree->current = get_next_n_opt(tree->top, dist, NULL);
+				redraw_tree(tree);
+			}
+			else if (tree->current != tree->top)
+			{
+				tree->current = tree->top;
+				redraw_tree(tree);
+			}
+		}
 	}
 	else if (iscntrl(text[0]))
 	{