report mouse coordinates after movement to dvdnav; this permits to enable button selection using the mouse; patch by Jonas Jermann and me

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19857 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
nicodvb 2006-09-16 15:25:31 +00:00
parent 2003857aa2
commit 78992c7fdc
3 changed files with 22 additions and 0 deletions

View File

@ -5157,6 +5157,13 @@ if(step_sec>0) {
pointer_x = cmd->args[0].v.i;
pointer_y = cmd->args[1].v.i;
rescale_input_coordinates(pointer_x, pointer_y, &dx, &dy);
#ifdef USE_DVDNAV
if(stream->type == STREAMTYPE_DVDNAV && dx > 0.0 && dy > 0.0) {
pointer_x = (int) (dx * (double) sh_video->disp_w);
pointer_y = (int) (dy * (double) sh_video->disp_h);
mp_dvdnav_update_mouse_pos(stream, pointer_x, pointer_y, &button);
}
#endif
break;
}
#ifdef USE_DVDNAV

View File

@ -481,6 +481,20 @@ int mp_dvdnav_handle_input(stream_t *stream, int cmd, int *button) {
return reset;
}
void mp_dvdnav_update_mouse_pos(stream_t *stream, int32_t x, int32_t y, int* button) {
dvdnav_priv_t * dvdnav_priv=(dvdnav_priv_t*)stream->priv;
dvdnav_t *nav = dvdnav_priv->dvdnav;
dvdnav_status_t status;
pci_t *pci = dvdnav_get_current_nav_pci(nav);
if(!pci) return;
status = dvdnav_mouse_select(nav, pci, x, y);
if(status == DVDNAV_STATUS_OK) dvdnav_get_current_highlight(nav, button);
else *button = -1;
}
stream_info_t stream_info_dvdnav = {
"DVDNAV stream",
"null",

View File

@ -44,5 +44,6 @@ int dvdnav_stream_sleeping(dvdnav_priv_t * dvdnav_priv);
void dvdnav_stream_fullstart(dvdnav_priv_t *dvdnav_priv);
unsigned int * dvdnav_stream_get_palette(dvdnav_priv_t * dvdnav_priv);
int mp_dvdnav_handle_input(stream_t *stream, int cmd, int *button);
void mp_dvdnav_update_mouse_pos(stream_t *stream, int32_t x, int32_t y, int* button);
#endif