video: Make the overlay clickable

And add missing accessible labels at the same time.

Fixes: #4522
This commit is contained in:
Matthias Clasen
2023-06-17 19:00:14 -04:00
parent 407304f2ed
commit d705a7effa
2 changed files with 23 additions and 0 deletions

View File

@@ -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"));

View File

@@ -16,6 +16,15 @@
<property name="valign">3</property>
<property name="icon-name">media-playback-start-symbolic</property>
<property name="icon-size">2</property>
<property name="accessible-role">button</property>
<accessibility>
<property name="label" translatable="1">Play</property>
</accessibility>
<child>
<object class="GtkGestureClick">
<signal name="pressed" handler="overlay_clicked_cb"/>
</object>
</child>
<layout>
<property name="measure">1</property>
</layout>