projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
more transport button caironizing.
[ardour.git]
/
gtk2_ardour
/
ardour_window.cc
diff --git
a/gtk2_ardour/ardour_window.cc
b/gtk2_ardour/ardour_window.cc
index 6b325aca8534325d9f73fb96c52fdeb53e6a937d..f6ced5fb492c7c7067fa0c6be4c97c9697a13a3f 100644
(file)
--- a/
gtk2_ardour/ardour_window.cc
+++ b/
gtk2_ardour/ardour_window.cc
@@
-38,7
+38,7
@@
ArdourWindow::ArdourWindow (string title)
{
set_title (title);
init ();
{
set_title (title);
init ();
- set_position (Gtk::WIN_POS_
MOUSE
);
+ set_position (Gtk::WIN_POS_
CENTER
);
}
ArdourWindow::ArdourWindow (Gtk::Window& parent, string /*title*/)
}
ArdourWindow::ArdourWindow (Gtk::Window& parent, string /*title*/)
@@
-58,21
+58,31
@@
ArdourWindow::~ArdourWindow ()
bool
ArdourWindow::on_key_press_event (GdkEventKey* ev)
{
bool
ArdourWindow::on_key_press_event (GdkEventKey* ev)
{
- return relay_key_press (ev, this);
+ bool handled = Gtk::Window::on_key_press_event (ev);
+
+ if (!handled) {
+ if (!get_modal()) {
+ handled = relay_key_press (ev, this);
+ }
+ }
+
+ return handled;
}
bool
}
bool
-ArdourWindow::on_
enter_notify_event (GdkEventCrossing
*ev)
+ArdourWindow::on_
focus_in_event (GdkEventFocus
*ev)
{
{
- Keyboard::the_keyboard().
enter
_window (ev, this);
- return Window::on_
enter_notify
_event (ev);
+ Keyboard::the_keyboard().
focus_in
_window (ev, this);
+ return Window::on_
focus_in
_event (ev);
}
bool
}
bool
-ArdourWindow::on_
leave_notify_event (GdkEventCrossing
*ev)
+ArdourWindow::on_
focus_out_event (GdkEventFocus
*ev)
{
{
- Keyboard::the_keyboard().leave_window (ev, this);
- return Window::on_leave_notify_event (ev);
+ if (!get_modal()) {
+ Keyboard::the_keyboard().focus_out_window (ev, this);
+ }
+ return Window::on_focus_out_event (ev);
}
void
}
void
@@
-92,8
+102,9
@@
void
ArdourWindow::init ()
{
set_border_width (10);
ArdourWindow::init ()
{
set_border_width (10);
+ add_events (Gdk::FOCUS_CHANGE_MASK);
-
/* ArdourWindows are not dialogs (they have no "OK" or "Close" button) but
+ /* ArdourWindows are not dialogs (they have no "OK" or "Close" button) but
they should be considered part of the same "window level" as a dialog. This
works on X11 and Quartz, in that:
they should be considered part of the same "window level" as a dialog. This
works on X11 and Quartz, in that:
@@
-103,7
+114,7
@@
ArdourWindow::init ()
vice versa.
*/
vice versa.
*/
- if (ARDOUR_UI::
instance()->
config()->get_all_floating_windows_are_dialogs()) {
+ if (ARDOUR_UI::config()->get_all_floating_windows_are_dialogs()) {
set_type_hint (Gdk::WINDOW_TYPE_HINT_DIALOG);
} else {
set_type_hint (Gdk::WINDOW_TYPE_HINT_UTILITY);
set_type_hint (Gdk::WINDOW_TYPE_HINT_DIALOG);
} else {
set_type_hint (Gdk::WINDOW_TYPE_HINT_UTILITY);