@@ -150,6 +150,7 @@ internal static void InternalInit (
150
150
try
151
151
{
152
152
MainLoop = Driver ! . Init ( ) ;
153
+ SubscribeDriverEvents ( ) ;
153
154
}
154
155
catch ( InvalidOperationException ex )
155
156
{
@@ -163,11 +164,6 @@ internal static void InternalInit (
163
164
) ;
164
165
}
165
166
166
- Driver . SizeChanged += Driver_SizeChanged ;
167
- Driver . KeyDown += Driver_KeyDown ;
168
- Driver . KeyUp += Driver_KeyUp ;
169
- Driver . MouseEvent += Driver_MouseEvent ;
170
-
171
167
SynchronizationContext . SetSynchronizationContext ( new MainLoopSyncContext ( ) ) ;
172
168
173
169
SupportedCultures = GetSupportedCultures ( ) ;
@@ -176,6 +172,26 @@ internal static void InternalInit (
176
172
InitializedChanged ? . Invoke ( null , new ( init ) ) ;
177
173
}
178
174
175
+ internal static void SubscribeDriverEvents ( )
176
+ {
177
+ ArgumentNullException . ThrowIfNull ( Driver ) ;
178
+
179
+ Driver . SizeChanged += Driver_SizeChanged ;
180
+ Driver . KeyDown += Driver_KeyDown ;
181
+ Driver . KeyUp += Driver_KeyUp ;
182
+ Driver . MouseEvent += Driver_MouseEvent ;
183
+ }
184
+
185
+ internal static void UnsubscribeDriverEvents ( )
186
+ {
187
+ ArgumentNullException . ThrowIfNull ( Driver ) ;
188
+
189
+ Driver . SizeChanged -= Driver_SizeChanged ;
190
+ Driver . KeyDown -= Driver_KeyDown ;
191
+ Driver . KeyUp -= Driver_KeyUp ;
192
+ Driver . MouseEvent -= Driver_MouseEvent ;
193
+ }
194
+
179
195
private static void Driver_SizeChanged ( object ? sender , SizeChangedEventArgs e ) { OnSizeChanging ( e ) ; }
180
196
private static void Driver_KeyDown ( object ? sender , Key e ) { RaiseKeyDownEvent ( e ) ; }
181
197
private static void Driver_KeyUp ( object ? sender , Key e ) { RaiseKeyUpEvent ( e ) ; }
0 commit comments