diff --git a/gtk/chat.c b/gtk/chat.c
index 3eea9255c..5eaf79e93 100644
--- a/gtk/chat.c
+++ b/gtk/chat.c
@@ -137,7 +137,10 @@ void linphone_gtk_push_text(GtkWidget *w, const LinphoneAddress *from,
gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,"Message in progress.. ",-1,
"italic","right","small","font_grey",NULL);
} else {
- gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,ctime(&t),-1,
+ struct tm *tm=localtime(&t);
+ char buf[80];
+ strftime(buf,80,"%H:%M",tm);
+ gtk_text_buffer_insert_with_tags_by_name(buffer,&iter,buf,-1,
"italic","right","small","font_grey",NULL);
}
gtk_text_buffer_get_end_iter(buffer,&iter);
diff --git a/gtk/incall_view.c b/gtk/incall_view.c
index 2b115a564..65446d696 100644
--- a/gtk/incall_view.c
+++ b/gtk/incall_view.c
@@ -361,13 +361,6 @@ void linphone_gtk_create_in_call_view(LinphoneCall *call){
g_signal_connect(G_OBJECT(transfer),"clicked",(GCallback)transfer_button_clicked,call);
gtk_widget_hide(transfer);
- GtkWidget *keypad = linphone_gtk_get_widget(call_view,"keypad");
- //gtk_button_set_image(GTK_BUTTON(keypad),gtk_image_new_from_stock
- // (GTK_STOCK_GO_FORWARD,GTK_ICON_SIZE_BUTTON));
-
- g_signal_connect_swapped(G_OBJECT(keypad),"clicked",(GCallback)linphone_gtk_create_keypad,call);
- gtk_widget_hide(keypad);
-
GtkWidget *conf = linphone_gtk_get_widget(call_view,"conference_button");
gtk_button_set_image(GTK_BUTTON(conf),gtk_image_new_from_stock (GTK_STOCK_ADD,GTK_ICON_SIZE_BUTTON));
g_signal_connect(G_OBJECT(conf),"clicked",(GCallback)conference_button_clicked,call);
@@ -679,9 +672,6 @@ void linphone_gtk_in_call_view_set_in_call(LinphoneCall *call){
gtk_widget_hide(linphone_gtk_get_widget(callview,"answer_decline_panel"));
gtk_label_set_markup(GTK_LABEL(status),in_conf ? _("In conference") : _("In call"));
-
- /** keypad button **/
- //gtk_widget_set_visible(linphone_gtk_get_widget(callview,"keypad"),!in_conf);
gtk_widget_set_sensitive(linphone_gtk_get_widget(callview,"conference_button"),!in_conf);
gtk_widget_set_sensitive(linphone_gtk_get_widget(callview,"transfer_button"),!in_conf);
@@ -755,15 +745,10 @@ void linphone_gtk_in_call_view_terminate(LinphoneCall *call, const char *error_m
gtk_widget_hide(linphone_gtk_get_widget(callview,"video_button"));
gtk_widget_hide(linphone_gtk_get_widget(callview,"transfer_button"));
gtk_widget_hide(linphone_gtk_get_widget(callview,"conference_button"));
- gtk_widget_hide(linphone_gtk_get_widget(callview,"keypad"));
linphone_gtk_enable_mute_button(
GTK_BUTTON(linphone_gtk_get_widget(callview,"incall_mute")),FALSE);
linphone_gtk_enable_hold_button(call,FALSE,TRUE);
- GtkWidget *keypad=(GtkWidget *)g_object_get_data(G_OBJECT(callview),"keypad");
- if(keypad!=NULL)
- gtk_widget_destroy(keypad);
-
if (taskid!=0) g_source_remove(taskid);
g_timeout_add_seconds(2,(GSourceFunc)in_call_view_terminated,call);
if (in_conf)
diff --git a/gtk/keypad.ui b/gtk/keypad.ui
new file mode 100644
index 000000000..6b5376762
--- /dev/null
+++ b/gtk/keypad.ui
@@ -0,0 +1,277 @@
+
+
+
+
+
+
diff --git a/gtk/linphone.h b/gtk/linphone.h
index 55b30c829..abb395127 100644
--- a/gtk/linphone.h
+++ b/gtk/linphone.h
@@ -89,7 +89,6 @@ int linphone_gtk_get_ui_config_int(const char *key, int def);
void linphone_gtk_set_ui_config_int(const char *key , int val);
void linphone_gtk_visibility_set(const char *hiddens, const char *window_name, GtkWidget *w, gboolean show);
-void linphone_gtk_create_keypad(LinphoneCall *call);
void linphone_gtk_open_browser(const char *url);
void linphone_gtk_check_for_new_version(void);
const char *linphone_gtk_get_lang(const char *config_file);
diff --git a/gtk/main.c b/gtk/main.c
index a2461269c..165a70689 100644
--- a/gtk/main.c
+++ b/gtk/main.c
@@ -1651,18 +1651,21 @@ void linphone_gtk_init_dtmf_table(GtkWidget *mw){
}
-void linphone_gtk_create_keypad(LinphoneCall *call){
- GtkWidget *w=(GtkWidget*)linphone_call_get_user_pointer(call);
+void linphone_gtk_create_keypad(GtkWidget *button){
+ GtkWidget *mw=linphone_gtk_get_main_window();
+ GtkWidget *k=(GtkWidget *)g_object_get_data(G_OBJECT(mw),"keypad");
+ if(k!=NULL){
+ gtk_widget_destroy(k);
+ }
GtkWidget *keypad=linphone_gtk_create_window("keypad");
linphone_gtk_connect_digits(keypad);
linphone_gtk_init_dtmf_table(keypad);
- g_object_set_data(G_OBJECT(w),"keypad",(gpointer)keypad);
+ g_object_set_data(G_OBJECT(mw),"keypad",(gpointer)keypad);
gtk_widget_show(keypad);
}
static void linphone_gtk_init_main_window(){
GtkWidget *main_window;
-
linphone_gtk_configure_main_window();
linphone_gtk_manage_login();
load_uri_history();
@@ -1672,8 +1675,8 @@ static void linphone_gtk_init_main_window(){
main_window=linphone_gtk_get_main_window();
linphone_gtk_call_log_update(main_window);
- //linphone_gtk_init_dtmf_table(main_window);
linphone_gtk_update_call_buttons (NULL);
+ g_object_set_data(G_OBJECT(main_window),"keypad",NULL);
g_object_set_data(G_OBJECT(main_window),"is_conf",GINT_TO_POINTER(FALSE));
/*prevent the main window from being destroyed by a user click on WM controls, instead we hide it*/
g_signal_connect (G_OBJECT (main_window), "delete-event",
diff --git a/gtk/main.ui b/gtk/main.ui
index 76e96e808..50883c3f0 100644
--- a/gtk/main.ui
+++ b/gtk/main.ui
@@ -354,32 +354,6 @@
1
-
-
- True
- False
-
-
- ::
- True
- True
- True
- False
- bottom
-
-
- False
- False
- 0
-
-
-
-
- False
- False
- 2
-
-
False
@@ -442,7 +416,7 @@
False
False
- 3
+ 2
@@ -483,7 +457,7 @@
False
False
- 4
+ 3
@@ -579,7 +553,7 @@
False
False
7
- 5
+ 4
@@ -683,6 +657,16 @@
False
gtk-add
+
+ True
+ False
+ gtk-missing-image
+
+
+ True
+ False
+ gtk-select-color
+
True
False
@@ -1107,6 +1091,22 @@
2
+
+
+ True
+ True
+ True
+ False
+ image18
+
+
+
+ False
+ False
+ end
+ 3
+
+
False