mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 05:06:17 +00:00
gtk: Export _display_size_to_stream_size()
Export _display_size_to_stream_size() so that GstNavigation implementors can translate from display coordinates to stream coordinates before pushing the events upstream to the DVD source, for example. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/974>
This commit is contained in:
parent
056f8ce6ca
commit
604278a194
2 changed files with 10 additions and 5 deletions
|
@ -284,9 +284,9 @@ _fit_stream_to_allocated_size (GtkGstBaseWidget * base_widget,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
void
|
||||||
_display_size_to_stream_size (GtkGstBaseWidget * base_widget, gdouble x,
|
gtk_gst_base_widget_display_size_to_stream_size (GtkGstBaseWidget * base_widget,
|
||||||
gdouble y, gdouble * stream_x, gdouble * stream_y)
|
gdouble x, gdouble y, gdouble * stream_x, gdouble * stream_y)
|
||||||
{
|
{
|
||||||
gdouble stream_width, stream_height;
|
gdouble stream_width, stream_height;
|
||||||
GtkAllocation allocation;
|
GtkAllocation allocation;
|
||||||
|
@ -337,7 +337,8 @@ gtk_gst_base_widget_button_event (GtkWidget * widget, GdkEventButton * event)
|
||||||
GDK_BUTTON_PRESS ? "mouse-button-press" : "mouse-button-release";
|
GDK_BUTTON_PRESS ? "mouse-button-press" : "mouse-button-release";
|
||||||
gdouble x, y;
|
gdouble x, y;
|
||||||
|
|
||||||
_display_size_to_stream_size (base_widget, event->x, event->y, &x, &y);
|
gtk_gst_base_widget_display_size_to_stream_size (base_widget, event->x,
|
||||||
|
event->y, &x, &y);
|
||||||
|
|
||||||
gst_navigation_send_mouse_event (GST_NAVIGATION (element), key_type,
|
gst_navigation_send_mouse_event (GST_NAVIGATION (element), key_type,
|
||||||
event->button, x, y);
|
event->button, x, y);
|
||||||
|
@ -358,7 +359,8 @@ gtk_gst_base_widget_motion_event (GtkWidget * widget, GdkEventMotion * event)
|
||||||
if (GST_IS_NAVIGATION (element)) {
|
if (GST_IS_NAVIGATION (element)) {
|
||||||
gdouble x, y;
|
gdouble x, y;
|
||||||
|
|
||||||
_display_size_to_stream_size (base_widget, event->x, event->y, &x, &y);
|
gtk_gst_base_widget_display_size_to_stream_size (base_widget, event->x,
|
||||||
|
event->y, &x, &y);
|
||||||
|
|
||||||
gst_navigation_send_mouse_event (GST_NAVIGATION (element), "mouse-move",
|
gst_navigation_send_mouse_event (GST_NAVIGATION (element), "mouse-move",
|
||||||
0, x, y);
|
0, x, y);
|
||||||
|
|
|
@ -91,6 +91,9 @@ void gtk_gst_base_widget_finalize (GObject * object);
|
||||||
gboolean gtk_gst_base_widget_set_format (GtkGstBaseWidget * widget, GstVideoInfo * v_info);
|
gboolean gtk_gst_base_widget_set_format (GtkGstBaseWidget * widget, GstVideoInfo * v_info);
|
||||||
void gtk_gst_base_widget_set_buffer (GtkGstBaseWidget * widget, GstBuffer * buffer);
|
void gtk_gst_base_widget_set_buffer (GtkGstBaseWidget * widget, GstBuffer * buffer);
|
||||||
void gtk_gst_base_widget_set_element (GtkGstBaseWidget * widget, GstElement * element);
|
void gtk_gst_base_widget_set_element (GtkGstBaseWidget * widget, GstElement * element);
|
||||||
|
void gtk_gst_base_widget_display_size_to_stream_size (GtkGstBaseWidget * base_widget,
|
||||||
|
gdouble x, gdouble y,
|
||||||
|
gdouble * stream_x, gdouble * stream_y);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue