...
|
...
|
@@ -266,6 +266,7 @@ fprintf(stderr,"RENDER\n");
|
266
|
266
|
|| (event.type==SDL_TEXTEDITING && (windowID=event.edit.windowID)!=SDL_GetWindowID(re->ui->win))
|
267
|
267
|
|| (event.type==SDL_TEXTINPUT && (windowID=event.text.windowID)!=SDL_GetWindowID(re->ui->win))
|
268
|
268
|
) {
|
|
269
|
+ printout_t *printout;
|
269
|
270
|
for(i=0;i<re->sizeprints;i++) {
|
270
|
271
|
if(re->prints[i].ui!=NULL
|
271
|
272
|
&& windowID==SDL_GetWindowID(re->prints[i].ui->win)) {
|
...
|
...
|
@@ -274,16 +275,17 @@ fprintf(stderr,"RENDER\n");
|
274
|
275
|
}
|
275
|
276
|
if(i>=re->sizeprints)
|
276
|
277
|
continue; /* unknown window */
|
|
278
|
+ printout=re->prints+i;
|
277
|
279
|
switch(event.type) {
|
278
|
280
|
case SDL_WINDOWEVENT:
|
279
|
281
|
if(event.window.event==SDL_WINDOWEVENT_SHOWN
|
280
|
282
|
|| event.window.event==SDL_WINDOWEVENT_EXPOSED) {
|
281
|
|
- re->prints[i].dirty=1;
|
|
283
|
+ printout->dirty=1;
|
282
|
284
|
} else if((event.window.event==SDL_WINDOWEVENT_RESIZED
|
283
|
285
|
|| event.window.event==SDL_WINDOWEVENT_SIZE_CHANGED)
|
284
|
|
- && (event.window.data1!=re->prints[i].ui->w || event.window.data2!=re->prints[i].ui->h)) {
|
285
|
|
- reui_resize(re->prints[i].ui,event.window.data1,event.window.data2);
|
286
|
|
- re->prints[i].dirty=1;
|
|
286
|
+ && (event.window.data1!=printout->ui->w || event.window.data2!=printout->ui->h)) {
|
|
287
|
+ reui_resize(printout->ui,event.window.data1,event.window.data2);
|
|
288
|
+ printout->dirty=1;
|
287
|
289
|
} else if(event.window.event==SDL_WINDOWEVENT_CLOSE) {
|
288
|
290
|
re_delprint(re,i);
|
289
|
291
|
}
|
...
|
...
|
@@ -291,6 +293,17 @@ fprintf(stderr,"RENDER\n");
|
291
|
293
|
case SDL_KEYDOWN:
|
292
|
294
|
if(event.key.keysym.sym==SDLK_ESCAPE) {
|
293
|
295
|
re_delprint(re,i);
|
|
296
|
+ } else if(event.key.keysym.sym==SDLK_DOWN || event.key.keysym.sym==SDLK_UP) {
|
|
297
|
+ if(event.key.keysym.sym==SDLK_UP && printout->originline==0)
|
|
298
|
+ break; /* nothing to do, at top */
|
|
299
|
+ printout->originline+=((event.key.keysym.sym==SDLK_UP)?-1:1);
|
|
300
|
+ printout->dirty=1;
|
|
301
|
+ } else if(event.key.keysym.sym==SDLK_LEFT || event.key.keysym.sym==SDLK_RIGHT) {
|
|
302
|
+ if(event.key.keysym.sym==SDLK_LEFT && printout->origincol==0)
|
|
303
|
+ break; /* nothing to do, at top */
|
|
304
|
+ printout->origincol+=((event.key.keysym.sym==SDLK_LEFT)?-1:1)*8;
|
|
305
|
+ printout->origincol=(printout->origincol<0)?0:printout->origincol;
|
|
306
|
+ printout->dirty=1;
|
294
|
307
|
}
|
295
|
308
|
break;
|
296
|
309
|
}
|
...
|
...
|
@@ -1861,7 +1874,7 @@ re_drawcontents(re_t *re, printout_t *printout)
|
1861
|
1874
|
if(printout==NULL) {
|
1862
|
1875
|
reui_fill(ui,x0,y0+(curline-originline)*ui->fontheight,w,ui->fontheight+1,"\xef\xef\xef\xff");
|
1863
|
1876
|
} else {
|
1864
|
|
- for(y=y0;y<(y0+h);y+=ui->fontheight*2)
|
|
1877
|
+ for(y=y0+(printout->originline%2)*ui->fontheight;y<(y0+h);y+=ui->fontheight*2)
|
1865
|
1878
|
reui_fill(ui,x0,y,w,ui->fontheight+1,"\xef\xef\xef\xff");
|
1866
|
1879
|
}
|
1867
|
1880
|
/* highlight the selection */
|