[evolution/evolution-3-12] EContactEditor: IM field is focused after editor open
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution/evolution-3-12] EContactEditor: IM field is focused after editor open
- Date: Tue, 29 Apr 2014 13:56:06 +0000 (UTC)
commit 9828525e7c5e8ebb47d9bc5026c0a057eafec72b
Author: Milan Crha <mcrha redhat com>
Date: Tue Apr 29 15:50:31 2014 +0200
EContactEditor: IM field is focused after editor open
Due to made widget changes in fill_in_all() the focus can change
from the full name entry elsewhere. Remembering focused widget and
restoring it at the end of the function makes the editor being
opened with full name entry instead, as expected.
addressbook/gui/contact-editor/e-contact-editor.c | 17 +++++++++++++++++
1 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/addressbook/gui/contact-editor/e-contact-editor.c
b/addressbook/gui/contact-editor/e-contact-editor.c
index e6d93ae..a455292 100644
--- a/addressbook/gui/contact-editor/e-contact-editor.c
+++ b/addressbook/gui/contact-editor/e-contact-editor.c
@@ -3096,12 +3096,29 @@ sensitize_simple (EContactEditor *editor)
static void
fill_in_all (EContactEditor *editor)
{
+ GtkWidget *focused_widget;
+ gpointer weak_pointer;
+
+ /* Widget changes can cause focus widget change, thus remember the current
+ widget and restore it after the fill is done; some fill operations
+ can delete widgets, like the dyntable, thus do the weak_pointer as well.
+ */
+ focused_widget = gtk_window_get_focus (eab_editor_get_window (EAB_EDITOR (editor)));
+ weak_pointer = focused_widget;
+ if (focused_widget)
+ g_object_add_weak_pointer (G_OBJECT (focused_widget), &weak_pointer);
+
fill_in_source_field (editor);
fill_in_simple (editor);
fill_in_email (editor);
fill_in_phone (editor);
fill_in_im (editor);
fill_in_address (editor);
+
+ if (weak_pointer) {
+ g_object_remove_weak_pointer (G_OBJECT (focused_widget), &weak_pointer);
+ gtk_widget_grab_focus (focused_widget);
+ }
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]