add cursor autohide
[uwplayer.git] / application / player.c
index 6cdba87..4764e98 100644 (file)
@@ -419,6 +419,23 @@ static Boolean get_player_window(XtPointer data) {
     return 0;
 }
 
+#define CURSOR_AUTOHIDE_THRESHOLD_SEC  4
+
+static Boolean hide_cursor(XtPointer data) {
+    MainWindow *win = data;
+    WindowHidePlayerCursor(win);
+    return 0;
+}
+
+static void check_hide_cursor(Player *p) {
+    MainWindow *win = GetMainWindow();
+    if(win->cursorhidden) return;
+    
+    if(p->playback_time - win->motion_playback_time > CURSOR_AUTOHIDE_THRESHOLD_SEC) {
+        AppExecProc(hide_cursor, win);
+    }
+}
+
 static void handle_json_rpc_event(Player *p, JSONValue *v, JSONValue *event) {
     if(!json_strcmp(event, "property-change")) {
         JSONValue *name = json_obj_get(&v->value.object, "name");
@@ -427,6 +444,7 @@ static void handle_json_rpc_event(Player *p, JSONValue *v, JSONValue *event) {
             if(data && data->type == JSON_NUMBER) {
                 p->playback_time = data->value.number.value;
                 //printf("playback-time: %f\n", p->playback_time);
+                check_hide_cursor(p);
             }
         } else if(!json_strcmp(name, "eof-reached")) {
             if(data && data->type == JSON_LITERAL && data->value.literal.literal == JSON_TRUE) {