diff --git a/docs/plugins/gst_plugins_cache.json b/docs/plugins/gst_plugins_cache.json
index 4ea667dd..abf9f84d 100644
--- a/docs/plugins/gst_plugins_cache.json
+++ b/docs/plugins/gst_plugins_cache.json
@@ -2567,6 +2567,34 @@
"readable": true,
"type": "GstGtk4Paintable",
"writable": false
+ },
+ "window-height": {
+ "blurb": "the height of the main widget rendering the paintable",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "0",
+ "max": "-1",
+ "min": "0",
+ "mutable": "playing",
+ "readable": true,
+ "type": "guint",
+ "writable": true
+ },
+ "window-width": {
+ "blurb": "the width of the main widget rendering the paintable",
+ "conditionally-available": false,
+ "construct": false,
+ "construct-only": false,
+ "controllable": false,
+ "default": "0",
+ "max": "-1",
+ "min": "0",
+ "mutable": "playing",
+ "readable": true,
+ "type": "guint",
+ "writable": true
}
},
"rank": "none"
diff --git a/video/gtk4/src/sink/imp.rs b/video/gtk4/src/sink/imp.rs
index 4e397a9c..38c5090b 100644
--- a/video/gtk4/src/sink/imp.rs
+++ b/video/gtk4/src/sink/imp.rs
@@ -26,10 +26,13 @@ use gst_gl::prelude::*;
use gst::prelude::*;
use gst::subclass::prelude::*;
use gst_base::subclass::prelude::*;
-use gst_video::subclass::prelude::*;
+use gst_video::{prelude::*, subclass::prelude::*};
use once_cell::sync::Lazy;
-use std::sync::{Mutex, MutexGuard};
+use std::sync::{
+ atomic::{AtomicBool, Ordering},
+ Mutex, MutexGuard,
+};
use crate::utils;
@@ -84,6 +87,14 @@ pub struct PaintableSink {
sender: Mutex