summaryrefslogtreecommitdiff
path: root/framebuffer/fb_frontend_sdl.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2009-02-11 20:55:50 +0000
committerVincent Sanders <vince@netsurf-browser.org>2009-02-11 20:55:50 +0000
commit5060882795b3534bca9b20dc11476027f15f1f6f (patch)
tree70bd77298a4684406a0548a631283814c6e8348f /framebuffer/fb_frontend_sdl.c
parent7875677123693aa024dccd5aab79314010767783 (diff)
downloadnetsurf-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.c44
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);
}
/*