From 7f2edc0fc0112e2b022e6949b5f99731687da948 Mon Sep 17 00:00:00 2001 From: Yevgen Muntyan <17531749+muntyan@users.noreply.github.com> Date: Sat, 8 Jul 2006 09:57:01 -0500 Subject: [PATCH] Move focus to new active document, if closed one had focus --- moo/mooedit/mooeditwindow.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/moo/mooedit/mooeditwindow.c b/moo/mooedit/mooeditwindow.c index f7304170..c9cc2eea 100644 --- a/moo/mooedit/mooeditwindow.c +++ b/moo/mooedit/mooeditwindow.c @@ -1813,6 +1813,8 @@ _moo_edit_window_remove_doc (MooEditWindow *window, { int page; GtkAction *action; + MooEdit *new_doc; + gboolean had_focus; g_return_if_fail (MOO_IS_EDIT_WINDOW (window)); g_return_if_fail (MOO_IS_EDIT (doc)); @@ -1820,6 +1822,8 @@ _moo_edit_window_remove_doc (MooEditWindow *window, page = get_page_num (window, doc); g_return_if_fail (page >= 0); + had_focus = GTK_WIDGET_HAS_FOCUS (doc); + g_signal_emit (window, signals[CLOSE_DOC], 0, doc); g_signal_handlers_disconnect_by_func (doc, (gpointer) edit_changed, window); @@ -1849,8 +1853,12 @@ _moo_edit_window_remove_doc (MooEditWindow *window, g_signal_emit (window, signals[CLOSE_DOC_AFTER], 0); g_object_notify (G_OBJECT (window), "active-doc"); - if (!ACTIVE_DOC (window)) + new_doc = ACTIVE_DOC (window); + + if (!new_doc) moo_edit_window_check_actions (window); + else if (had_focus) + gtk_widget_grab_focus (GTK_WIDGET (new_doc)); }