diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2015-11-18 23:45:48 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-02-22 15:31:25 -0500 |
commit | 336d321a1b4354e9fcaf46c17c4560c863c58dde (patch) | |
tree | 9c7b6e2f3291b2a05ea1eb923b0e35838ecf2351 /gtk2_ardour/ardour_ui_dialogs.cc | |
parent | 8a499cf57c3f574fd0be3fbdc2474caca1ae0003 (diff) |
prevent dragging the last tab from the notebook
Diffstat (limited to 'gtk2_ardour/ardour_ui_dialogs.cc')
-rw-r--r-- | gtk2_ardour/ardour_ui_dialogs.cc | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/gtk2_ardour/ardour_ui_dialogs.cc b/gtk2_ardour/ardour_ui_dialogs.cc index d40195b303..108229a16a 100644 --- a/gtk2_ardour/ardour_ui_dialogs.cc +++ b/gtk2_ardour/ardour_ui_dialogs.cc @@ -32,8 +32,12 @@ #include "ardour/control_protocol_manager.h" #include "ardour/profile.h" #include "ardour/session.h" + #include "control_protocol/control_protocol.h" +#include "gtkmm2ext/keyboard.h" +#include "gtkmm2ext/utils.h" + #include "actions.h" #include "add_route_dialog.h" #include "add_video_dialog.h" @@ -62,8 +66,6 @@ #include "time_info_box.h" #include "timers.h" -#include <gtkmm2ext/keyboard.h> - #include "i18n.h" using namespace ARDOUR; @@ -365,6 +367,43 @@ ARDOUR_UI::detach_tabbable (Tabbable* t) } void +ARDOUR_UI::tabs_page_added (Widget*,guint) +{ + if (_tabs.get_n_pages() > 1) { + + std::vector<TargetEntry> drag_target_entries; + drag_target_entries.push_back (TargetEntry ("tabbable")); + + editor_visibility_button.drag_source_set (drag_target_entries); + mixer_visibility_button.drag_source_set (drag_target_entries); + prefs_visibility_button.drag_source_set (drag_target_entries); + + editor_visibility_button.drag_source_set_icon (Gtkmm2ext::pixbuf_from_string (editor->name(), + Pango::FontDescription ("Sans 24"), + 40, 20, + Gdk::Color ("red"))); + mixer_visibility_button.drag_source_set_icon (Gtkmm2ext::pixbuf_from_string (mixer->name(), + Pango::FontDescription ("Sans 24"), + 40, 20, + Gdk::Color ("red"))); + prefs_visibility_button.drag_source_set_icon (Gtkmm2ext::pixbuf_from_string (rc_option_editor->name(), + Pango::FontDescription ("Sans 24"), + 40, 20, + Gdk::Color ("red"))); + } +} + +void +ARDOUR_UI::tabs_page_removed (Widget*, guint) +{ + if (_tabs.get_n_pages() < 2) { + editor_visibility_button.drag_source_unset (); + mixer_visibility_button.drag_source_unset (); + prefs_visibility_button.drag_source_unset (); + } +} + +void ARDOUR_UI::tabs_switch (GtkNotebookPage*, guint page) { if (page == (guint) _tabs.page_num (editor->contents())) { |