d3d11videosink: Early terminate mouse/keyboard event handling
authorSeungha Yang <seungha@centricular.com>
Mon, 1 Aug 2022 19:16:31 +0000 (04:16 +0900)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Tue, 2 Aug 2022 14:24:22 +0000 (14:24 +0000)
... and add missing null check (plus coding style fix)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2824>

subprojects/gst-plugins-bad/sys/d3d11/gstd3d11videosink.cpp

index 3b516b0c3caf5944d57cb0db285dfa505fd568b6..76389d972529b1e15f1d86f6c762b98f32f504c1 100644 (file)
@@ -678,49 +678,50 @@ static void
 gst_d3d11_video_sink_key_event (GstD3D11Window * window, const gchar * event,
     const gchar * key, GstD3D11VideoSink * self)
 {
-  GstEvent *key_event = NULL;
-
-  if (self->enable_navigation_events) {
-    GST_LOG_OBJECT (self, "send key event %s, key %s", event, key);
-    if (0 == g_strcmp0 ("key-press", event))
-      key_event =
-          gst_navigation_event_new_key_press (key,
-          GST_NAVIGATION_MODIFIER_NONE);
-    else if (0 == g_strcmp0 ("key-release", event))
-      key_event =
-          gst_navigation_event_new_key_release (key,
-          GST_NAVIGATION_MODIFIER_NONE);
-
-    if (event)
-      gst_navigation_send_event_simple (GST_NAVIGATION (self), key_event);
+  GstEvent *key_event;
+
+  if (!self->enable_navigation_events || !event || !key)
+    return;
+
+  GST_LOG_OBJECT (self, "send key event %s, key %s", event, key);
+  if (g_strcmp0 ("key-press", event) == 0) {
+    key_event = gst_navigation_event_new_key_press (key,
+        GST_NAVIGATION_MODIFIER_NONE);
+  } else if (g_strcmp0 ("key-release", event) == 0) {
+    key_event = gst_navigation_event_new_key_release (key,
+        GST_NAVIGATION_MODIFIER_NONE);
+  } else {
+    return;
   }
+
+  gst_navigation_send_event_simple (GST_NAVIGATION (self), key_event);
 }
 
 static void
 gst_d3d11_video_mouse_key_event (GstD3D11Window * window, const gchar * event,
     gint button, gdouble x, gdouble y, GstD3D11VideoSink * self)
 {
-  GstEvent *mouse_event = NULL;
-
-  if (self->enable_navigation_events) {
-    GST_LOG_OBJECT (self,
-        "send mouse event %s, button %d (%.1f, %.1f)", event, button, x, y);
-    if (0 == g_strcmp0 ("mouse-button-press", event))
-      mouse_event =
-          gst_navigation_event_new_mouse_button_press (button, x, y,
-          GST_NAVIGATION_MODIFIER_NONE);
-    else if (0 == g_strcmp0 ("mouse-button-release", event))
-      mouse_event =
-          gst_navigation_event_new_mouse_button_release (button, x, y,
-          GST_NAVIGATION_MODIFIER_NONE);
-    else if (0 == g_strcmp0 ("mouse-move", event))
-      mouse_event =
-          gst_navigation_event_new_mouse_move (x, y,
-          GST_NAVIGATION_MODIFIER_NONE);
-
-    if (event)
-      gst_navigation_send_event_simple (GST_NAVIGATION (self), mouse_event);
+  GstEvent *mouse_event;
+
+  if (!self->enable_navigation_events || !event)
+    return;
+
+  GST_LOG_OBJECT (self,
+      "send mouse event %s, button %d (%.1f, %.1f)", event, button, x, y);
+  if (g_strcmp0 ("mouse-button-press", event) == 0) {
+    mouse_event = gst_navigation_event_new_mouse_button_press (button, x, y,
+        GST_NAVIGATION_MODIFIER_NONE);
+  } else if (g_strcmp0 ("mouse-button-release", event) == 0) {
+    mouse_event = gst_navigation_event_new_mouse_button_release (button, x, y,
+        GST_NAVIGATION_MODIFIER_NONE);
+  } else if (g_strcmp0 ("mouse-move", event) == 0) {
+    mouse_event = gst_navigation_event_new_mouse_move (x, y,
+        GST_NAVIGATION_MODIFIER_NONE);
+  } else {
+    return;
   }
+
+  gst_navigation_send_event_simple (GST_NAVIGATION (self), mouse_event);
 }
 
 static gboolean