--- backends/sdl/events.cpp.orig	2007-08-22 11:50:21.000000000 +0200
+++ backends/sdl/events.cpp	2007-08-23 07:48:47.000000000 +0200
@@ -297,6 +297,14 @@
 			return true;
 
 		case SDL_MOUSEBUTTONDOWN:
+#if defined QTOPIA
+			b = event.kbd.flags = SDLModToOSystemKeyFlags(SDL_GetModState());
+			// Ctrl key simulates right-click
+			if (b == KBD_CTRL)
+				event.type = EVENT_RBUTTONDOWN;
+			else
+				event.type = EVENT_LBUTTONDOWN;
+#else
 			if (ev.button.button == SDL_BUTTON_LEFT)
 				event.type = EVENT_LBUTTONDOWN;
 			else if (ev.button.button == SDL_BUTTON_RIGHT)
@@ -309,18 +317,28 @@
 #endif
 			else
 				break;
+#endif
 
 			fillMouseEvent(event, ev.button.x, ev.button.y);
 
 			return true;
 
 		case SDL_MOUSEBUTTONUP:
+#if defined QTOPIA
+			b = event.kbd.flags = SDLModToOSystemKeyFlags(SDL_GetModState());
+			// Ctrl key simulates right-click
+			if (b == KBD_CTRL)
+				event.type = EVENT_RBUTTONUP;
+			else
+				event.type = EVENT_LBUTTONUP;
+#else
 			if (ev.button.button == SDL_BUTTON_LEFT)
 				event.type = EVENT_LBUTTONUP;
 			else if (ev.button.button == SDL_BUTTON_RIGHT)
 				event.type = EVENT_RBUTTONUP;
 			else
 				break;
+#endif
 			fillMouseEvent(event, ev.button.x, ev.button.y);
 
 			return true;
@@ -486,6 +504,7 @@
 		event.type = EVENT_KEYDOWN;
 		event.kbd.keycode = SDLK_F5;
 		event.kbd.ascii = mapKey(SDLK_F5, ev.key.keysym.mod, 0);
+		return true;
 	}
 	// Nap center (space) to tab (default action )
 	// I wanted to map the calendar button but the calendar comes up

