Code

screen_interface: add method mouse(), replacing CMD_MOUSE_EVENT
[ncmpc.git] / src / keyboard.c
index e2234f3cee8a7e2373cce1d9af6da82b385f1164..86f2afe1fe84616dd0828b1ea3c6a747e9e1de10 100644 (file)
@@ -38,11 +38,6 @@ gcc_pure
 static command_t
 translate_key(int key)
 {
-#ifdef HAVE_GETMOUSE
-       if (key == KEY_MOUSE)
-               return CMD_MOUSE_EVENT;
-#endif
-
        return get_key_command(key);
 }
 
@@ -55,6 +50,25 @@ keyboard_event(gcc_unused GIOChannel *source,
        if (ignore_key(key))
                return true;
 
+#ifdef HAVE_GETMOUSE
+       if (key == KEY_MOUSE) {
+               MEVENT event;
+
+               /* retrieve the mouse event from curses */
+#ifdef PDCURSES
+               nc_getmouse(&event);
+#else
+               getmouse(&event);
+#endif
+
+               begin_input_event();
+               do_mouse_event(event.x, event.y, event.bstate);
+               end_input_event();
+
+               return true;
+       }
+#endif
+
        command_t cmd = translate_key(key);
        if (cmd == CMD_NONE)
                return true;