summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2006-07-23 22:45:24 +0000
committerHisham Muhammad <hisham@gobolinux.org>2006-07-23 22:45:24 +0000
commit2ecf199cf70d24e1ac359640c21cc79a81b68461 (patch)
tree649cb393525772a260525fd58c33fa8d359ad624
parenteb2803ce79604b45c070edbe1e787f4373949cfe (diff)
Horizontally scroll in larger increments when on the
Linux console because of slow update of unaccelerated fb
-rw-r--r--CRT.c6
-rw-r--r--CRT.h2
-rw-r--r--ChangeLog2
-rw-r--r--Panel.c9
-rw-r--r--Panel.h2
5 files changed, 17 insertions, 4 deletions
diff --git a/CRT.c b/CRT.c
index 836c75ee..9c283c9b 100644
--- a/CRT.c
+++ b/CRT.c
@@ -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));
diff --git a/CRT.h b/CRT.h
index 155dc2ee..1f6020bd 100644
--- a/CRT.h
+++ b/CRT.h
@@ -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);
diff --git a/ChangeLog b/ChangeLog
index 6dbdf82c..0e070328 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/Panel.c b/Panel.c
index f014fca7..8c1bf560 100644
--- a/Panel.c
+++ b/Panel.c
@@ -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:
diff --git a/Panel.h b/Panel.h
index eda9c85d..512545b2 100644
--- a/Panel.h
+++ b/Panel.h
@@ -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;

© 2014-2024 Faster IT GmbH | imprint | privacy policy