From 9fe6b9b86b1e7e029a9feaf80060d355fd1e9d4d Mon Sep 17 00:00:00 2001 From: Vineeth TM Date: Thu, 10 Mar 2016 08:44:57 +0900 Subject: [PATCH] gtkbasesink: post message to application for unhandled keyboard/mouse events https://bugzilla.gnome.org/show_bug.cgi?id=763403 --- ext/gtk/gstgtkbasesink.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/ext/gtk/gstgtkbasesink.c b/ext/gtk/gstgtkbasesink.c index f0019bf264..44c8cbd46e 100644 --- a/ext/gtk/gstgtkbasesink.c +++ b/ext/gtk/gstgtkbasesink.c @@ -286,10 +286,14 @@ gst_gtk_base_sink_navigation_send_event (GstNavigation * navigation, GST_TRACE_OBJECT (sink, "navigation event %" GST_PTR_FORMAT, structure); - if (GST_IS_PAD (pad)) { - if (GST_IS_EVENT (event)) - gst_pad_send_event (pad, event); - + if (GST_IS_PAD (pad) && GST_IS_EVENT (event)) { + if (!gst_pad_send_event (pad, gst_event_ref (event))) { + /* If upstream didn't handle the event we'll post a message with it + * for the application in case it wants to do something with it */ + gst_element_post_message (GST_ELEMENT_CAST (sink), + gst_navigation_message_new_event (GST_OBJECT_CAST (sink), event)); + } + gst_event_unref (event); gst_object_unref (pad); } }