@@ -3,9 +3,9 @@ use crate::{
33 cmdbar:: CommandBar ,
44 components:: {
55 event_pump, CommandBlocking , CommandInfo , CommitComponent ,
6- Component , DrawableComponent , HelpComponent ,
7- InspectCommitComponent , MsgComponent , ResetComponent ,
8- StashMsgComponent ,
6+ Component , DrawableComponent , ExternalEditorComponent ,
7+ HelpComponent , InspectCommitComponent , MsgComponent ,
8+ ResetComponent , StashMsgComponent ,
99 } ,
1010 input:: { Input , InputEvent , InputState } ,
1111 keys,
@@ -35,6 +35,7 @@ pub struct App {
3535 commit : CommitComponent ,
3636 stashmsg_popup : StashMsgComponent ,
3737 inspect_commit_popup : InspectCommitComponent ,
38+ external_editor_popup : ExternalEditorComponent ,
3839 cmdbar : RefCell < CommandBar > ,
3940 tab : usize ,
4041 revlog : Revlog ,
@@ -76,6 +77,9 @@ impl App {
7677 sender,
7778 theme. clone ( ) ,
7879 ) ,
80+ external_editor_popup : ExternalEditorComponent :: new (
81+ theme. clone ( ) ,
82+ ) ,
7983 do_quit : false ,
8084 cmdbar : RefCell :: new ( CommandBar :: new ( theme. clone ( ) ) ) ,
8185 help : HelpComponent :: new ( theme. clone ( ) ) ,
@@ -190,6 +194,7 @@ impl App {
190194 self . update_commands ( ) ;
191195 }
192196 } else if let InputEvent :: State ( polling_state) = ev {
197+ self . external_editor_popup . hide ( ) ;
193198 if let InputState :: Paused = polling_state {
194199 if let Err ( e) = self . commit . show_editor ( ) {
195200 let msg =
@@ -274,6 +279,7 @@ impl App {
274279 commit,
275280 stashmsg_popup,
276281 inspect_commit_popup,
282+ external_editor_popup,
277283 help,
278284 revlog,
279285 status_tab,
@@ -404,6 +410,8 @@ impl App {
404410 }
405411 InternalEvent :: SuspendPolling => {
406412 self . input . set_polling ( false ) ;
413+ self . external_editor_popup . show ( ) ?;
414+ flags. insert ( NeedsUpdate :: COMMANDS )
407415 }
408416 } ;
409417
@@ -458,6 +466,7 @@ impl App {
458466 || self . msg . is_visible ( )
459467 || self . stashmsg_popup . is_visible ( )
460468 || self . inspect_commit_popup . is_visible ( )
469+ || self . external_editor_popup . is_visible ( )
461470 }
462471
463472 fn draw_popups < B : Backend > (
@@ -481,6 +490,7 @@ impl App {
481490 self . help . draw ( f, size) ?;
482491 self . msg . draw ( f, size) ?;
483492 self . inspect_commit_popup . draw ( f, size) ?;
493+ self . external_editor_popup . draw ( f, size) ?;
484494
485495 Ok ( ( ) )
486496 }
0 commit comments