Horizontally scroll in larger increments when on the

Linux console because of slow update of unaccelerated fb
This commit is contained in:
Hisham Muhammad 2006-07-23 22:45:24 +00:00
parent eb2803ce79
commit 2ecf199cf7
5 changed files with 17 additions and 4 deletions

6
CRT.c
View File

@ -106,6 +106,8 @@ int CRT_colorScheme = 0;
int CRT_colors[LAST_COLORELEMENT] = { 0 };
char* CRT_termType;
// TODO: pass an instance of Settings instead.
void CRT_init(int delay, int colorScheme) {
@ -124,8 +126,8 @@ void CRT_init(int delay, int colorScheme) {
} else {
CRT_hasColors = false;
}
char* termType = getenv("TERM");
if (String_eq(termType, "xterm") || String_eq(termType, "xterm-color") || String_eq(termType, "vt220")) {
CRT_termType = getenv("TERM");
if (String_eq(CRT_termType, "xterm") || String_eq(CRT_termType, "xterm-color") || String_eq(CRT_termType, "vt220")) {
define_key("\033[H", KEY_HOME);
define_key("\033[F", KEY_END);
define_key("\033OP", KEY_F(1));

2
CRT.h
View File

@ -107,6 +107,8 @@ extern int CRT_colorScheme;
extern int CRT_colors[LAST_COLORELEMENT];
char* CRT_termType;
// TODO: pass an instance of Settings instead.
void CRT_init(int delay, int colorScheme);

View File

@ -11,6 +11,8 @@ What's new in version 0.6.3
ListBox (and related classes) to Panel.
* Have configure actually fail when needed libraries or
headers are not found.
* Horizontally scroll in larger increments when on the
Linux console because of slow update of unaccelerated fb
What's new in version 0.6.2

View File

@ -40,6 +40,7 @@ struct Panel_ {
Vector* items;
int selected;
int scrollV, scrollH;
int scrollHAmount;
int oldSelected;
bool needsRedraw;
RichString header;
@ -92,6 +93,10 @@ void Panel_init(Panel* this, int x, int y, int w, int h, char* type, bool owner)
this->oldSelected = 0;
this->needsRedraw = true;
this->header.len = 0;
if (String_eq(CRT_termType, "linux"))
this->scrollHAmount = 40;
else
this->scrollHAmount = 5;
}
void Panel_done(Panel* this) {
@ -327,12 +332,12 @@ void Panel_onKey(Panel* this, int key) {
break;
case KEY_LEFT:
if (this->scrollH > 0) {
this->scrollH -= 5;
this->scrollH -= this->scrollHAmount;
this->needsRedraw = true;
}
break;
case KEY_RIGHT:
this->scrollH += 5;
this->scrollH += this->scrollHAmount;
this->needsRedraw = true;
break;
case KEY_PPAGE:

View File

@ -13,6 +13,7 @@ in the source distribution for its full text.
#include "Vector.h"
#include "CRT.h"
#include "RichString.h"
#include "ListItem.h"
#include <math.h>
#include <stdbool.h>
@ -41,6 +42,7 @@ struct Panel_ {
Vector* items;
int selected;
int scrollV, scrollH;
int scrollHAmount;
int oldSelected;
bool needsRedraw;
RichString header;