Mercurial > pidgin
changeset 9080:717d0e23f5fa
[gaim-migrate @ 9856]
Make the focus chain for conversations awesome.
Unfortunately it's not usable because every time something in the
gtkconv gets a "focus" signal we switch focus back to the entry
widget. We need a better way to give the entry widget focus when
initially switching to a tab, but not any time after that.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Thu, 27 May 2004 03:34:52 +0000 |
parents | 67e20c25d41e |
children | 68712f777fa4 |
files | src/gtkconv.c |
diffstat | 1 files changed, 20 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/gtkconv.c Thu May 27 02:47:39 2004 +0000 +++ b/src/gtkconv.c Thu May 27 03:34:52 2004 +0000 @@ -3539,7 +3539,7 @@ GtkListStore *ls; GtkCellRenderer *rend; GtkTreeViewColumn *col; - GList *focus_chain; + GList *focus_chain = NULL; gtkconv = GAIM_GTK_CONVERSATION(conv); gtkchat = gtkconv->u.chat; @@ -3781,8 +3781,15 @@ setup_chat_buttons(conv, gtkconv->bbox); - focus_chain = g_list_prepend (NULL, sw); - gtk_container_set_focus_chain (GTK_CONTAINER(vbox), focus_chain); + /* + * Focus for chat windows should be as follows: + * Tab title -> chat topic -> conversation scrollback -> user list -> + * user list buttons -> entry -> buttons at bottom + */ + focus_chain = g_list_prepend(focus_chain, gtkconv->bbox); + focus_chain = g_list_prepend(focus_chain, gtkconv->entrybox); + gtk_container_set_focus_chain(GTK_CONTAINER(vbox), focus_chain); + return vpaned; } @@ -3796,7 +3803,7 @@ GtkWidget *vbox; GtkWidget *vbox2; GtkWidget *sw; - GList *focus_chain; + GList *focus_chain = NULL; gtkconv = GAIM_GTK_CONVERSATION(conv); gtkim = gtkconv->u.im; @@ -3919,8 +3926,13 @@ setup_im_buttons(conv, gtkconv->bbox); gtkconv->u.im->animate = gaim_prefs_get_bool("/gaim/gtk/conversations/im/animate_buddy_icons"); - focus_chain = g_list_prepend (NULL, sw); - gtk_container_set_focus_chain (GTK_CONTAINER(vbox2), focus_chain); + /* + * Focus for IM windows should be as follows: + * Tab title -> conversation scrollback -> entry -> buttons at bottom + */ + focus_chain = g_list_prepend(focus_chain, gtkconv->bbox); + focus_chain = g_list_prepend(focus_chain, gtkconv->entrybox); + gtk_container_set_focus_chain(GTK_CONTAINER(vbox2), focus_chain); return paned; } @@ -4234,8 +4246,8 @@ gtk_widget_show(gtkconv->toolbar); g_signal_connect_swapped(G_OBJECT(pane), "focus", - G_CALLBACK(gtk_widget_grab_focus), - gtkconv->entry); + G_CALLBACK(gtk_widget_grab_focus), + gtkconv->entry); } gtkconv->tabby = tabby = gtk_hbox_new(FALSE, 6);