X-Git-Url: https://develop.uap-core.de/gitweb/uwplayer.git/blobdiff_plain/57cee2c27458b34d1f407877b04ad3dee7915708..f650faf7190d0326f0a56ad549159bcfa6cd749b:/application/main.c diff --git a/application/main.c b/application/main.c index 18d534b..ecaf72b 100644 --- a/application/main.c +++ b/application/main.c @@ -122,18 +122,18 @@ int main(int argc, char** argv) { NULL); // load settings - if(load_settings()) { + if(load_config()) { return 1; } - + MainWindow *window = WindowCreate(display); toplevel_window = window->window; - // random numbers only used for creating tmp dirs + // random numbers used for creating tmp dirs and for random playback srand(time(NULL)); WindowShow(window); - XtAppMainLoop(app); + AppMainLoop(app); return 0; } @@ -160,3 +160,25 @@ char* GetOpenFileArg(void) { void CleanOpenFileArg(void) { open_file_arg = NULL; } + +static Window app_player_window = 0; + +void SetPlayerWindow(Window w) { + app_player_window = w; +} + +/* + * Extended Xt main loop, that also handles external window events + */ +void AppMainLoop(XtAppContext app) { + while(!XtAppGetExitFlag(app)) { + XEvent event; + XtAppNextEvent(app, &event); + + if(app_player_window != 0 && event.xany.window == app_player_window) { + WindowHandlePlayerEvent(GetMainWindow(), &event); + } else { + XtDispatchEvent(&event); + } + } +}