handle key events in the player widget and pass them to mpv
[uwplayer.git] / application / window.c
index dd8700c..8132f86 100644 (file)
@@ -56,6 +56,15 @@ static void resizeEH(Widget widget, XtPointer data, XEvent *event, Boolean *disp
     WindowAdjustAspectRatio(data);
 }
 
+static void playerWidgetInputCB(Widget widget, XtPointer u, XtPointer c) {
+    MainWindow *win = u;
+    XmDrawingAreaCallbackStruct *cb = c;
+    
+    if(win->player && win->player->isactive) {
+        PlayerHandleInput(win, win->player, cb);
+    }
+}
+
 MainWindow* WindowCreate(Display *display) {
     Arg args[32];
     int n;
@@ -114,6 +123,7 @@ MainWindow* WindowCreate(Display *display) {
     XtSetArg(args[n], XmNbackground, BlackPixelOfScreen(XtScreen(window->window))); n++;
     window->player_widget = XmCreateDrawingArea(container, "player", args, n);
     XtManageChild(window->player_widget);
+    XtAddCallback(window->player_widget, XmNinputCallback, playerWidgetInputCB, window);
     XmProcessTraversal(window->player_widget, XmTRAVERSE_CURRENT);
     
     // get F keycode