From d705a7effa89af4e8441e65105f2336761de5eb2 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 17 Jun 2023 19:00:14 -0400 Subject: [PATCH] video: Make the overlay clickable And add missing accessible labels at the same time. Fixes: #4522 --- gtk/gtkvideo.c | 14 ++++++++++++++ gtk/ui/gtkvideo.ui | 9 +++++++++ 2 files changed, 23 insertions(+) diff --git a/gtk/gtkvideo.c b/gtk/gtkvideo.c index df54a2d545..d91f84fc1a 100644 --- a/gtk/gtkvideo.c +++ b/gtk/gtkvideo.c @@ -31,6 +31,7 @@ #include "gtkpicture.h" #include "gtkrevealer.h" #include "gtkwidgetprivate.h" +#include "gtkgestureclick.h" #include "gtkprivate.h" /** @@ -128,6 +129,18 @@ gtk_video_pressed (GtkVideo *self) gtk_video_reveal_controls (self); } +static void +overlay_clicked_cb (GtkGestureClick *gesture, + unsigned int n_press, + double x, + double y, + gpointer data) +{ + GtkVideo *self = data; + + gtk_media_stream_set_playing (self->media_stream, TRUE); +} + static void gtk_video_realize (GtkWidget *widget) { @@ -360,6 +373,7 @@ gtk_video_class_init (GtkVideoClass *klass) gtk_widget_class_bind_template_child (widget_class, GtkVideo, controls_revealer); gtk_widget_class_bind_template_callback (widget_class, gtk_video_motion); gtk_widget_class_bind_template_callback (widget_class, gtk_video_pressed); + gtk_widget_class_bind_template_callback (widget_class, overlay_clicked_cb); gtk_widget_class_set_layout_manager_type (widget_class, GTK_TYPE_BIN_LAYOUT); gtk_widget_class_set_css_name (widget_class, I_("video")); diff --git a/gtk/ui/gtkvideo.ui b/gtk/ui/gtkvideo.ui index 94ee866107..14252b6d04 100644 --- a/gtk/ui/gtkvideo.ui +++ b/gtk/ui/gtkvideo.ui @@ -16,6 +16,15 @@ 3 media-playback-start-symbolic 2 + button + + Play + + + + + + 1