summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2013-08-24 00:08:00 +0200
committerBastien Nocera <hadess@hadess.net>2014-11-25 18:51:48 +0100
commit2706ca99dee84e394d3e82310bfcb5a856c0c799 (patch)
treea56423f818f0813b9f16f14b47273fa1147b8213
parent078fa92d446b4a2ba38eaf3affa40c2ecc1fdea2 (diff)
downloadtotem-2706ca99dee84e394d3e82310bfcb5a856c0c799.tar.gz
main: Handle "Powerpoint" buttons on remotes
Some remotes, including the Logitech Presenter R800: http://www.logitech.com/en-us/product/professional-presenter-r800-business have a number of buttons bound to make it easier to use Powerpoint presentations. We bind some of the buttons used on those presenters to functions in Totem to allow starting/stopping playback and seeking. https://bugzilla.gnome.org/show_bug.cgi?id=704608
-rw-r--r--src/totem-object.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/totem-object.c b/src/totem-object.c
index 9a737f6ed..7fc75fab8 100644
--- a/src/totem-object.c
+++ b/src/totem-object.c
@@ -3201,6 +3201,7 @@ totem_object_handle_key_press (TotemObject *totem, GdkEventKey *event)
{
GdkModifierType mask;
gboolean retval;
+ gboolean switch_rtl = FALSE;
retval = TRUE;
@@ -3225,6 +3226,11 @@ totem_object_handle_key_press (TotemObject *totem, GdkEventKey *event)
bacon_video_widget_dvd_event (totem->bvw,
BVW_DVD_CHAPTER_MENU);
break;
+ case GDK_KEY_F5:
+ /* Start presentation button */
+ totem_object_set_fullscreen (totem, TRUE);
+ totem_object_play_pause (totem);
+ break;
case GDK_KEY_F11:
case GDK_KEY_f:
case GDK_KEY_F:
@@ -3319,18 +3325,22 @@ totem_object_handle_key_press (TotemObject *totem, GdkEventKey *event)
break;
case GDK_KEY_Left:
case GDK_KEY_Right:
+ switch_rtl = TRUE;
+ /* fall through */
+ case GDK_KEY_Page_Up:
+ case GDK_KEY_Page_Down:
if (bacon_video_widget_has_menus (totem->bvw) == FALSE) {
gboolean is_forward;
- is_forward = (event->keyval == GDK_KEY_Right);
+ is_forward = (event->keyval == GDK_KEY_Right || event->keyval == GDK_KEY_Page_Up);
/* Switch direction in RTL environment */
- if (gtk_widget_get_direction (totem->win) == GTK_TEXT_DIR_RTL)
+ if (switch_rtl && gtk_widget_get_direction (totem->win) == GTK_TEXT_DIR_RTL)
is_forward = !is_forward;
if (totem_object_is_seekable (totem))
totem_object_handle_seek (totem, event, is_forward);
} else {
- if (event->keyval == GDK_KEY_Left)
+ if (event->keyval == GDK_KEY_Left || event->keyval == GDK_KEY_Page_Down)
bacon_video_widget_dvd_event (totem->bvw, BVW_DVD_ROOT_MENU_LEFT);
else
bacon_video_widget_dvd_event (totem->bvw, BVW_DVD_ROOT_MENU_RIGHT);