From: Vineeth TM Date: Wed, 9 Mar 2016 23:44:57 +0000 (+0900) Subject: gtkbasesink: post message to application for unhandled keyboard/mouse events X-Git-Tag: 1.16.2~686^2~17 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c7dae7d057c62e6f48dedfcd81944967f0f9aa6d;p=platform%2Fupstream%2Fgst-plugins-good.git gtkbasesink: post message to application for unhandled keyboard/mouse events https://bugzilla.gnome.org/show_bug.cgi?id=763403 --- diff --git a/ext/gtk/gstgtkbasesink.c b/ext/gtk/gstgtkbasesink.c index f0019bf..44c8cbd 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); } }