Commit 7a1f1540 by kollo

corrections in objc_draw / hidemouse @ framebuffer

Mausrest erschien beim Klicken eines Buttons. Das ist hermit behoben.
Allgemein wurde nun bei den meisten Grafikroutinen in der Framebuffer-Version das
Abschalten des Mauscursors erzwungen, allerdings nur temporaer bis zur naechten Mausbewegung.
Dadurch sind die Artefakte verschwunden (wenn man die Maus ruhig haelt, während gezeichnet wird).

Es macht keinen Sinn, die Maus nach jeder (kleinen) Zeichenoperation immer wieder anzuschalten, weil das die
ganze Grafik total ausbremst. Abfragefunktionen sollten den Mauscursor deshalb explizit einschalten.

Die Kommandos HIDEM und SHOWM allerdings schalten die Maus dauerhaft aus (und wieder auf normal).
parent a16db887
......@@ -629,7 +629,6 @@ static void draw_object(OBJECT *tree,int idx,int rootx,int rooty) {
break;
}
if(tree[idx].ob_state & SELECTED) {
fillcolor=invert_color(fillcolor);
textcolor=invert_color(textcolor);
......@@ -639,36 +638,33 @@ static void draw_object(OBJECT *tree,int idx,int rootx,int rooty) {
if(tree[idx].ob_flags & DEFAULT) randdicke--;
if (drawbg) {
if (drawbg) {
/* Outline und Shadow Zeichnen */
if(tree[idx].ob_state & OUTLINED) {
SetForeground(gem_colors[bgcolor]);
FillRectangle(obx-3,oby-3,obw+6,obh+6);
SetForeground(gem_colors[framecolor]);
DrawRectangle(obx-3,oby-3,obw+6,obh+6);
}
if(tree[idx].ob_state & SHADOWED) {
SetForeground(gem_colors[framecolor]);
FillRectangle(obx+obw,oby+window[usewindow].chh/2,window[usewindow].chw,obh);
FillRectangle(obx+window[usewindow].chw,oby+obh,obw,window[usewindow].chh/2);
}
/* Zeichnen */
if(tree[idx].ob_state & OUTLINED) {
/* Hintergrund zeichnen */
SetForeground(gem_colors[bgcolor]);
FillRectangle(obx-3,oby-3,obw+6,obh+6);
SetForeground(gem_colors[framecolor]);
DrawRectangle(obx-3,oby-3,obw+6,obh+6);
}
if(tree[idx].ob_state & SHADOWED) {
SetForeground(gem_colors[framecolor]);
FillRectangle(obx+obw,oby+window[usewindow].chh/2,window[usewindow].chw,obh);
FillRectangle(obx+window[usewindow].chw,oby+obh,obw,window[usewindow].chh/2);
}
/* Hintergrund zeichnen */
SetForeground(gem_colors[bgcolor]);
if(!opaque) FillRectangle(obx+1,oby+1,obw-1,obh-1);
if(pattern) {
SetForeground(gem_colors[fillcolor]);
SetFillStyle(FillStippled);
set_fill(pattern+1);
FillRectangle(obx,oby,obw,obh);
SetFillStyle(FillSolid);
if(!opaque) FillRectangle(obx+1,oby+1,obw-1,obh-1);
if(pattern) {
SetForeground(gem_colors[fillcolor]);
SetFillStyle(FillStippled);
set_fill(pattern+1);
FillRectangle(obx,oby,obw,obh);
SetFillStyle(FillSolid);
}
}
}
/* Text zeichnen */
if(tree[idx].ob_state & DISABLED) textcolor=LWHITE;
......@@ -825,49 +821,26 @@ short objc_draw(OBJECT *tree,short start, short stop,short rootx,short rooty,sho
#endif
// TODO:
// if(clipw<=0 || cliph<=0) return(0);
#ifdef FRAMEBUFFER
FB_hide_mouse();
#endif
draw_object(tree,idx,rootx,rooty);
if(tree[idx].ob_flags & LASTOB) {
#ifdef FRAMEBUFFER
FB_show_mouse();
#endif
return(1);
}
if(tree[idx].ob_flags & LASTOB) return(1);
if(tree[idx].ob_head!=-1) {
if(!(tree[idx].ob_flags & HIDETREE)) {
objc_draw(tree,tree[idx].ob_head,tree[idx].ob_tail,tree[idx].ob_x+rootx,tree[idx].ob_y+rooty,clipw,cliph);
}
}
if(idx==stop) {
#ifdef FRAMEBUFFER
FB_show_mouse();
#endif
return(1);
}
if(idx==stop) return(1);
while(tree[idx].ob_next!=-1) {
idx=tree[idx].ob_next;
draw_object(tree,idx,rootx,rooty);
if(tree[idx].ob_flags & LASTOB) {
#ifdef FRAMEBUFFER
FB_show_mouse();
#endif
return(1);
}
if(tree[idx].ob_flags & LASTOB) return(1);
if(tree[idx].ob_head!=-1) {
if(!(tree[idx].ob_flags & HIDETREE)) objc_draw(tree,tree[idx].ob_head,tree[idx].ob_tail,tree[idx].ob_x+rootx,tree[idx].ob_y+rooty,clipw,cliph);
}
if(idx==stop) {
#ifdef FRAMEBUFFER
FB_show_mouse();
#endif
return(1);
}
if(idx==stop) return(1);
}
#ifdef FRAMEBUFFER
FB_show_mouse();
#endif
return(0);
}
......
......@@ -391,11 +391,11 @@ JNIEXPORT void JNICALL Java_net_sourceforge_x11basic_X11basicView_SetMouse(JNIEn
}
FB_put_event(&e);
NLOG("E");
FB_hide_mouse();
FB_hidex_mouse();
NLOG("H");
screen.mouse_x=x;
screen.mouse_y=y;
FB_show_mouse();
FB_showx_mouse();
NLOG("S");
invalidate_screen();
NLOG("}.");
......
......@@ -154,7 +154,7 @@ void Fb_Close() {
close(fbfd);
}
#endif
FB_hide_mouse();
FB_hidex_mouse();
#ifndef ANDROID
FB_close_mouse();
FB_close_keyboard();
......@@ -202,6 +202,16 @@ void FB_setgraphmode(int n) {
}
/* Hier folgen nun die Grafik-Routinen für primitive.
Es gibt immer zwei Versionen der Routinen,
1. Eine schnelle ohne Maus-Abschaltung (interne verwendung oder terminal emu)
2. Eine normale, bei der Mauszeiger nicht übermalt wird.
TODO:
Ist noch nicht vollstaendig aussortiert....
*/
/* This is a low-level Function, need to be fast, but does noch check
clipping */
......@@ -251,7 +261,9 @@ void FB_clip_off(G_CONTEXT *screen) {
}
void FB_plot(int x, int y) {
FB_hidex_mouse();
FB_PutPixel(x,y,screen.fcolor);
// FB_showx_mouse(); muss nicht sein (nur langsam) Mousebewegung aktiviert es wieder
}
unsigned short FB_point(int x, int y) {
if(x<0 || y<0 || x>=screen.width || y>=screen.height) return(0);
......@@ -505,7 +517,7 @@ void FB_DrawThickLine(int x0, int y0, int x1, int y1,int width, unsigned short c
}
}
void FB_line(int x1,int y1,int x2,int y2) {
static void FB_doline(int x1,int y1,int x2,int y2) {
if(screen.linewidth>1) FB_DrawThickLine(x1,y1,x2,y2,screen.linewidth, screen.fcolor);
else {
if(y1==y2) {
......@@ -514,24 +526,34 @@ void FB_line(int x1,int y1,int x2,int y2) {
} else FB_DrawLine(x1,y1,x2,y2,screen.fcolor);
}
}
void FB_line(int x1,int y1,int x2,int y2) {
FB_hidex_mouse();
FB_doline(x1,y1,x2,y2);
// FB_showx_mouse();
}
void FB_lines(XPoint *points, int n, int mode) {
int i;
FB_hidex_mouse();
if(n>1) {
for(i=1;i<n;i++)
FB_line(points[i-1].x,points[i-1].y,points[i].x,points[i].y);
FB_doline(points[i-1].x,points[i-1].y,points[i].x,points[i].y);
}
// FB_showx_mouse();
}
void FB_points(XPoint *points, int n, int mode) {
int i;
FB_hidex_mouse();
if(n) {
for(i=0;i<n;i++) FB_plot(points[i].x,points[i].y);
for(i=0;i<n;i++) FB_PutPixel(points[i].x,points[i].y,screen.fcolor);
}
// FB_showx_mouse();
}
void FB_box(int x1,int y1,int x2,int y2) {
int w,h;
FB_hidex_mouse();
/* Swap x1, x2 if required */
if(x1>x2) {int xtmp=x1;x1=x2;x2=xtmp;}
/* Swap y1, y2 if required */
......@@ -554,6 +576,7 @@ void FB_box(int x1,int y1,int x2,int y2) {
}
}
}
// FB_showx_mouse();
}
......@@ -566,29 +589,29 @@ void FillBox (int x, int y, int w, int h, unsigned short color) {
} else DrawHorizontalLine(x, i, w, color);
}
}
void FB_pbox(int x1, int y1, int x2, int y2) {
/* Swap x1, x2 if required */
if(x1>x2) {int xtmp=x1;x1=x2;x2=xtmp;}
/* Swap y1, y2 if required */
if(y1>y2) {int ytmp=y1;y1=y2;y2=ytmp;}
FB_hidex_mouse();
FillBox(x1,y1,x2-x1,y2-y1,screen.fcolor);
//FB_showx_mouse();
}
/* Clear whole screen */
void FB_Clear(G_CONTEXT *screen) {
unsigned short *ptr=(unsigned short *)screen->pixels;
int n=screen->size>>1;
int i;
FB_hidex_mouse();
for(i=0; i<n; i++) *ptr++=screen->bcolor;
//FB_showx_mouse();
}
/* Wird von Terminal Emulation verwendet*/
void Fb_Clear2(int y, int h, unsigned short color) {
if (y<0|| y+h>screen.height) return;
unsigned short *ptr = (unsigned short*)(screen.pixels+y*screen.scanline);
......@@ -651,7 +674,11 @@ void FB_copyarea(int x,int y,int w, int h, int tx,int ty) {
}
}
}
void FB_CopyArea(int x,int y,int w, int h, int tx,int ty) {
FB_hidex_mouse();
FB_copyarea(x,y,w,h,tx,ty);
//FB_showx_mouse();
}
......@@ -1144,7 +1171,7 @@ extern int ltextpflg;
void FB_DrawString(int x, int y, const char *t,int len,unsigned short chw, unsigned short chh) {
if(len>0) {
char buf[len+1];
FB_hide_mouse();
FB_hidex_mouse();
utf8(0,(unsigned short *)&buf); /*Startbedingungen herstellen*/
memcpy(buf,t,len);
buf[len]=0;
......@@ -1152,7 +1179,7 @@ void FB_DrawString(int x, int y, const char *t,int len,unsigned short chw, unsig
else if(chh==32 && chw==16) Fb_BlitText1632(x,y,screen.fcolor, screen.bcolor,buf);
else if(chh<8 || chw<8) Fb_BlitText57(x,y,screen.fcolor,screen.bcolor,buf);
else Fb_BlitText816_scale(x,y,screen.fcolor, screen.bcolor,buf,chw,chh);
FB_show_mouse();
//FB_showx_mouse();
}
}
......@@ -1690,7 +1717,9 @@ void fill2Poly(unsigned short color,int *point, int num) {
void FB_pPolygon(int *points, int n,int shape, int mode) {
FB_hidex_mouse();
fill2Poly(screen.fcolor,(int *)points,n);
//FB_showx_mouse();
}
......
......@@ -267,6 +267,7 @@ void FB_setfillrule(int);
void Fb_BlitBitmap(int x, int y,unsigned int w, unsigned int h,unsigned short aColor, unsigned short aBackColor, unsigned short graphmode, const unsigned char *bdata);
void FB_copyarea(int x,int y,int w, int h, int tx,int ty);
void FB_CopyArea(int x,int y,int w, int h, int tx,int ty);
int FB_get_color(unsigned char r, unsigned char g, unsigned char b);
void FB_setgraphmode(int n);
void Fb_Scroll(int target_y, int source_y, int height);
......
......@@ -1168,6 +1168,7 @@ void c_mouseevent(PARAMETER *plist,int e) { /*MOUSEEVENT x,y,k,rx,ry,s */
if(e>5 && plist[5].typ!=PL_LEER) varcastint(plist[5].integer,plist[5].pointer,global_mouses);
#elif defined FRAMEBUFFER
FB_mouse_events(1);
FB_showx_mouse();
#endif
#if defined USE_X11 || defined FRAMEBUFFER
XEvent event;
......@@ -1221,6 +1222,7 @@ void c_motionevent(PARAMETER *plist,int e) { /* x,y,b,rx,ry,s */
graphics();
#ifdef FRAMEBUFFER
FB_mouse_events(1);
FB_showx_mouse();
#endif
XWindowEvent(window[usewindow].display, window[usewindow].win,PointerMotionMask|ExposureMask, &event);
......@@ -1406,6 +1408,7 @@ void c_allevent(PARAMETER *plist,int e) {
graphics();
#ifdef FRAMEBUFFER
FB_mouse_events(1);
FB_showx_mouse();
FB_keyboard_events(1);
#endif
......
......@@ -87,7 +87,7 @@
#define DrawString(a,b,c,d) FB_DrawString(a,b-window[usewindow].baseline,c,d,window[usewindow].chw,window[usewindow].chh)
#define DrawLine(a,b,c,d) FB_line(a,b,c,d)
#define DrawPoint(a,b) FB_plot(a,b)
#define CopyArea(a,b,c,d,e,f) FB_copyarea(a,b,c,d,e,f)
#define CopyArea(a,b,c,d,e,f) FB_CopyArea(a,b,c,d,e,f)
#elif defined USE_SDL
#define SetFillRule(c) ;
#define SetFillStyle(c) ;
......
......@@ -85,33 +85,50 @@ BLACK,BLACK,BLACK,BLACK,BLACK,BLACK,BLACK,WHITE,WHITE,BLACK,BLACK,BLACK,BLACK,BL
0,0,0,0,0,0,BLACK,WHITE,WHITE,BLACK,0,0,0,0,0,0,
0,0,0,0,0,0,BLACK,WHITE,WHITE,BLACK,0,0,0,0,0,0};
static void FB_show_mouse_() {
/* Routines to display or hide the mouse cursor: */
static void FB_show_mouse_(int act) {
pthread_mutex_lock( &mutex1 );
if(act) screen.mouseshown=1;
if(screen.mouseshown && !mouse_mapped) {
mouse_mapped++;
FB_draw_sprite(screen.mousepat,screen.mousemask,screen.mouse_x-screen.mouse_ox,screen.mouse_y-screen.mouse_oy);
}
pthread_mutex_unlock( &mutex1 );
}
static void FB_hide_mouse_() {
static void FB_hide_mouse_(int stay) {
pthread_mutex_lock( &mutex1 );
if(screen.mouseshown && mouse_mapped) {
if(mouse_mapped) {
mouse_mapped=0;
FB_hide_sprite(screen.mouse_x-screen.mouse_ox,screen.mouse_y-screen.mouse_oy);
}
if(stay) screen.mouseshown=0;
pthread_mutex_unlock( &mutex1 );
}
/* This switches the mouse corsor on or off*/
void FB_show_mouse() {
screen.mouseshown=1;
FB_show_mouse_();
FB_show_mouse_(1);
}
void FB_hide_mouse() {
FB_hide_mouse_();
screen.mouseshown=0;
FB_hide_mouse_(1);
}
/* This makes sure that the mouse cursor is mapped if it is switched on
or not mapped */
void FB_showx_mouse() {
FB_show_mouse_(0);
}
void FB_hidex_mouse() {
FB_hide_mouse_(0);
}
void FB_defmouse(int form) {
FB_hide_mouse();
FB_hidex_mouse();
if(form==0 || form==7) {
screen.mousemask=(unsigned char *)mousealpha;
screen.mousepat=(unsigned short *)mousepat;
......@@ -127,29 +144,26 @@ void FB_defmouse(int form) {
FB_bmp2pixel(biene_bits,vmousepat,biene_width,biene_height,BLACK);
FB_bmp2mask(biene_mask_bits,vmousealpha,biene_mask_width,biene_mask_height);
screen.mouse_ox=screen.mouse_oy=8;
} else if(form==3) {
screen.mousemask=vmousealpha;
screen.mousepat=vmousepat;
FB_bmp2pixel(zeigehand_bits,vmousepat,zeigehand_width,zeigehand_height,BLACK);
FB_bmp2mask(zeigehand_mask_bits,vmousealpha,zeigehand_mask_width,zeigehand_mask_height);
screen.mouse_ox=screen.mouse_oy=0;
} else if(form==4) {
screen.mousemask=vmousealpha;
screen.mousepat=vmousepat;
FB_bmp2pixel(hand_bits,vmousepat,hand_width,hand_height,BLACK);
FB_bmp2mask(hand_mask_bits,vmousealpha,hand_mask_width,hand_mask_height);
screen.mouse_ox=screen.mouse_oy=8;
} else if(form==5) {
screen.mousemask=vmousealpha;
screen.mousepat=vmousepat;
FB_bmp2pixel(bombe_bits,vmousepat,bombe_width,bombe_height,RED);
FB_bmp2mask(bombe_mask_bits,vmousealpha,bombe_mask_width,bombe_mask_height);
screen.mouse_ox=screen.mouse_oy=8;
}
FB_show_mouse();
} else if(form==3) {
screen.mousemask=vmousealpha;
screen.mousepat=vmousepat;
FB_bmp2pixel(zeigehand_bits,vmousepat,zeigehand_width,zeigehand_height,BLACK);
FB_bmp2mask(zeigehand_mask_bits,vmousealpha,zeigehand_mask_width,zeigehand_mask_height);
screen.mouse_ox=screen.mouse_oy=0;
} else if(form==4) {
screen.mousemask=vmousealpha;
screen.mousepat=vmousepat;
FB_bmp2pixel(hand_bits,vmousepat,hand_width,hand_height,BLACK);
FB_bmp2mask(hand_mask_bits,vmousealpha,hand_mask_width,hand_mask_height);
screen.mouse_ox=screen.mouse_oy=8;
} else if(form==5) {
screen.mousemask=vmousealpha;
screen.mousepat=vmousepat;
FB_bmp2pixel(bombe_bits,vmousepat,bombe_width,bombe_height,RED);
FB_bmp2mask(bombe_mask_bits,vmousealpha,bombe_mask_width,bombe_mask_height);
screen.mouse_ox=screen.mouse_oy=8;
}
FB_showx_mouse();
}
......@@ -192,7 +206,7 @@ static void *mouse_handler(void *ptr) {
if(read_mouse_event(&m)) {
// printf("MOUSE: %02x/ %d %d \n",m.but,m.dx,m.dy);
if(m.dx || m.dy) {
FB_hide_mouse_();
FB_hide_mouse_(0);
screen.mouse_x+=m.dx;
screen.mouse_y-=m.dy;
if(screen.mouse_x<0) screen.mouse_x=0;
......@@ -208,7 +222,7 @@ static void *mouse_handler(void *ptr) {
e.xmotion.state=screen.mouse_s;
FB_put_event(&e);
}
FB_show_mouse_();
FB_show_mouse_(0);
}
if((m.but&7)!=screen.mouse_k) {
if(do_mouse_events) {
......
......@@ -22,6 +22,8 @@ void FB_Query_pointer(int *rx,int *ry,int *x,int *y,unsigned int *k);
void FB_defmouse(int form);
void FB_show_mouse();
void FB_hide_mouse();
void FB_showx_mouse();
void FB_hidex_mouse();
#ifdef ANDROID
#define FB_mouse_events(a) ;
#else
......
......@@ -20,6 +20,7 @@
#include "terminal.h"
#include "consolefont.h"
#include "framebuffer.h"
#include "raw_mouse.h"
#define LineLen win.ws_col
#define AnzLine win.ws_row
......@@ -512,4 +513,4 @@ finish:
}
}
void gg_outs(char *t){if(t) {while(*t) gg_out(*t++);}}
void gg_outs(char *t){if(t) {FB_hidex_mouse(); while(*t) gg_out(*t++);}}
......@@ -831,10 +831,10 @@ short form_dial(unsigned short fo_diflag,short x1,short y1,short w1,short h1,
#endif
/* Erst den Graphic-Kontext retten */
#ifdef FRAMEBUFFER
FB_hide_mouse();
FB_hidex_mouse();
FB_savecontext();
spix[sgccount]=FB_get_image(x2-3,y2-3,w2+7,h2+7,NULL,0,0);
FB_show_mouse();
// FB_showx_mouse();
#endif
#ifdef USE_X11
sgc[sgccount]=malloc(sizeof(GC));
......@@ -875,10 +875,10 @@ short form_dial(unsigned short fo_diflag,short x1,short y1,short w1,short h1,
activate();
#else
#ifdef FRAMEBUFFER
FB_hide_mouse();
FB_hidex_mouse();
FB_put_image(spix[sgccount],x2-3,y2-3);
FB_restorecontext();
FB_show_mouse();
// FB_showx_mouse();
#endif
#ifdef USE_X11
XCopyArea(window[usewindow].display, *(spix[sgccount]),window[usewindow].pix,window[usewindow].gc,0,0,w2+7,h2+7,x2-3,y2-3);
......@@ -953,6 +953,7 @@ short form_do(OBJECT *tree,short startob) {
FB_clear_events();
FB_mouse_events(1);
FB_keyboard_events(1);
FB_show_mouse();
#endif
/* erstes editierbare Objekt finden */
......@@ -987,9 +988,9 @@ short form_do(OBJECT *tree,short startob) {
if(e==0) return;
while(event.type!=SDL_MOUSEBUTTONDOWN && event.type!=SDL_KEYDOWN &&
event.type!=SDL_MOUSEBUTTONUP) {
handle_event(&window[usewindow],&event);
e=SDL_WaitEvent(&event);
if(e==0) return;
handle_event(&window[usewindow],&event);
e=SDL_WaitEvent(&event);
if(e==0) return;
}
#endif
#if defined USE_X11 || defined FRAMEBUFFER || defined USE_SDL
......@@ -1026,22 +1027,22 @@ short form_do(OBJECT *tree,short startob) {
sbut=objc_find(tree,0,7,global_mousex,global_mousey);
#endif
if(sbut!=-1) {
if((tree[sbut].ob_flags & SELECTABLE) && !(tree[sbut].ob_state & DISABLED)) {
if(tree[sbut].ob_flags & RBUTTON) {
idx=rootob(tree,sbut);
if(idx>=0) {
int start=tree[idx].ob_head;
int stop=tree[idx].ob_tail;
if(start>=0) {
idx=start;
while(1) {
if(tree[idx].ob_flags & RBUTTON) tree[idx].ob_state=tree[idx].ob_state & (~SELECTED);
if(idx==stop) break;
idx=tree[idx].ob_next;
}
}
if((tree[sbut].ob_flags & SELECTABLE) && !(tree[sbut].ob_state & DISABLED)) {
if(tree[sbut].ob_flags & RBUTTON) {
idx=rootob(tree,sbut);
if(idx>=0) {
int start=tree[idx].ob_head;
int stop=tree[idx].ob_tail;
if(start>=0) {
idx=start;
while(1) {
if(tree[idx].ob_flags & RBUTTON) tree[idx].ob_state=tree[idx].ob_state & (~SELECTED);
if(idx==stop) break;
idx=tree[idx].ob_next;
}
}
}
}
}
tree[sbut].ob_state^=SELECTED;
objc_draw(tree,0,-1,0,0,0,0);
......@@ -1379,14 +1380,14 @@ void do_menu_open(int nr) {
SDL_BlitSurface(window[usewindow].display, &a,schubladepix, &b);
#endif
#ifdef FRAMEBUFFER
FB_hide_mouse();
FB_hidex_mouse();
schubladepix=FB_get_image(schubladex,schubladey,schubladew,schubladeh,NULL,0,0);
#endif
schubladeff=1;
schubladenr=nr;
do_menu_edraw();
#ifdef FRAMEBUFFER
FB_show_mouse();
FB_showx_mouse();
#endif
}
void do_menu_edraw() {
......@@ -1438,9 +1439,9 @@ void do_menu_close() {
SDL_FreeSurface(schubladepix);
#endif
#ifdef FRAMEBUFFER
FB_hide_mouse();
FB_hidex_mouse();
FB_put_image(schubladepix,schubladex,schubladey);
FB_show_mouse();
FB_showx_mouse();
#endif
schubladeff=0;
}
......@@ -1471,8 +1472,8 @@ void do_menu_draw() {
SetForeground(gem_colors[BLACK]);
DrawLine(window[usewindow].x,window[usewindow].y+window[usewindow].chh,window[usewindow].x+window[usewindow].w,window[usewindow].y+window[usewindow].chh);
#ifdef FRAMEBUFFER
FB_restorecontext();
FB_show_mouse();
FB_restorecontext();
FB_show_mouse();
#endif
activate();
}
......@@ -1841,10 +1842,7 @@ char *fileselector(const char *titel, const char *pfad, const char *sel) {
make_filelist(objects,filenamen,filenamensel,anzfiles,showstart);
make_scaler(objects,anzfiles,showstart);
}
#endif
#if defined USE_X11 || defined FRAMEBUFFER
#elif defined USE_X11 || defined FRAMEBUFFER
XWindowEvent(window[usewindow].display, window[usewindow].win,
ButtonReleaseMask|ExposureMask , &event);
switch (event.type) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment