GNOME Bugzilla – Bug 580351
Detect DVD menus and handle keypresses
Last modified: 2009-06-30 13:00:50 UTC
When a DVD menu is showing, we'd want the arrows to move the cursor around, rather than seek or change the volume. The following is the backend implementation for xine-lib. Jan, any chance to do the same for the GStreamer backend?
Created attachment 133378 [details] [review] totem-has-dvd-menus.patch
Created attachment 134534 [details] [review] Patch to add 'is_menu' flag to totem-gst DVD Here's a patch to do the equivalent for the GStreamer backend, using the new navigation API in gst-plugins-base 0.10.23 It's possible with this API to know which directions are valid for button selections, which might be useful for accessibility, or for perhaps moving the widget selection out of the video widget when the user presses down and there's no DVD button below?
I should also mention that the API for the navigation query is in gst-plugins-base 0.10.23, but the query won't succeed until resindvd answers it, which code has not yet landed. Until then, is_menu is always false.
Looks fine, don't forget to add a ChangeLog entry as well.
commit 989331bbe8430e3d7736597e4d827969f5e49fc2 Author: Jan Schmidt <thaytan@noraisin.net> Date: Wed May 13 13:20:25 2009 +0100 DVD navigation: Set a flag 'is_menu' whenever there are buttons 2009-05-13 Jan Schmidt <thaytan@noraisin.net> * src/backend/bacon-video-widget-gst-0.10.c (bvw_do_navigation_query), (bvw_handle_element_message), (bacon_video_widget_has_menus): * src/backend/bacon-video-widget.h: Provide a method to know if there are buttons currently onscreen.
Reopening, we're missing the front-end bits.
commit ad8c539af703d7eca4faff5d6016739d5ee69228 Author: Bastien Nocera <hadess@hadess.net> Date: Tue Jun 30 14:00:14 2009 +0100 Bug 580351 – Detect DVD menus and handle keypresses 2009-06-30 Bastien Nocera <hadess@hadess.net> * src/totem-object.c (totem_action_handle_key_press): When there's a DVD menu showing, use the arrow keys to navigate around, and the Enter key to select (Closes: #580351)