[prev in list] [next in list] [prev in thread] [next in thread]
List: enlightenment-svn
Subject: E CVS: proto codewarrior
From: enlightenment-cvs () lists ! sourceforge ! net
Date: 2005-01-31 23:04:55
Message-ID: E1CvkbH-0006Z5-Pr () sc8-pr-cvs1 ! sourceforge ! net
[Download RAW message or body]
Enlightenment CVS committal
Author : codewarrior
Project : e17
Module : proto
Dir : e17/proto/enterminus/src/bin
Modified Files:
ui.c
Log Message:
scrolling is starting to work. it doesnt segv as much as before, but we're
accessing junk (bad memory) at some point. baby steps. (=
===================================================================
RCS file: /cvsroot/enlightenment/e17/proto/enterminus/src/bin/ui.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- ui.c 28 Jan 2005 12:59:27 -0000 1.3
+++ ui.c 31 Jan 2005 23:04:54 -0000 1.4
@@ -50,6 +50,7 @@
Evas_Object *ob;
Term_EGlyph *gl;
Term_TGlyph *tgl;
+
for(i = 0; i < term->tcanvas->rows; i++) {
if(term->tcanvas->changed_rows[i] != 1) {
@@ -57,13 +58,15 @@
}
//printf("I is %d\n",i);
//printf("Rendering c-row %d g-row %d\n",i+ \
term->tcanvas->scroll_region_start,i);
- ig++;
+
for(j = 0; j < term->tcanvas->cols; j++) {
+
tgl = &term->tcanvas->grid[j +
(term->tcanvas->cols *
(i+ term->tcanvas->scroll_region_start)
)];
- //printf("Rendering row %d col %d\n",i+ term->tcanvas->scroll_region_start,j);
+
+ //printf("Rendering row %d col %d\n",i+ term->tcanvas->scroll_region_start-ig,j);
if(tgl->changed != 1) {
continue;
}
@@ -71,8 +74,17 @@
printf("Got escape in term_redraw()!\n");
continue;
}
- jg++; /* TODO: see if we need those extra vars or not */
- gl = &term->grid[j + (term->tcanvas->cols * i)];
+
+ if(i + term->tcanvas->scroll_region_start < (term->tcanvas->rows - \
1)*term->tcanvas->scroll_size) { + gl = &term->grid[j + (term->tcanvas->cols * \
i)]; + } else {
+ printf("DETECTED OVERFLOW!!! [s: %d, e: %d] [ig=%d]\n",
+ term->tcanvas->scroll_region_start,
+ term->tcanvas->scroll_region_end,
+ ig
+ );
+ gl = &term->grid[j + (term->tcanvas->cols * ig)];
+ }
//printf("Current location: [%d, %d]\n",j,i);
evas_object_text_font_set(gl->text, term->font.face, term->font.size);
@@ -121,6 +133,8 @@
//printf("showing %c\n",tgl->c);
tgl->changed = 0;
}
+ if(i + term->tcanvas->scroll_region_start < (term->tcanvas->rows - \
1)*term->tcanvas->scroll_size) + ig++;
term->tcanvas->changed_rows[i] = 0;
}
}
@@ -219,14 +233,14 @@
Term_TGlyph *tgl;
/* TODO: Finalize this shit before shipping code out */
x1--;y1--;x2--;y2--;
- printf("Clearing: %d %d, %d %d\n",x1,y1,x2,y2);
+ printf("Clearing: %d %d, %d \
%d\n",x1,y1+term->tcanvas->scroll_region_start,x2,y2+term->tcanvas->scroll_region_start);
for(i = y1; i <= y2; i++) {
for(j = x1; j <= x2; j++) {
- tgl = &term->tcanvas->grid[j + (term->tcanvas->cols * i)];
+ tgl = &term->tcanvas->grid[j + (term->tcanvas->cols * (i + \
term->tcanvas->scroll_region_start))]; //if(tgl->c != ' ' && tgl->c != '\0') {
tgl->c = '\0';
tgl->changed = 1;
- term->tcanvas->changed_rows[i] = 1;
+ term->tcanvas->changed_rows[i + term->tcanvas->scroll_region_start] = 1;
//}
}
}
@@ -240,9 +254,22 @@
Term_TGlyph *gl;
printf("Scrolling\n");
-
+
term->tcanvas->scroll_region_start+= rows;
- term->tcanvas->scroll_region_end+=rows;
+ term->tcanvas->scroll_region_end+=rows;
+
+ /* TODO: check for boundaries */
+ /* This stops the segfault, but makes no sense at all */
+ if(term->tcanvas->cur_row >
+ (term->tcanvas->rows-1) * term->tcanvas->scroll_size) {
+ printf("Gone past scroll area max, going back to start\n");
+ term->tcanvas->scroll_region_end = rows - 1;
+ term->tcanvas->cur_row = rows - 1;
+ }
+ if(term->tcanvas->scroll_region_start >
+ (term->tcanvas->rows-1) * term->tcanvas->scroll_size) {
+ term->tcanvas->scroll_region_start = 0;
+ }
/* fix this and make it set changed flags properly */
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic