diff --git a/gtk/main.c b/gtk/main.c index 3fe532cd1..85009f9f0 100644 --- a/gtk/main.c +++ b/gtk/main.c @@ -1031,6 +1031,21 @@ void on_proxy_refresh_button_clicked(GtkWidget *w){ } } +static gboolean grab_focus(GtkWidget *w){ + gtk_widget_grab_focus(w); + return FALSE; +} + +void linphone_gtk_viewswitch_changed(GtkNotebook *notebook, GtkWidget *page, guint page_num, gpointer user_data){ + GtkWidget *main_window = linphone_gtk_get_main_window(); + GtkWidget *friendlist = linphone_gtk_get_widget(main_window,"contact_list"); + GtkWidget *w = (GtkWidget*)g_object_get_data(G_OBJECT(friendlist),"chatview"); + + if (page_num == gtk_notebook_page_num(GTK_NOTEBOOK(notebook),w)) { + g_idle_add((GSourceFunc)grab_focus,linphone_gtk_get_widget(page,"text_entry")); + } +} + static void linphone_gtk_notify_recv(LinphoneCore *lc, LinphoneFriend * fid){ linphone_gtk_show_friends(); } diff --git a/gtk/main.ui b/gtk/main.ui index 083ad5165..e7360e215 100644 --- a/gtk/main.ui +++ b/gtk/main.ui @@ -167,8 +167,8 @@ False True True - + @@ -650,6 +650,7 @@ True True +