Show More
@@ -1467,6 +1467,8 b' the following are valid keystrokes:' | |||
|
1467 | 1467 | pgup/pgdn [K/J] : go to previous/next item of same type |
|
1468 | 1468 | right/left-arrow [l/h] : go to child item / parent item |
|
1469 | 1469 | shift-left-arrow [H] : go to parent header / fold selected header |
|
1470 | g : go to the top | |
|
1471 | G : go to the bottom | |
|
1470 | 1472 | f : fold / unfold item, hiding/revealing its children |
|
1471 | 1473 | F : fold / unfold parent item and all of its ancestors |
|
1472 | 1474 | ctrl-l : scroll the selected line to the top of the screen |
@@ -1505,6 +1507,45 b' the following are valid keystrokes:' | |||
|
1505 | 1507 | self.stdscr.refresh() |
|
1506 | 1508 | self.stdscr.keypad(1) # allow arrow-keys to continue to function |
|
1507 | 1509 | |
|
1510 | def handlefirstlineevent(self): | |
|
1511 | """ | |
|
1512 | Handle 'g' to navigate to the top most file in the ncurses window. | |
|
1513 | """ | |
|
1514 | self.currentselecteditem = self.headerlist[0] | |
|
1515 | currentitem = self.currentselecteditem | |
|
1516 | # select the parent item recursively until we're at a header | |
|
1517 | while True: | |
|
1518 | nextitem = currentitem.parentitem() | |
|
1519 | if nextitem is None: | |
|
1520 | break | |
|
1521 | else: | |
|
1522 | currentitem = nextitem | |
|
1523 | ||
|
1524 | self.currentselecteditem = currentitem | |
|
1525 | ||
|
1526 | def handlelastlineevent(self): | |
|
1527 | """ | |
|
1528 | Handle 'G' to navigate to the bottom most file/hunk/line depending | |
|
1529 | on the whether the fold is active or not. | |
|
1530 | ||
|
1531 | If the bottom most file is folded, it navigates to that file and | |
|
1532 | stops there. If the bottom most file is unfolded, it navigates to | |
|
1533 | the bottom most hunk in that file and stops there. If the bottom most | |
|
1534 | hunk is unfolded, it navigates to the bottom most line in that hunk. | |
|
1535 | """ | |
|
1536 | currentitem = self.currentselecteditem | |
|
1537 | nextitem = currentitem.nextitem() | |
|
1538 | # select the child item recursively until we're at a footer | |
|
1539 | while nextitem is not None: | |
|
1540 | nextitem = currentitem.nextitem() | |
|
1541 | if nextitem is None: | |
|
1542 | break | |
|
1543 | else: | |
|
1544 | currentitem = nextitem | |
|
1545 | ||
|
1546 | self.currentselecteditem = currentitem | |
|
1547 | self.recenterdisplayedarea() | |
|
1548 | ||
|
1508 | 1549 | def confirmationwindow(self, windowtext): |
|
1509 | 1550 | "display an informational window, then wait for and return a keypress." |
|
1510 | 1551 | |
@@ -1725,6 +1766,10 b' are you sure you want to review/edit and' | |||
|
1725 | 1766 | self.togglefolded(foldparent=True) |
|
1726 | 1767 | elif keypressed in ["m"]: |
|
1727 | 1768 | self.commitMessageWindow() |
|
1769 | elif keypressed in ["g", "KEY_HOME"]: | |
|
1770 | self.handlefirstlineevent() | |
|
1771 | elif keypressed in ["G", "KEY_END"]: | |
|
1772 | self.handlelastlineevent() | |
|
1728 | 1773 | elif keypressed in ["?"]: |
|
1729 | 1774 | self.helpwindow() |
|
1730 | 1775 | self.stdscr.clear() |
General Comments 0
You need to be logged in to leave comments.
Login now