diff --git a/sflphone-gtk/src/actions.c b/sflphone-gtk/src/actions.c index 8f3a4edb7a7913f26a51ea2614fc3f8da96450f1..870cec2d8af4ae2face213fc5b8d47f068b41990 100644 --- a/sflphone-gtk/src/actions.c +++ b/sflphone-gtk/src/actions.c @@ -555,10 +555,27 @@ sflphone_new_call() void sflphone_keypad( guint keyval, gchar * key) { - call_t * c = call_get_selected(current_calls); - if(c) + + if((active_calltree != current_calls) || (active_calltree == current_calls && !c)) + { + // Not in a call, not dialing, create a new call + //dbus_play_dtmf(key); + switch (keyval) + { + case 65293: /* ENTER */ + case 65421: /* ENTER numpad */ + case 65307: /* ESCAPE */ + break; + default: + switch_tab(current_calls); + process_dialing(sflphone_new_call(), keyval, key); + break; + } + } + else if(c) { + printf("call\n"); switch(c->state) { case CALL_STATE_DIALING: // Currently dialing => edit number @@ -652,23 +669,6 @@ sflphone_keypad( guint keyval, gchar * key) break; } } - else - { // Not in a call, not dialing, create a new call - //dbus_play_dtmf(key); - switch (keyval) - { - case 65293: /* ENTER */ - case 65421: /* ENTER numpad */ - case 65307: /* ESCAPE */ - break; - default: - switch_tab(current_calls); - process_dialing(sflphone_new_call(), keyval, key); - break; - } - - - } } /* diff --git a/sflphone-gtk/src/calltree.c b/sflphone-gtk/src/calltree.c index e61408fae48c1c72dcbd27b3756c452c2d73f0e6..6b2b1c59e1c4496022739c976974d03d73b56c78 100644 --- a/sflphone-gtk/src/calltree.c +++ b/sflphone-gtk/src/calltree.c @@ -175,6 +175,7 @@ toggle_current_calls(GtkToggleToolButton *toggle_tool_button UNUSED, gtk_widget_hide(history->tree); gtk_widget_hide(contacts->tree); gtk_widget_show(current_calls->tree); + printf("current calls toggle\n"); sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (active_calltree->view)); g_signal_emit_by_name(sel, "changed");