Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
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
c23d4f12
Commit
c23d4f12
authored
9 years ago
by
Hisham
Browse files
Options
Download
Email Patches
Plain Diff
Fix behavior of ESC key, getting rid of the annoying delay.
Thank you @Explorer09 for the push! Closes #417.
parent
48254f92
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
CRT.c
+8
-0
CRT.c
CRT.h
+2
-0
CRT.h
InfoScreen.c
+1
-0
InfoScreen.c
ScreenManager.c
+6
-22
ScreenManager.c
with
17 additions
and
22 deletions
+17
-22
CRT.c
View file @
c23d4f12
...
...
@@ -125,6 +125,8 @@ void CRT_fatalError(const char* note) __attribute__ ((noreturn));
void CRT_handleSIGSEGV(int sgn);
#define KEY_ALT(x) KEY_F(60) + (x - 'A')
}*/
const
char
*
CRT_treeStrAscii
[
TREE_STR_COUNT
]
=
{
...
...
@@ -587,6 +589,11 @@ void CRT_init(int delay, int colorScheme) {
define_key
(
"
\033
[13~"
,
KEY_F
(
3
));
define_key
(
"
\033
[14~"
,
KEY_F
(
4
));
define_key
(
"
\033
[17;2~"
,
KEY_F
(
18
));
char
sequence
[
3
]
=
"
\033
a"
;
for
(
char
c
=
'a'
;
c
<=
'z'
;
c
++
)
{
sequence
[
1
]
=
c
;
define_key
(
sequence
,
KEY_ALT
(
'A'
+
(
c
-
'a'
)));
}
}
#ifndef DEBUG
signal
(
11
,
CRT_handleSIGSEGV
);
...
...
@@ -618,6 +625,7 @@ void CRT_init(int delay, int colorScheme) {
#else
mousemask
(
BUTTON1_RELEASED
,
NULL
);
#endif
}
void
CRT_done
()
{
...
...
This diff is collapsed.
Click to expand it.
CRT.h
View file @
c23d4f12
...
...
@@ -115,6 +115,8 @@ void CRT_fatalError(const char* note) __attribute__ ((noreturn));
void
CRT_handleSIGSEGV
(
int
sgn
);
#define KEY_ALT(x) KEY_F(60) + (x - 'A')
extern
const
char
*
CRT_treeStrAscii
[
TREE_STR_COUNT
];
...
...
This diff is collapsed.
Click to expand it.
InfoScreen.c
View file @
c23d4f12
...
...
@@ -116,6 +116,7 @@ void InfoScreen_run(InfoScreen* this) {
if
(
this
->
inc
->
active
)
move
(
LINES
-
1
,
CRT_cursorX
);
ESCDELAY
=
25
;
int
ch
=
getch
();
if
(
ch
==
ERR
)
{
...
...
This diff is collapsed.
Click to expand it.
ScreenManager.c
View file @
c23d4f12
...
...
@@ -189,6 +189,7 @@ void ScreenManager_run(ScreenManager* this, Panel** lastFocus, int* lastKey) {
}
int
prevCh
=
ch
;
ESCDELAY
=
25
;
ch
=
getch
();
HandlerResult
result
=
IGNORED
;
...
...
@@ -244,28 +245,11 @@ void ScreenManager_run(ScreenManager* this, Panel** lastFocus, int* lastKey) {
redraw
=
false
;
continue
;
}
else
if
(
ch
==
27
)
{
int
ch2
=
getch
();
if
(
ch2
!=
ERR
)
{
switch
(
ch2
)
{
case
'h'
:
ch
=
KEY_LEFT
;
break
;
case
'j'
:
ch
=
KEY_DOWN
;
break
;
case
'k'
:
ch
=
KEY_UP
;
break
;
case
'l'
:
ch
=
KEY_RIGHT
;
break
;
default:
ungetch
(
ch2
);
break
;
}
}
switch
(
ch
)
{
case
KEY_ALT
(
'H'
):
ch
=
KEY_LEFT
;
break
;
case
KEY_ALT
(
'J'
):
ch
=
KEY_DOWN
;
break
;
case
KEY_ALT
(
'K'
):
ch
=
KEY_UP
;
break
;
case
KEY_ALT
(
'L'
):
ch
=
KEY_RIGHT
;
break
;
}
redraw
=
true
;
if
(
Panel_eventHandlerFn
(
panelFocus
))
{
...
...
This diff is collapsed.
Click to expand it.
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
Menu
Projects
Groups
Snippets
Help