 +    while (oeo.tag != OrbEventOption_None) {
 +        switch (oeo.tag) {
 +            case OrbEventOption_Key:
-+                //keysym.unicode = oeo.key.character;
++                keysym.unicode = oeo.key.character;
 +                keysym.scancode = oeo.key.scancode;
 +                keysym.sym = keymap[oeo.key.scancode];
 +                keysym.mod = KMOD_NONE;

+static bool last_button_middle = false;
+static bool last_button_right = false;
+
+// TODO: Find out why NetSurf recieves NULL chars when the keysym.unicode field is used
+void ORBITAL_PumpEvents(_THIS)
+{
+    SDL_keysym keysym;

diff -rupNw source-original/src/video/orbital/SDL_orbitalevents.c source/src/video/orbital/SDL_orbitalevents.c
--- source-original/src/video/orbital/SDL_orbitalevents.c	1970-01-01 01:00:00.000000000 +0100
+++ source/src/video/orbital/SDL_orbitalevents.c	2018-05-01 17:31:52.770229654 +0200
@@ -0,0 +1,197 @@
+/*
+    SDL - Simple DirectMedia Layer
+    Copyright (C) 1997-2012 Sam Lantinga
