@@ -79,6 +79,10 @@ pub trait WidgetImpl: WidgetImplExt + ObjectImpl {
79
79
self . parent_configure_event ( event)
80
80
}
81
81
82
+ fn window_state_event ( & self , event : & gdk:: EventWindowState ) -> Inhibit {
83
+ self . parent_window_state_event ( event)
84
+ }
85
+
82
86
fn damage_event ( & self , event : & gdk:: EventExpose ) -> Inhibit {
83
87
self . parent_damage_event ( event)
84
88
}
@@ -252,6 +256,7 @@ pub trait WidgetImplExt: ObjectSubclass {
252
256
fn parent_composited_changed ( & self ) ;
253
257
fn parent_compute_expand ( & self , hexpand : & mut bool , vexpand : & mut bool ) ;
254
258
fn parent_configure_event ( & self , event : & gdk:: EventConfigure ) -> Inhibit ;
259
+ fn parent_window_state_event ( & self , event : & gdk:: EventWindowState ) -> Inhibit ;
255
260
fn parent_damage_event ( & self , event : & gdk:: EventExpose ) -> Inhibit ;
256
261
fn parent_delete_event ( & self , event : & gdk:: Event ) -> Inhibit ;
257
262
fn parent_destroy ( & self ) ;
@@ -487,6 +492,22 @@ impl<T: WidgetImpl> WidgetImplExt for T {
487
492
}
488
493
}
489
494
495
+ fn parent_window_state_event ( & self , event : & gdk:: EventWindowState ) -> Inhibit {
496
+ unsafe {
497
+ let data = T :: type_data ( ) ;
498
+ let parent_class = data. as_ref ( ) . parent_class ( ) as * mut ffi:: GtkWidgetClass ;
499
+ if let Some ( f) = ( * parent_class) . window_state_event {
500
+ let ev_glib = glib:: translate:: mut_override ( event. to_glib_none ( ) . 0 ) ;
501
+ Inhibit ( from_glib ( f (
502
+ self . obj ( ) . unsafe_cast_ref :: < Widget > ( ) . to_glib_none ( ) . 0 ,
503
+ ev_glib,
504
+ ) ) )
505
+ } else {
506
+ Inhibit ( false )
507
+ }
508
+ }
509
+ }
510
+
490
511
fn parent_damage_event ( & self , event : & gdk:: EventExpose ) -> Inhibit {
491
512
unsafe {
492
513
let data = T :: type_data ( ) ;
@@ -959,6 +980,7 @@ unsafe impl<T: WidgetImpl> IsSubclassable<T> for Widget {
959
980
klass. composited_changed = Some ( widget_composited_changed :: < T > ) ;
960
981
klass. compute_expand = Some ( widget_compute_expand :: < T > ) ;
961
982
klass. configure_event = Some ( widget_configure_event :: < T > ) ;
983
+ klass. window_state_event = Some ( widget_window_state_event :: < T > ) ;
962
984
klass. damage_event = Some ( widget_damage_event :: < T > ) ;
963
985
klass. delete_event = Some ( widget_delete_event :: < T > ) ;
964
986
klass. destroy = Some ( widget_destroy :: < T > ) ;
@@ -1136,6 +1158,17 @@ unsafe extern "C" fn widget_configure_event<T: WidgetImpl>(
1136
1158
imp. configure_event ( & evwrap) . into_glib ( )
1137
1159
}
1138
1160
1161
+ unsafe extern "C" fn widget_window_state_event < T : WidgetImpl > (
1162
+ ptr : * mut ffi:: GtkWidget ,
1163
+ winstateptr : * mut gdk:: ffi:: GdkEventWindowState ,
1164
+ ) -> glib:: ffi:: gboolean {
1165
+ let instance = & * ( ptr as * mut T :: Instance ) ;
1166
+ let imp = instance. imp ( ) ;
1167
+ let evwrap: Borrowed < gdk:: EventWindowState > = from_glib_borrow ( winstateptr) ;
1168
+
1169
+ imp. window_state_event ( & evwrap) . into_glib ( )
1170
+ }
1171
+
1139
1172
unsafe extern "C" fn widget_damage_event < T : WidgetImpl > (
1140
1173
ptr : * mut ffi:: GtkWidget ,
1141
1174
exposeptr : * mut gdk:: ffi:: GdkEventExpose ,
0 commit comments