vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Mon Dec 31 15:38:50 2018 +0200| [638cf7ef5fc40cd78084849c801bb396b8a6c400] | committer: Rémi Denis-Courmont
display: reorient mouse pointer position Handle non-standard video orientation when translating the cursor coordinates. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=638cf7ef5fc40cd78084849c801bb396b8a6c400 --- src/video_output/display.c | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/src/video_output/display.c b/src/video_output/display.c index 093889f61a..5bff2867b2 100644 --- a/src/video_output/display.c +++ b/src/video_output/display.c @@ -236,12 +236,48 @@ void vout_display_TranslateMouseState(vout_display_t *vd, vlc_mouse_t *video, return; } + const int wx = window->i_x, wy = window->i_y; + int x, y; + + switch (vd->source.orientation) { + case ORIENT_TOP_LEFT: + x = wx; + y = wy; + break; + case ORIENT_TOP_RIGHT: + x = place.width - wx; + y = wy; + break; + case ORIENT_BOTTOM_LEFT: + x = wx; + y = place.height - wy; + break; + case ORIENT_BOTTOM_RIGHT: + x = place.width - wx; + y = place.height - wy; + break; + case ORIENT_LEFT_TOP: + x = wy; + y = wx; + break; + case ORIENT_LEFT_BOTTOM: + x = wy; + y = place.width - wx; + break; + case ORIENT_RIGHT_TOP: + x = place.height - wy; + y = wx; + break; + case ORIENT_RIGHT_BOTTOM: + x = place.height - wy; + y = place.width - wx; + break; + } + video->i_x = vd->source.i_x_offset - + (int64_t)(window->i_x - place.x) - * vd->source.i_visible_width / place.width; + + (int64_t)(x - place.x) * vd->source.i_visible_width / place.width; video->i_y = vd->source.i_y_offset - + (int64_t)(window->i_y - place.y) - * vd->source.i_visible_height / place.height; + + (int64_t)(y - place.y) * vd->source.i_visible_height / place.height; video->i_pressed = window->i_pressed; video->b_double_click = window->b_double_click; } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
