@@ -342,20 +342,12 @@ impl State {
342
342
// We use input_method_editor_started to manually insert CompositionStart
343
343
// between Commits.
344
344
match ime {
345
- winit:: event:: Ime :: Enabled => {
346
- self . egui_input
347
- . events
348
- . push ( egui:: Event :: Ime ( egui:: ImeEvent :: Enabled ) ) ;
349
- self . has_sent_ime_enabled = true ;
345
+ winit:: event:: Ime :: Enabled => { }
346
+ winit:: event:: Ime :: Preedit ( _, None ) => {
347
+ self . ime_event_enable ( ) ;
350
348
}
351
- winit:: event:: Ime :: Preedit ( _, None ) => { }
352
349
winit:: event:: Ime :: Preedit ( text, Some ( _cursor) ) => {
353
- if !self . has_sent_ime_enabled {
354
- self . egui_input
355
- . events
356
- . push ( egui:: Event :: Ime ( egui:: ImeEvent :: Enabled ) ) ;
357
- self . has_sent_ime_enabled = true ;
358
- }
350
+ self . ime_event_enable ( ) ;
359
351
self . egui_input
360
352
. events
361
353
. push ( egui:: Event :: Ime ( egui:: ImeEvent :: Preedit ( text. clone ( ) ) ) ) ;
@@ -364,16 +356,10 @@ impl State {
364
356
self . egui_input
365
357
. events
366
358
. push ( egui:: Event :: Ime ( egui:: ImeEvent :: Commit ( text. clone ( ) ) ) ) ;
367
- self . egui_input
368
- . events
369
- . push ( egui:: Event :: Ime ( egui:: ImeEvent :: Disabled ) ) ;
370
- self . has_sent_ime_enabled = false ;
359
+ self . ime_event_disable ( ) ;
371
360
}
372
361
winit:: event:: Ime :: Disabled => {
373
- self . egui_input
374
- . events
375
- . push ( egui:: Event :: Ime ( egui:: ImeEvent :: Disabled ) ) ;
376
- self . has_sent_ime_enabled = false ;
362
+ self . ime_event_disable ( ) ;
377
363
}
378
364
} ;
379
365
@@ -492,6 +478,22 @@ impl State {
492
478
}
493
479
}
494
480
481
+ pub fn ime_event_enable ( & mut self ) {
482
+ if !self . has_sent_ime_enabled {
483
+ self . egui_input
484
+ . events
485
+ . push ( egui:: Event :: Ime ( egui:: ImeEvent :: Enabled ) ) ;
486
+ self . has_sent_ime_enabled = true ;
487
+ }
488
+ }
489
+
490
+ pub fn ime_event_disable ( & mut self ) {
491
+ self . egui_input
492
+ . events
493
+ . push ( egui:: Event :: Ime ( egui:: ImeEvent :: Disabled ) ) ;
494
+ self . has_sent_ime_enabled = false ;
495
+ }
496
+
495
497
pub fn on_mouse_motion ( & mut self , delta : ( f64 , f64 ) ) {
496
498
self . egui_input . events . push ( egui:: Event :: MouseMoved ( Vec2 {
497
499
x : delta. 0 as f32 ,
0 commit comments