Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
htop
Commits
b4a63409
Commit
b4a63409
authored
Mar 03, 2010
by
Hisham Muhammad
Browse files
* Add Bash/emacs style navigation keys
(thanks to Daniel Schuler)
parent
282f16c4
Changes
5
Show whitespace changes
Inline
Side-by-side
CategoriesPanel.c
View file @
b4a63409
...
...
@@ -79,7 +79,9 @@ static HandlerResult CategoriesPanel_eventHandler(Panel* super, int ch) {
result
=
HANDLED
;
break
;
case
KEY_UP
:
case
KEY_CTRLP
:
case
KEY_DOWN
:
case
KEY_CTRLN
:
case
KEY_NPAGE
:
case
KEY_PPAGE
:
case
KEY_HOME
:
...
...
ChangeLog
View file @
b4a63409
...
...
@@ -7,6 +7,10 @@ What's new in version 0.8.4
(thanks to Tom Callaway)
* getopt-based long options and --no-color
(thanks to Vincent Launchbury)
* BUGFIX: Fix memory leak
(thanks to Pavol Rusnak)
* Add Bash/emacs style navigation keys
(thanks to Daniel Schuler)
What's new in version 0.8.3
...
...
Panel.c
View file @
b4a63409
...
...
@@ -64,6 +64,10 @@ char* PANEL_CLASS = "Panel";
#define PANEL_CLASS NULL
#endif
#define KEY_CTRLN 0016
/* control-n key */
#define KEY_CTRLP 0020
/* control-p key */
#define KEY_CTRLF 0006
/* control-f key */
#define KEY_CTRLB 0002
/* control-b key */
Panel
*
Panel_new
(
int
x
,
int
y
,
int
w
,
int
h
,
char
*
type
,
bool
owner
,
Object_Compare
compare
)
{
Panel
*
this
;
...
...
@@ -330,10 +334,12 @@ bool Panel_onKey(Panel* this, int key) {
assert
(
this
!=
NULL
);
switch
(
key
)
{
case
KEY_DOWN
:
case
KEY_CTRLN
:
if
(
this
->
selected
+
1
<
Vector_size
(
this
->
items
))
this
->
selected
++
;
return
true
;
case
KEY_UP
:
case
KEY_CTRLP
:
if
(
this
->
selected
>
0
)
this
->
selected
--
;
return
true
;
...
...
@@ -360,12 +366,14 @@ bool Panel_onKey(Panel* this, int key) {
return
true
;
#endif
case
KEY_LEFT
:
case
KEY_CTRLB
:
if
(
this
->
scrollH
>
0
)
{
this
->
scrollH
-=
5
;
this
->
needsRedraw
=
true
;
}
return
true
;
case
KEY_RIGHT
:
case
KEY_CTRLF
:
this
->
scrollH
+=
5
;
this
->
needsRedraw
=
true
;
return
true
;
...
...
Panel.h
View file @
b4a63409
...
...
@@ -65,6 +65,10 @@ extern char* PANEL_CLASS;
#define PANEL_CLASS NULL
#endif
#define KEY_CTRLN 0016
/* control-n key */
#define KEY_CTRLP 0020
/* control-p key */
#define KEY_CTRLF 0006
/* control-f key */
#define KEY_CTRLB 0002
/* control-b key */
Panel
*
Panel_new
(
int
x
,
int
y
,
int
w
,
int
h
,
char
*
type
,
bool
owner
,
Object_Compare
compare
);
...
...
ScreenManager.c
View file @
b4a63409
...
...
@@ -184,6 +184,7 @@ void ScreenManager_run(ScreenManager* this, Panel** lastFocus, int* lastKey) {
continue
;
}
case
KEY_LEFT
:
case
KEY_CTRLB
:
tryLeft:
if
(
focus
>
0
)
focus
--
;
...
...
@@ -192,6 +193,7 @@ void ScreenManager_run(ScreenManager* this, Panel** lastFocus, int* lastKey) {
goto
tryLeft
;
break
;
case
KEY_RIGHT
:
case
KEY_CTRLF
:
case
9
:
tryRight:
if
(
focus
<
this
->
itemCount
-
1
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment