3 Commits

Author SHA1 Message Date
Rafał Dzięgiel
eb2e760de2 clapper-gtk: video: Fix checks when inhibiting session 2025-04-26 23:12:40 +02:00
Rafał Dzięgiel
d3a169fccd clapper-gtk: video: Fix sink property type checks
Sometimes property might return a subclass type when object is subclassed.
This especially happens with custom GdkPaintable implementations.
For this reason instead of comparing object type, check if it inherits what we want.
2025-01-22 20:27:02 +01:00
Rafał Dzięgiel
0cee4e90a5 clapper: server: Fix missing include of <sys/socket.h>
We need it for "AF_INET" symbols. Otherwise build fails on some systems.
2025-01-21 22:53:47 +01:00
3 changed files with 4 additions and 16 deletions

View File

@@ -10,7 +10,7 @@ project('clapper', 'c',
glib_req = '>= 2.76.0'
gst_req = '>= 1.24.0'
gtk4_req = '>= 4.16.0'
gtk4_req = '>= 4.10.0'
adw_req = '>= 1.4.0'
clapper_version = meson.project_version().split('-')[0]

View File

@@ -909,7 +909,7 @@ _set_inhibit_session (ClapperGtkVideo *self, gboolean inhibit)
root = gtk_widget_get_root (GTK_WIDGET (self));
if (!root && !GTK_IS_WINDOW (root)) {
if (!root || !GTK_IS_WINDOW (root)) {
GST_WARNING_OBJECT (self, "Cannot %sinhibit session "
"without root window", (inhibit) ? "" : "un");
return;
@@ -919,7 +919,7 @@ _set_inhibit_session (ClapperGtkVideo *self, gboolean inhibit)
* as it goes away early when unrooting */
app = g_application_get_default ();
if (!app && !GTK_IS_APPLICATION (app)) {
if (!app || !GTK_IS_APPLICATION (app)) {
GST_WARNING_OBJECT (self, "Cannot %sinhibit session "
"without window application set", (inhibit) ? "" : "un");
return;
@@ -1036,19 +1036,6 @@ _video_sink_changed_cb (ClapperPlayer *player,
gst_object_unref (vsink);
}
#ifndef G_OS_WIN32
if (widget) {
GtkWidget *offload = gtk_graphics_offload_new (widget);
gtk_graphics_offload_set_black_background (GTK_GRAPHICS_OFFLOAD (offload), TRUE);
GST_DEBUG_OBJECT (self, "Sink widget is placed within graphics offload");
g_object_unref (widget);
widget = g_object_ref_sink (offload);
}
#endif
if (!widget) {
GST_DEBUG_OBJECT (self, "No widget from video sink, using placeholder");
widget = g_object_ref_sink (clapper_gtk_video_placeholder_new ());

View File

@@ -18,6 +18,7 @@
*/
#include <gst/gst.h>
#include <sys/socket.h>
#include "clapper-server-mdns-private.h"