diff --git a/src/signal.rs b/src/signal.rs index 4abe0a00..d90d6556 100644 --- a/src/signal.rs +++ b/src/signal.rs @@ -7,6 +7,7 @@ use libc::c_void; use gobject_ffi::{self, GCallback}; +use glib_ffi::GType; use source::CallbackGuard; use translate::ToGlibPtr; @@ -19,6 +20,11 @@ pub unsafe fn connect(receiver: *mut gobject_ffi::GObject, signal_name: &str, tr handle } +pub unsafe fn override_class_handler(signal_name: &str, instance_type: GType, handler: GCallback) { + gobject_ffi::g_signal_override_class_handler(signal_name.to_glib_none().0, instance_type, handler); +} + + unsafe extern "C" fn destroy_closure(ptr: *mut c_void, _: *mut gobject_ffi::GClosure) { let _guard = CallbackGuard::new(); // destroy