diff options
author | nick_m <mainsbridge@gmail.com> | 2015-03-10 02:25:25 +1100 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2015-03-10 02:25:25 +1100 |
commit | 44d46529959e5fbdfa5e2d13717812cf592c5a6b (patch) | |
tree | a6df04c58c16560c6e6cfe80243d609d9e24ef13 /gtk2_ardour/theme_manager.cc | |
parent | 2d6e48fb0b7e1ea801ba4f5dc561ebb0b92f7645 (diff) |
Introduce theme preference "transients follow front" which, when enabled,
sets transient windows to be transients for the front window when switching
between the editor and mixer. This is the current behavior on non-osx
builds.
When disabled, there is no reparenting of transient windows. This is the
current behavior on osx.
This preference defaults to off.
Also fix "all windows are dialogs" checkbox being out of sync with the ui
state.
Diffstat (limited to 'gtk2_ardour/theme_manager.cc')
-rw-r--r-- | gtk2_ardour/theme_manager.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gtk2_ardour/theme_manager.cc b/gtk2_ardour/theme_manager.cc index 44389da711..6a557399db 100644 --- a/gtk2_ardour/theme_manager.cc +++ b/gtk2_ardour/theme_manager.cc @@ -74,6 +74,7 @@ ThemeManager::ThemeManager() , timeline_item_gradient_depth (0, 1.0, 0.05) , timeline_item_gradient_depth_label (_("Timeline item gradient depth")) , all_dialogs (_("All floating windows are dialogs")) + , transients_follow_front (_("Transient windows follow front window.")) , icon_set_label (_("Icon Set")) , palette_viewport (*palette_scroller.get_hadjustment(), *palette_scroller.get_vadjustment()) , palette_group (0) @@ -115,6 +116,7 @@ ThemeManager::ThemeManager() pack_start (reset_button, PACK_SHRINK); #ifndef __APPLE__ pack_start (all_dialogs, PACK_SHRINK); + pack_start (transients_follow_front, PACK_SHRINK); #endif pack_start (flat_buttons, PACK_SHRINK); pack_start (blink_rec_button, PACK_SHRINK); @@ -184,12 +186,16 @@ ThemeManager::ThemeManager() waveform_gradient_depth.signal_value_changed().connect (sigc::mem_fun (*this, &ThemeManager::on_waveform_gradient_depth_change)); timeline_item_gradient_depth.signal_value_changed().connect (sigc::mem_fun (*this, &ThemeManager::on_timeline_item_gradient_depth_change)); all_dialogs.signal_toggled().connect (sigc::mem_fun (*this, &ThemeManager::on_all_dialogs_toggled)); + transients_follow_front.signal_toggled().connect (sigc::mem_fun (*this, &ThemeManager::on_transients_follow_front_toggled)); icon_set_dropdown.signal_changed().connect (sigc::mem_fun (*this, &ThemeManager::on_icon_set_changed)); Gtkmm2ext::UI::instance()->set_tip (all_dialogs, string_compose (_("Mark all floating windows to be type \"Dialog\" rather than using \"Utility\" for some.\n" "This may help with some window managers. This requires a restart of %1 to take effect"), PROGRAM_NAME)); + Gtkmm2ext::UI::instance()->set_tip (transients_follow_front, + string_compose (_("Make transient windows follow the front window when toggling between the editor and mixer.\n" + "This requires a restart of %1 to take effect"), PROGRAM_NAME)); set_size_request (-1, 400); /* no need to call setup_palette() here, it will be done when its size is allocated */ @@ -298,6 +304,12 @@ ThemeManager::on_all_dialogs_toggled () } void +ThemeManager::on_transients_follow_front_toggled () +{ + ARDOUR_UI::config()->set_transients_follow_front (transients_follow_front.get_active()); +} + +void ThemeManager::on_waveform_gradient_depth_change () { double v = waveform_gradient_depth.get_value(); @@ -358,6 +370,8 @@ ThemeManager::set_ui_to_state() /* there is no need to block signal handlers, here, * all elements check if the value has changed and ignore NOOPs */ + all_dialogs.set_active (ARDOUR_UI::config()->get_all_floating_windows_are_dialogs()); + transients_follow_front.set_active (ARDOUR_UI::config()->get_transients_follow_front()); flat_buttons.set_active (ARDOUR_UI::config()->get_flat_buttons()); blink_rec_button.set_active (ARDOUR_UI::config()->get_blink_rec_arm()); region_color_button.set_active (ARDOUR_UI::config()->get_color_regions_using_track_color()); |