@@ -401,6 +401,32 @@ static void cocoa_input_poll(void *data)
401401 if (!apple)
402402 return ;
403403
404+ #ifdef IOS
405+ #ifdef HAVE_IOS_TOUCHMOUSE
406+ if (apple->window_pos_x > 0 || apple->mouse_grabbed )
407+ {
408+ apple->mouse_rel_x = apple->window_pos_x - apple->mouse_x_last ;
409+ apple->mouse_x_last = apple->window_pos_x ;
410+ }
411+ #endif
412+ #else
413+ apple->mouse_rel_x = apple->window_pos_x - apple->mouse_x_last ;
414+ apple->mouse_x_last = apple->window_pos_x ;
415+ #endif
416+
417+ #ifdef IOS
418+ #ifdef HAVE_IOS_TOUCHMOUSE
419+ if (apple->window_pos_y > 0 || apple->mouse_grabbed )
420+ {
421+ apple->mouse_rel_y = apple->window_pos_y - apple->mouse_y_last ;
422+ apple->mouse_y_last = apple->window_pos_y ;
423+ }
424+ #endif
425+ #else
426+ apple->mouse_rel_y = apple->window_pos_y - apple->mouse_y_last ;
427+ apple->mouse_y_last = apple->window_pos_y ;
428+ #endif
429+
404430 for (i = 0 ; i < apple->touch_count || i == 0 ; i++)
405431 {
406432 struct video_viewport vp;
@@ -573,75 +599,40 @@ static int16_t cocoa_input_state(
573599 return (id && id < RETROK_LAST) && apple_key_state[rarch_keysym_lut[(enum retro_key)id]];
574600 case RETRO_DEVICE_MOUSE:
575601 case RARCH_DEVICE_MOUSE_SCREEN:
602+ switch (id)
576603 {
577- int16_t val = 0;
578- switch (id )
604+ case RETRO_DEVICE_ID_MOUSE_X:
605+ if (device == RARCH_DEVICE_MOUSE_SCREEN )
579606 {
580- case RETRO_DEVICE_ID_MOUSE_X:
581- if (device == RARCH_DEVICE_MOUSE_SCREEN)
582- {
583607#ifdef IOS
584- return apple->window_pos_x;
608+ return apple->window_pos_x;
585609#else
586- return apple->window_pos_x * cocoa_screen_get_backing_scale_factor ();
610+ return apple->window_pos_x * cocoa_screen_get_backing_scale_factor ();
587611#endif
588- }
589- #ifdef IOS
590- #ifdef HAVE_IOS_TOUCHMOUSE
591- if (apple->window_pos_x > 0 || apple->mouse_grabbed )
592- {
593- val = apple->window_pos_x - apple->mouse_x_last ;
594- apple->mouse_x_last = apple->window_pos_x ;
595- }
596- else
597- val = apple->mouse_rel_x ;
598- #else
599- val = apple->mouse_rel_x ;
600- #endif
601- #else
602- val = apple->window_pos_x - apple->mouse_x_last ;
603- apple->mouse_x_last = apple->window_pos_x ;
604- #endif
605- return val;
606- case RETRO_DEVICE_ID_MOUSE_Y:
607- if (device == RARCH_DEVICE_MOUSE_SCREEN)
608- {
609- #ifdef IOS
610- return apple->window_pos_y ;
611- #else
612- return apple->window_pos_y * cocoa_screen_get_backing_scale_factor ();
613- #endif
614- }
612+ }
613+ return apple->mouse_rel_x ;
614+ case RETRO_DEVICE_ID_MOUSE_Y:
615+ if (device == RARCH_DEVICE_MOUSE_SCREEN)
616+ {
615617#ifdef IOS
616- #ifdef HAVE_IOS_TOUCHMOUSE
617- if (apple->window_pos_y > 0 || apple->mouse_grabbed )
618- {
619- val = apple->window_pos_y - apple->mouse_y_last ;
620- apple->mouse_y_last = apple->window_pos_y ;
621- }
622- else
623- val = apple->mouse_rel_y ;
624- #else
625- val = apple->mouse_rel_y ;
626- #endif
618+ return apple->window_pos_y ;
627619#else
628- val = apple->window_pos_y - apple->mouse_y_last ;
629- apple->mouse_y_last = apple->window_pos_y ;
620+ return apple->window_pos_y * cocoa_screen_get_backing_scale_factor ();
630621#endif
631- return val;
632- case RETRO_DEVICE_ID_MOUSE_LEFT:
633- return apple->mouse_buttons & 1 ;
634- case RETRO_DEVICE_ID_MOUSE_RIGHT:
635- return apple->mouse_buttons & 2 ;
636- case RETRO_DEVICE_ID_MOUSE_WHEELUP:
637- return apple->mouse_wu ;
638- case RETRO_DEVICE_ID_MOUSE_WHEELDOWN:
639- return apple->mouse_wd ;
640- case RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELUP:
641- return apple->mouse_wl ;
642- case RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELDOWN:
643- return apple->mouse_wr ;
644622 }
623+ return apple->mouse_rel_y ;
624+ case RETRO_DEVICE_ID_MOUSE_LEFT:
625+ return apple->mouse_buttons & 1 ;
626+ case RETRO_DEVICE_ID_MOUSE_RIGHT:
627+ return apple->mouse_buttons & 2 ;
628+ case RETRO_DEVICE_ID_MOUSE_WHEELUP:
629+ return apple->mouse_wu ;
630+ case RETRO_DEVICE_ID_MOUSE_WHEELDOWN:
631+ return apple->mouse_wd ;
632+ case RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELUP:
633+ return apple->mouse_wl ;
634+ case RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELDOWN:
635+ return apple->mouse_wr ;
645636 }
646637 break ;
647638 case RETRO_DEVICE_POINTER:
0 commit comments