convert property_foo().set_value(bar) to property_foo() = bar
[ardour.git] / gtk2_ardour / audio_clock.cc
index f55b67405c5b3b9a68ac2008f843ee0fe5638e30..83d8f6644cd84cc562a927f4930825fc3e4774e8 100644 (file)
@@ -25,6 +25,7 @@
 #include <ardour/ardour.h>
 #include <ardour/session.h>
 #include <ardour/tempo.h>
+#include <sigc++/bind.h>
 
 #include "ardour_ui.h"
 #include "audio_clock.h"
@@ -185,8 +186,8 @@ AudioClock::AudioClock (const string& name, bool allow_edit, bool duration, bool
           stays disabled.
        */
 
-       clock_base.signal_add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
-       clock_base.signal_button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Hours));
+       clock_base.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
+       clock_base.signal_button_release_event().connect (bind (mem_fun (*this, &AudioClock::field_button_release_event), SMPTE_Hours));
 
        if (editable) {
                setup_events ();
@@ -200,17 +201,17 @@ AudioClock::setup_events ()
 {
        clock_base.set_flags (Gtk::CAN_FOCUS);
 
-       hours_ebox.signal_add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
-       minutes_ebox.signal_add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
-       seconds_ebox.signal_add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
-       frames_ebox.signal_add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
-       bars_ebox.signal_add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
-       beats_ebox.signal_add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
-       ticks_ebox.signal_add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
-       ms_hours_ebox.signal_add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
-       ms_minutes_ebox.signal_add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
-       ms_seconds_ebox.signal_add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
-       audio_frames_ebox.signal_add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
+       hours_ebox.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
+       minutes_ebox.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
+       seconds_ebox.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
+       frames_ebox.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
+       bars_ebox.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
+       beats_ebox.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
+       ticks_ebox.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
+       ms_hours_ebox.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
+       ms_minutes_ebox.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
+       ms_seconds_ebox.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
+       audio_frames_ebox.add_events (Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK|Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::FOCUS_CHANGE_MASK|Gdk::POINTER_MOTION_MASK);
 
        hours_ebox.set_flags (Gtk::CAN_FOCUS);
        minutes_ebox.set_flags (Gtk::CAN_FOCUS);
@@ -224,77 +225,77 @@ AudioClock::setup_events ()
        ms_minutes_ebox.set_flags (Gtk::CAN_FOCUS);
        ms_seconds_ebox.set_flags (Gtk::CAN_FOCUS);
 
-       hours_ebox.signal_motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), SMPTE_Hours));
-       minutes_ebox.signal_motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), SMPTE_Minutes));
-       seconds_ebox.signal_motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), SMPTE_Seconds));
-       frames_ebox.signal_motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), SMPTE_Frames));
-       audio_frames_ebox.signal_motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), AudioFrames));
-       bars_ebox.signal_motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), Bars));
-       beats_ebox.signal_motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), Beats));
-       ticks_ebox.signal_motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), Ticks));
-       ms_hours_ebox.signal_motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), MS_Hours));
-       ms_minutes_ebox.signal_motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), MS_Minutes));
-       ms_seconds_ebox.signal_motion_notify_event.connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), MS_Seconds));
-
-       hours_ebox.signal_button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), SMPTE_Hours));
-       minutes_ebox.signal_button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), SMPTE_Minutes));
-       seconds_ebox.signal_button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), SMPTE_Seconds));
-       frames_ebox.signal_button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), SMPTE_Frames));
-       audio_frames_ebox.signal_button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), AudioFrames));
-       bars_ebox.signal_button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), Bars));
-       beats_ebox.signal_button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), Beats));
-       ticks_ebox.signal_button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), Ticks));
-       ms_hours_ebox.signal_button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), MS_Hours));
-       ms_minutes_ebox.signal_button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), MS_Minutes));
-       ms_seconds_ebox.signal_button_press_event.connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), MS_Seconds));
-
-       hours_ebox.signal_button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Hours));
-       minutes_ebox.signal_button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Minutes));
-       seconds_ebox.signal_button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Seconds));
-       frames_ebox.signal_button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Frames));
-       audio_frames_ebox.signal_button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), AudioFrames));
-       bars_ebox.signal_button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), Bars));
-       beats_ebox.signal_button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), Beats));
-       ticks_ebox.signal_button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), Ticks));
-       ms_hours_ebox.signal_button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), MS_Hours));
-       ms_minutes_ebox.signal_button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), MS_Minutes));
-       ms_seconds_ebox.signal_button_release_event.connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), MS_Seconds));
-
-       hours_ebox.signal_key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), SMPTE_Hours));
-       minutes_ebox.signal_key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), SMPTE_Minutes));
-       seconds_ebox.signal_key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), SMPTE_Seconds));
-       frames_ebox.signal_key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), SMPTE_Frames));
-       audio_frames_ebox.signal_key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), AudioFrames));
-       bars_ebox.signal_key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), Bars));
-       beats_ebox.signal_key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), Beats));
-       ticks_ebox.signal_key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), Ticks));
-       ms_hours_ebox.signal_key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), MS_Hours));
-       ms_minutes_ebox.signal_key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), MS_Minutes));
-       ms_seconds_ebox.signal_key_release_event.connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), MS_Seconds));
-
-       hours_ebox.signal_signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), SMPTE_Hours));
-       minutes_ebox.signal_signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), SMPTE_Minutes));
-       seconds_ebox.signal_signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), SMPTE_Seconds));
-       frames_ebox.signal_signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), SMPTE_Frames));
-       audio_frames_ebox.signal_signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), AudioFrames));
-       bars_ebox.signal_signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), Bars));
-       beats_ebox.signal_signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), Beats));
-       ticks_ebox.signal_signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), Ticks));
-       ms_hours_ebox.signal_signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), MS_Hours));
-       ms_minutes_ebox.signal_signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), MS_Minutes));
-       ms_seconds_ebox.signal_signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), MS_Seconds));
-
-       hours_ebox.signal_signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), SMPTE_Hours));
-       minutes_ebox.signal_signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), SMPTE_Minutes));
-       seconds_ebox.signal_signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), SMPTE_Seconds));
-       frames_ebox.signal_signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), SMPTE_Frames));
-       audio_frames_ebox.signal_signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), AudioFrames));
-       bars_ebox.signal_signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), Bars));
-       beats_ebox.signal_signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), Beats));
-       ticks_ebox.signal_signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), Ticks));
-       ms_hours_ebox.signal_signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), MS_Hours));
-       ms_minutes_ebox.signal_signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), MS_Minutes));
-       ms_seconds_ebox.signal_signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), MS_Seconds));
+       hours_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), SMPTE_Hours));
+       minutes_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), SMPTE_Minutes));
+       seconds_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), SMPTE_Seconds));
+       frames_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), SMPTE_Frames));
+       audio_frames_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), AudioFrames));
+       bars_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), Bars));
+       beats_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), Beats));
+       ticks_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), Ticks));
+       ms_hours_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), MS_Hours));
+       ms_minutes_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), MS_Minutes));
+       ms_seconds_ebox.signal_motion_notify_event().connect (bind (mem_fun(*this, &AudioClock::field_motion_notify_event), MS_Seconds));
+
+       hours_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), SMPTE_Hours));
+       minutes_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), SMPTE_Minutes));
+       seconds_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), SMPTE_Seconds));
+       frames_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), SMPTE_Frames));
+       audio_frames_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), AudioFrames));
+       bars_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), Bars));
+       beats_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), Beats));
+       ticks_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), Ticks));
+       ms_hours_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), MS_Hours));
+       ms_minutes_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), MS_Minutes));
+       ms_seconds_ebox.signal_button_press_event().connect (bind (mem_fun(*this, &AudioClock::field_button_press_event), MS_Seconds));
+
+       hours_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Hours));
+       minutes_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Minutes));
+       seconds_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Seconds));
+       frames_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), SMPTE_Frames));
+       audio_frames_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), AudioFrames));
+       bars_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), Bars));
+       beats_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), Beats));
+       ticks_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), Ticks));
+       ms_hours_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), MS_Hours));
+       ms_minutes_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), MS_Minutes));
+       ms_seconds_ebox.signal_button_release_event().connect (bind (mem_fun(*this, &AudioClock::field_button_release_event), MS_Seconds));
+
+       hours_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), SMPTE_Hours));
+       minutes_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), SMPTE_Minutes));
+       seconds_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), SMPTE_Seconds));
+       frames_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), SMPTE_Frames));
+       audio_frames_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), AudioFrames));
+       bars_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), Bars));
+       beats_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), Beats));
+       ticks_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), Ticks));
+       ms_hours_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), MS_Hours));
+       ms_minutes_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), MS_Minutes));
+       ms_seconds_ebox.signal_key_release_event().connect (bind (mem_fun(*this, &AudioClock::field_key_release_event), MS_Seconds));
+
+       hours_ebox.signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), SMPTE_Hours));
+       minutes_ebox.signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), SMPTE_Minutes));
+       seconds_ebox.signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), SMPTE_Seconds));
+       frames_ebox.signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), SMPTE_Frames));
+       audio_frames_ebox.signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), AudioFrames));
+       bars_ebox.signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), Bars));
+       beats_ebox.signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), Beats));
+       ticks_ebox.signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), Ticks));
+       ms_hours_ebox.signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), MS_Hours));
+       ms_minutes_ebox.signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), MS_Minutes));
+       ms_seconds_ebox.signal_focus_in_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_in_event), MS_Seconds));
+
+       hours_ebox.signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), SMPTE_Hours));
+       minutes_ebox.signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), SMPTE_Minutes));
+       seconds_ebox.signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), SMPTE_Seconds));
+       frames_ebox.signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), SMPTE_Frames));
+       audio_frames_ebox.signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), AudioFrames));
+       bars_ebox.signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), Bars));
+       beats_ebox.signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), Beats));
+       ticks_ebox.signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), Ticks));
+       ms_hours_ebox.signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), MS_Hours));
+       ms_minutes_ebox.signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), MS_Minutes));
+       ms_seconds_ebox.signal_focus_out_event().connect (bind (mem_fun(*this, &AudioClock::field_focus_out_event), MS_Seconds));
 
        Gtkmm2ext::set_size_request_to_display_given_text (hours_label, "-88", 0, 2);
        Gtkmm2ext::set_size_request_to_display_given_text (minutes_label, "88", 0, 2);
