@@ -77,6 +77,7 @@ public void visit(String string) {
7777 private final ControlPanel control_pane_ ;
7878 private final DownloadDialog downloadDialog_ ;
7979 private final CefCookieManager cookieManager_ ;
80+ private boolean reparentPending_ = false ;
8081
8182 public MenuBar (BrowserFrame owner , CefBrowser browser , ControlPanel control_pane ,
8283 DownloadDialog downloadDialog , CefCookieManager cookieManager ) {
@@ -405,20 +406,31 @@ public void actionPerformed(ActionEvent e) {
405406 reparentButton .addActionListener (new ActionListener () {
406407 @ Override
407408 public void actionPerformed (ActionEvent e ) {
409+ if (reparentPending_ ) return ;
410+ reparentPending_ = true ;
411+
408412 if (reparentButton .getText ().equals ("Reparent <" )) {
409- owner_ .removeBrowser ();
410- newFrame .add (browser_ .getUIComponent (), BorderLayout .CENTER );
411- newFrame .setBrowser (browser_ );
412- reparentButton .setText ("Reparent >" );
413+ owner_ .removeBrowser (new Runnable () {
414+ public void run () {
415+ newFrame .add (browser_ .getUIComponent (), BorderLayout .CENTER );
416+ newFrame .setBrowser (browser_ );
417+ reparentButton .setText ("Reparent >" );
418+ reparentPending_ = false ;
419+ }
420+ });
413421 } else {
414- newFrame .removeBrowser ();
415- JRootPane rootPane = (JRootPane ) owner_ .getComponent (0 );
416- Container container = rootPane .getContentPane ();
417- JPanel panel = (JPanel ) container .getComponent (0 );
418- panel .add (browser_ .getUIComponent ());
419- owner_ .setBrowser (browser_ );
420- owner_ .revalidate ();
421- reparentButton .setText ("Reparent <" );
422+ newFrame .removeBrowser (new Runnable () {
423+ public void run () {
424+ JRootPane rootPane = (JRootPane ) owner_ .getComponent (0 );
425+ Container container = rootPane .getContentPane ();
426+ JPanel panel = (JPanel ) container .getComponent (0 );
427+ panel .add (browser_ .getUIComponent ());
428+ owner_ .setBrowser (browser_ );
429+ owner_ .revalidate ();
430+ reparentButton .setText ("Reparent <" );
431+ reparentPending_ = false ;
432+ }
433+ });
422434 }
423435 }
424436 });
0 commit comments