summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-05-02 21:13:36 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-05-02 21:13:36 -0400
commit6fd66bd46768f205e4eb02d6e14ef4a3a20700d2 (patch)
tree144b4179d2ca84116533320dd94aa0f224bdc18b /gtk2_ardour
parent00f94a04cca8ac27a64924263e134ff0ab3daa4d (diff)
move CloseAllDialogs signal and associated method from ArdourDialog to ARDOUR_UI, and make ArdourWindow obey it too
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/ardour_dialog.cc9
-rw-r--r--gtk2_ardour/ardour_dialog.h2
-rw-r--r--gtk2_ardour/ardour_ui.cc3
-rw-r--r--gtk2_ardour/ardour_ui.h3
-rw-r--r--gtk2_ardour/ardour_window.cc5
5 files changed, 13 insertions, 9 deletions
diff --git a/gtk2_ardour/ardour_dialog.cc b/gtk2_ardour/ardour_dialog.cc
index 87b48d986a..cd7d0fbd55 100644
--- a/gtk2_ardour/ardour_dialog.cc
+++ b/gtk2_ardour/ardour_dialog.cc
@@ -23,6 +23,7 @@
#include <gtkmm2ext/doi.h>
#include "ardour_dialog.h"
+#include "ardour_ui.h"
#include "keyboard.h"
#include "splash.h"
@@ -30,8 +31,6 @@ using namespace std;
using namespace Gtk;
using namespace Gtkmm2ext;
-sigc::signal<void> ArdourDialog::CloseAllDialogs;
-
ArdourDialog::ArdourDialog (string title, bool modal, bool use_seperator)
: Dialog (title, modal, use_seperator)
, _splash_pushed (false)
@@ -98,9 +97,7 @@ ArdourDialog::on_show ()
void
ArdourDialog::init ()
{
- set_type_hint(Gdk::WINDOW_TYPE_HINT_DIALOG);
set_border_width (10);
- CloseAllDialogs.connect (
- sigc::bind (sigc::mem_fun (*this, &ArdourDialog::response),
- RESPONSE_CANCEL));
+ // set_type_hint (Gdk::WINDOW_TYPE_HINT_DIALOG);
+ ARDOUR_UI::CloseAllDialogs.connect (sigc::bind (sigc::mem_fun (*this, &ArdourDialog::response), RESPONSE_CANCEL));
}
diff --git a/gtk2_ardour/ardour_dialog.h b/gtk2_ardour/ardour_dialog.h
index 1008f63000..041b62e1cd 100644
--- a/gtk2_ardour/ardour_dialog.h
+++ b/gtk2_ardour/ardour_dialog.h
@@ -43,8 +43,6 @@ class ArdourDialog : public Gtk::Dialog, public ARDOUR::SessionHandlePtr
void on_unmap ();
void on_show ();
- static void close_all_dialogs () { CloseAllDialogs(); }
-
private:
bool _splash_pushed;
void init ();
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index c138fb1567..a5c8cee44c 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -136,6 +136,7 @@ sigc::signal<void,bool> ARDOUR_UI::Blink;
sigc::signal<void> ARDOUR_UI::RapidScreenUpdate;
sigc::signal<void> ARDOUR_UI::SuperRapidScreenUpdate;
sigc::signal<void, framepos_t, bool, framepos_t> ARDOUR_UI::Clock;
+sigc::signal<void> ARDOUR_UI::CloseAllDialogs;
ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
@@ -886,7 +887,7 @@ If you still wish to quit, please use the\n\n\
_session = 0;
}
- ArdourDialog::close_all_dialogs ();
+ close_all_dialogs ();
engine->stop (true);
quit ();
}
diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h
index a326669ec3..a695f7b8bd 100644
--- a/gtk2_ardour/ardour_ui.h
+++ b/gtk2_ardour/ardour_ui.h
@@ -189,6 +189,9 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
*/
static sigc::signal<void, framepos_t, bool, framepos_t> Clock;
+ static void close_all_dialogs () { CloseAllDialogs(); }
+ static sigc::signal<void> CloseAllDialogs;
+
XMLNode* editor_settings() const;
XMLNode* mixer_settings () const;
XMLNode* keyboard_settings () const;
diff --git a/gtk2_ardour/ardour_window.cc b/gtk2_ardour/ardour_window.cc
index 6330ecd6ac..f16032dc74 100644
--- a/gtk2_ardour/ardour_window.cc
+++ b/gtk2_ardour/ardour_window.cc
@@ -23,6 +23,7 @@
#include <gtkmm2ext/doi.h>
#include "ardour_window.h"
+#include "ardour_ui.h"
#include "keyboard.h"
using namespace std;
@@ -83,8 +84,12 @@ ArdourWindow::init ()
(a) utility & dialog windows are considered to be part of the same level
(b) they will float above normal windows without any particular effort
+ (c) present()-ing them will make a utility float over a dialog or
+ vice versa.
*/
set_type_hint (Gdk::WINDOW_TYPE_HINT_UTILITY);
+
+ ARDOUR_UI::CloseAllDialogs.connect (sigc::mem_fun (*this, &ArdourWindow::hide));
}