From 3dd5ae7ce74a9b05f923558def9a8ea499faeb0e Mon Sep 17 00:00:00 2001
From: Alexandre Savard <alexandre.savard@savoirfairelinux.com>
Date: Mon, 28 May 2012 23:06:25 -0400
Subject: [PATCH] #10304: Make the playback seekslider hidden if calltree is
 selected

---
 gnome/src/mainwindow.c | 17 +++++++++++++++--
 gnome/src/mainwindow.h |  4 ++++
 gnome/src/uimanager.c  | 26 ++++++++++++++++++--------
 3 files changed, 37 insertions(+), 10 deletions(-)

diff --git a/gnome/src/mainwindow.c b/gnome/src/mainwindow.c
index 081b6fddf8..11488a549c 100644
--- a/gnome/src/mainwindow.c
+++ b/gnome/src/mainwindow.c
@@ -296,6 +296,7 @@ create_main_window()
     /* show playback scale only if a recorded call is selected */
     sfl_seekslider_set_display(SFL_SEEKSLIDER(seekslider), SFL_SEEKSLIDER_DISPLAY_PLAY);
     gtk_widget_set_sensitive(seekslider, FALSE);
+    main_window_hide_playback_scale();
 
     /* don't show waiting layer */
     gtk_widget_hide(waitingLayer);
@@ -496,13 +497,25 @@ main_window_update_playback_scale(guint current, guint size)
 }
 
 void
-main_window_show_playback_scale()
+main_window_set_playback_scale_sensitive()
 {
     gtk_widget_set_sensitive(seekslider, TRUE);
 }
 
 void
-main_window_hide_playback_scale()
+main_window_set_playback_scale_unsensitive()
 {
     gtk_widget_set_sensitive(seekslider, FALSE);
 }
+
+void
+main_window_show_playback_scale()
+{
+    gtk_widget_show(seekslider);
+}
+
+void
+main_window_hide_playback_scale()
+{
+    gtk_widget_hide(seekslider);
+}
diff --git a/gnome/src/mainwindow.h b/gnome/src/mainwindow.h
index e5b2900fd2..58588e3abf 100644
--- a/gnome/src/mainwindow.h
+++ b/gnome/src/mainwindow.h
@@ -110,6 +110,10 @@ void focus_on_searchbar_in();
  */
 void main_window_update_playback_scale(guint current, guint size);
 
+void main_window_set_playback_scale_sensitive();
+
+void main_window_set_playback_scale_unsensitive();
+
 /**
  * Show the playback scale, (should occur if the user selected an history entry witch has been recorded)
  */
diff --git a/gnome/src/uimanager.c b/gnome/src/uimanager.c
index 848ea9dcd7..77b201ea26 100644
--- a/gnome/src/uimanager.c
+++ b/gnome/src/uimanager.c
@@ -217,11 +217,12 @@ update_toolbar_for_call(callable_obj_t *selectedCall, gboolean instant_messaging
                     main_window_hide_playback_scale();
                 }
                 else if (active_calltree_tab == history_tab) {
+                    main_window_show_playback_scale();
                     if (is_non_empty(selectedCall->_recordfile)) {
-                        main_window_show_playback_scale();
+                        main_window_set_playback_scale_sensitive();
                     }
                     else {
-                        main_window_hide_playback_scale();
+                        main_window_set_playback_scale_unsensitive();
                     }
 
                 }
@@ -360,11 +361,12 @@ update_toolbar_for_conference(conference_obj_t * selectedConf, gboolean instant_
                 }
                 main_window_hide_playback_scale();
             } else if (active_calltree_tab == history_tab) {
+                main_window_show_playback_scale();
                 if (is_non_empty(selectedConf->_recordfile)) {
-                    main_window_show_playback_scale();
+                    main_window_set_playback_scale_sensitive();
                 }
                 else {
-                    main_window_hide_playback_scale();
+                    main_window_set_playback_scale_unsensitive();
                 }
             }
             else {
@@ -1038,19 +1040,27 @@ call_mailbox_cb(void)
 static void
 toggle_history_cb(GtkToggleAction *action, gpointer user_data UNUSED)
 {
-    if (gtk_toggle_action_get_active(action))
+    if (gtk_toggle_action_get_active(action)) {
         calltree_display(history_tab);
-    else
+        main_window_show_playback_scale();
+    }
+    else {
         calltree_display(current_calls_tab);
+        main_window_hide_playback_scale();
+    }
 }
 
 static void
 toggle_addressbook_cb(GtkToggleAction *action, gpointer user_data UNUSED)
 {
-    if (gtk_toggle_action_get_active(action))
+    if (gtk_toggle_action_get_active(action)) {
         calltree_display(contacts_tab);
-    else
+        main_window_show_playback_scale();
+    }
+    else {
         calltree_display(current_calls_tab);
+        main_window_show_playback_scale();
+    }
 }
 
 static const GtkActionEntry menu_entries[] = {
-- 
GitLab