@@ -309,7 +310,7 @@ AudioClock::setup_events ()
 }
 
 void
-AudioClock:on_realize ()
+AudioClock::on_realize ()
 {
        HBox::on_realize ();
 }
@@ -695,56 +696,54 @@ AudioClock::field_key_release_event (GdkEventKey *ev, Field field)
 gint
 AudioClock::field_focus_in_event (GdkEventFocus *ev, Field field)
 {
-       ARDOUR_UI::instance()->allow_focus (true);
-
        key_entry_state = 0;
 
        switch (field) {
        case SMPTE_Hours:
                hours_ebox.set_flags (Gtk::HAS_FOCUS);
-               hours_ebox.set_state (GTK_STATE_ACTIVE);
+               hours_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        case SMPTE_Minutes:
                minutes_ebox.set_flags (Gtk::HAS_FOCUS);
-               minutes_ebox.set_state (GTK_STATE_ACTIVE);
+               minutes_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        case SMPTE_Seconds:
                seconds_ebox.set_flags (Gtk::HAS_FOCUS);
-               seconds_ebox.set_state (GTK_STATE_ACTIVE);
+               seconds_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        case SMPTE_Frames:
                frames_ebox.set_flags (Gtk::HAS_FOCUS);
-               frames_ebox.set_state (GTK_STATE_ACTIVE);
+               frames_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
 
        case AudioFrames:
                audio_frames_ebox.set_flags (Gtk::HAS_FOCUS);
-               audio_frames_ebox.set_state (GTK_STATE_ACTIVE);
+               audio_frames_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
 
        case MS_Hours:
                ms_hours_ebox.set_flags (Gtk::HAS_FOCUS);
-               ms_hours_ebox.set_state (GTK_STATE_ACTIVE);
+               ms_hours_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        case MS_Minutes:
                ms_minutes_ebox.set_flags (Gtk::HAS_FOCUS);
-               ms_minutes_ebox.set_state (GTK_STATE_ACTIVE);
+               ms_minutes_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        case MS_Seconds:
                ms_seconds_ebox.set_flags (Gtk::HAS_FOCUS);
-               ms_seconds_ebox.set_state (GTK_STATE_ACTIVE);
+               ms_seconds_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        case Bars:
                bars_ebox.set_flags (Gtk::HAS_FOCUS);
-               bars_ebox.set_state (GTK_STATE_ACTIVE);
+               bars_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        case Beats:
                beats_ebox.set_flags (Gtk::HAS_FOCUS);
-               beats_ebox.set_state (GTK_STATE_ACTIVE);
+               beats_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        case Ticks:
                ticks_ebox.set_flags (Gtk::HAS_FOCUS);
-               ticks_ebox.set_state (GTK_STATE_ACTIVE);
+               ticks_ebox.set_state (Gtk::STATE_ACTIVE);
                break;
        }
 
@@ -754,8 +753,6 @@ AudioClock::field_focus_in_event (GdkEventFocus *ev, Field field)
 gint
 AudioClock::field_focus_out_event (GdkEventFocus *ev, Field field)
 {
-       ARDOUR_UI::instance()->allow_focus (false);
-
        switch (field) {
 
        case SMPTE_Hours:
@@ -1656,9 +1653,8 @@ AudioClock::set_mode (Mode m)
           started editing the clock and then we switch clock mode.
        */
 
-       if (ARDOUR_UI::instance()) {
-               ARDOUR_UI::instance()->allow_focus (false);
-       }
+       // GTK2FIX might need an equivalent here for drop focus
+
 
        if (_mode == m) {
                return;