diff options
author | Vincent Sanders <vince@netsurf-browser.org> | 2009-02-11 20:55:50 +0000 |
---|---|---|
committer | Vincent Sanders <vince@netsurf-browser.org> | 2009-02-11 20:55:50 +0000 |
commit | 5060882795b3534bca9b20dc11476027f15f1f6f (patch) | |
tree | 70bd77298a4684406a0548a631283814c6e8348f /framebuffer/fb_frontend_sdl.c | |
parent | 7875677123693aa024dccd5aab79314010767783 (diff) | |
download | netsurf-5060882795b3534bca9b20dc11476027f15f1f6f.tar.gz netsurf-5060882795b3534bca9b20dc11476027f15f1f6f.tar.bz2 |
Fix SDL frontend input
svn path=/trunk/netsurf/; revision=6446
Diffstat (limited to 'framebuffer/fb_frontend_sdl.c')
-rw-r--r-- | framebuffer/fb_frontend_sdl.c | 44 |
1 files changed, 40 insertions, 4 deletions
diff --git a/framebuffer/fb_frontend_sdl.c b/framebuffer/fb_frontend_sdl.c index 6041abcae..a953912ad 100644 --- a/framebuffer/fb_frontend_sdl.c +++ b/framebuffer/fb_frontend_sdl.c @@ -34,6 +34,7 @@ #include "framebuffer/fb_gui.h" #include "framebuffer/fb_plotters.h" #include "framebuffer/fb_frontend.h" +#include "framebuffer/fb_cursor.h" #include "utils/log.h" @@ -74,6 +75,8 @@ framebuffer_t *fb_os_init(int argc, char** argv) newfb->ptr = sdl_screen->pixels; newfb->linelen = sdl_screen->pitch; + SDL_ShowCursor(SDL_DISABLE); + return newfb; } @@ -89,10 +92,40 @@ void fb_os_input(struct gui_window *g) switch (event.type) { case SDL_KEYDOWN: - printf("The %s key was pressed!\n", - SDL_GetKeyName(event.key.keysym.sym)); + + switch (event.key.keysym.sym) { + + case SDLK_j: + fb_window_scroll(g, 0, 100); + break; + + case SDLK_k: + fb_window_scroll(g, 0, -100); + break; + + case SDLK_q: + browser_window_destroy(g->bw); + break; + + default: + printf("The %s key was pressed!\n", + SDL_GetKeyName(event.key.keysym.sym)); + break; + } break; + case SDL_MOUSEMOTION: + fb_cursor_move_abs(framebuffer, + event.motion.x, + event.motion.y); + break; + + case SDL_MOUSEBUTTONDOWN: + fb_cursor_click(framebuffer, g, BROWSER_MOUSE_CLICK_1); + /* printf("Mouse button %d pressed at (%d,%d)\n", + event.button.button, event.button.x, event.button.y);*/ + break; + case SDL_QUIT: browser_window_destroy(g->bw); } @@ -104,10 +137,13 @@ fb_os_option_override(void) { } +/* called by generic code to inform os code of screen update */ void -fb_os_redraw(struct gui_window *g, struct bbox_s *box) +fb_os_redraw(struct bbox_s *box) { - SDL_UpdateRect(sdl_screen, box->x0, box->y0, box->x1, box->y1); + SDL_UpdateRect(sdl_screen, + box->x0, box->y0, + box->x1 - box->x0, box->y1 - box->y0); } /* |