Maybe in future I can try to start another thread from inside scummvm and initialize glib etc. and listen to d-bus events in parallel to SDL event loop (mainly to support power management better) but it is not trivial. Actually in that case maybe abandoning SDL and starting from scratch would be easier and allowed more flexibility. It is a lot of work though. Also I like current state where all Maemo devices running OS2006,7,8,maemo5 can run same scummvm binary compiled from same source code. Supporting each device and each Maemo version separately is more work too.
There is another problem concerning Broken Sword 1. The inventory bar opens in top of the screen. Even when playing in full screen mode and trying to handle the first object in inventory bar, the N900 application menu is triggered although it is not visible on screen.
SDL_SysWMinfo wminfo; Display *display; Window xwindow; XSetWindowAttributes xattr; Atom atom; int one = 1; SDL_VERSION(&wminfo.version); if (!SDL_GetWMInfo(&wminfo)) return; wminfo.info.x11.lock_func(); display = wminfo.info.x11.display; xwindow = wminfo.info.x11.fswindow; XUnmapWindow(display, xwindow); xattr.override_redirect = False; XChangeWindowAttributes(display, xwindow, CWOverrideRedirect, &xattr); atom = HDATOM(_NET_WM_STATE_FULLSCREEN); XChangeProperty(display, xwindow, HDATOM(_NET_WM_STATE), XA_ATOM, 32, PropModeReplace, (unsigned char *) &atom, 1); XChangeProperty(display, xwindow, HDATOM(_HILDON_NON_COMPOSITED_WINDOW), XA_INTEGER, 32, PropModeReplace, (unsigned char *) &one, 1); XMapWindow(display, xwindow); wminfo.info.x11.unlock_func();