diff --git a/src/client/composer/composer-embed.vala b/src/client/composer/composer-embed.vala
index 41ff73b6..7b1ec02d 100644
--- a/src/client/composer/composer-embed.vala
+++ b/src/client/composer/composer-embed.vala
@@ -63,10 +63,17 @@ public class ComposerEmbed : Gtk.Bin, ComposerContainer {
on_focus_out();
composer.editor.focus_in_event.disconnect(on_focus_in);
composer.editor.focus_out_event.disconnect(on_focus_out);
+ Gtk.Widget focus = top_window.get_focus();
remove(composer);
- new ComposerWindow(composer);
- composer.set_focus();
+ ComposerWindow window = new ComposerWindow(composer);
+ if (focus != null) {
+ ComposerWindow focus_win = focus.get_toplevel() as ComposerWindow;
+ if (focus_win != null && focus_win == window)
+ focus.grab_focus();
+ } else {
+ composer.set_focus();
+ }
close();
}
diff --git a/ui/composer.glade b/ui/composer.glade
index ab9a94b6..1f4e4fe7 100644
--- a/ui/composer.glade
+++ b/ui/composer.glade
@@ -629,6 +629,7 @@
True
True
True
+ False
False