Commit Graph

55 Commits

Author SHA1 Message Date
Robin Gareus 16030f63a1
Keep Ardour dialog on top of parent 2023-06-10 21:36:31 +02:00
Paul Davis f8469a49ed fix compilation 2022-12-12 10:20:02 -07:00
Paul Davis 095b84080a ArdourDialog: API to prevent idle callbacks during response handling 2022-12-12 10:15:55 -07:00
itmuckel 77356c0ebb
Reformat and remove unused imports 2022-05-13 23:07:49 +02:00
Robin Gareus e406a1bd41
Mark non-modal dialogs as utility windows
This addresses an issue with gnome and mate, where
dialog windows do not have a window close button,
and expect direct interaction with the user "OK/Cancel",
"Yes/No", etc.
2021-07-22 05:45:30 +02:00
Robin Gareus f715edf7bc
Yet Another Splash Push/Pop Fix
Don't explicitly `show()` the splash when a message arrives.
On macOS and Windows the splash is not z-axis re-stacked but
hidden. Calling show() makes it visible again.
2021-06-28 15:52:32 +02:00
Robin Gareus 8237add6d2
Keep track of splash visibility behind dialogs
This fixes various issues, esp on macOS and Windows where
the window is only hidden, not re-stacked:

* plugin scan dialog hides the splash, but
  the plugin-manager emits BootMessage
  (this worked mostly because gtk event loop didn't
  have time to catch up)

* More than one dialog can pop back/front the splash,
  e.g. scripted session-setup or error messages when
  loading recent sessions.
2021-06-23 17:55:01 +02:00
Paul Davis f2ee30c0ec add ArdourDialog::set_ui_sensitive() to provide a way to mark an arbitrary ArdourDialog as "should not respond to user input" 2020-01-24 15:56:37 -07:00
Robin Gareus 0ad9c3de1a
Fix another stuck splash screen
Don't allow dialogs to re-create the splash only to hide it.
2020-01-17 18:52:33 +01:00
Paul Davis 4abdfe19d1 don't inadvertently create a Splash when a dialog is shown 2019-10-24 21:32:46 -06:00
Robin Gareus 4050ca5633
Update GPL boilerplate and (C)
Copyright-holder and year information is extracted from git log.

git history begins in 2005. So (C) from 1998..2005 is lost. Also some
(C) assignment of commits where the committer didn't use --author.
2019-08-03 15:53:15 +02:00
Robin Gareus e42699600b
Delete temporary Window Proxy for dialogs
There are two cases:
 (A) Proxy is created first, dialog is created later on demand
 (B) Dialog is created and directly registers its window as proxy

In (B) the dialog is usually on the stack and destroyed when the
ArdourDialog instances leaves scope. In that case ~ArdourDialog()
is called and the proxy remained.

Destroying the proxy does destroy the registered window in ~WindowProxy()
If ArdourDialog's d'tor itself deletes the proxy it would recurse into
itself. Existing APIs e.g. drop_window() likewise delete the window and
cannot be safely called from ~ArdourDialog.
2018-11-29 14:25:22 +01:00
Robin Gareus d9767b10ac Fix another crash at exit.
During ARDOUR_UI::finish(), after destroying various instances:
close_all_dialogs() -> ArdourDialog::on_response() -> GUIIdle()

The event loop recurses and may execute a previously scheduled
Editor::idle_visual_changer()
2017-07-03 14:03:10 +02:00
Robin Gareus 057bb167ca Run gtk-main iteration after hiding dialogs 2017-04-20 23:15:13 +02:00
Robin Gareus 3e43585fa1 Pop splash on dialog response - not d'tor.
A Dialog Window may not be tightly scoped, and may be around
for a while (query settings from the dialog instance). The destructor
may only be called  later.
2017-04-01 16:40:07 +02:00
Robin Gareus dae7e8dbd3 NO-OP: whitespace 2017-04-01 15:56:35 +02:00
Paul Davis 207fa93cf9 when destroying an ArdourDialog, be sure the Keyboard object knows about it.
It seems that there are ways to destroy a window without it emitting focus out
2016-06-07 18:28:32 -04:00
nick_m 3fb3b85e3e Default to WIN_POS_MOUSE for dialogs also. 2015-10-20 00:53:31 +11:00
Paul Davis 4dc63966f0 globally remove all trailing whitespace from ardour code base.
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
Paul Davis 57613dc0cc ArdourDialog and ArdourWindow don't change magic widget focus 2015-04-01 12:44:35 -04:00
nick_m c94d352f56 Potential fix for AU window close crash. 2015-04-02 03:32:21 +11:00
nick_m 35f69656e8 Window focus handling fixes.
Many windows were not getting key events.
Use magic focus infrastructure (built for widgets) to deliver key events
via window focus in/out.
2015-04-02 02:41:49 +11:00
nick_m 8a37c1cd83 Non-transient ArdourDialogs and ArdourWindows appear in the centre
of the screen initially (first use in a new session) rather than at
the mouse position.
2015-03-15 06:25:06 +11:00
Robin Gareus a3c378cf62 move utility functions into a dedicated namespace 2014-06-25 21:47:54 +02:00
Robin Gareus e977b659af fix keyboard shorcuts in dialogs.
actually, for most dialogs, key-presses should never
be relayed. a get_modal() check might be the appropriate.
2014-06-14 00:22:32 +02:00
Paul Davis bedc7b170e change namespace/naming of WindowManager classes; register all ArdourDialog and ArdourWindow classes as ProxyTemporary windows so that transient-for can be set for all such windows 2013-05-07 22:09:16 -04:00
Paul Davis 87d502c15b work work on window mgmt: offer the change to mark all floating windows as Dialogs (in th theme manager), and mark ArdourWindow and ArdourDialog as transient-for on creation, based on current WindowManager (ardour-object) settings 2013-05-07 18:09:12 -04:00
Paul Davis f96a5c2a95 make ArdourDialog and ArdourWindow call ::relay_key_press() which fixes the "not-toggleable-on-first-show" and other issues 2013-05-06 10:58:35 -04:00
Paul Davis 65b6f8efad more window management rationalization 2013-05-05 16:10:54 -04:00
Paul Davis 6fd66bd467 move CloseAllDialogs signal and associated method from ArdourDialog to ARDOUR_UI, and make ArdourWindow obey it too 2013-05-02 21:13:36 -04:00
Paul Davis 3973ce81b3 remove all of Gtk::Window::set_position (WIN_POS_MOUSE) for anything deriving from ArdourDialog or ArdourWindow; move the set_position() call into those classes' constructors, so that they are called before the windows are realized, and thus it actually works 2013-05-02 18:13:35 -04:00
Paul Davis a9341bd5f0 improve relationship between ArdourDialog and Splash on OS X, where window restacking doesn't really work the way we need it to. more complex than anticipated because it seems that destroying a Gtk::Dialog does not emit its hide() or unmap() or unmap_event() signals 2013-04-30 13:50:45 -04:00
Paul Davis b53c92b652 the return of the splash, with a few changes to help with window layering a little
git-svn-id: svn://localhost/ardour2/branches/3.0@11222 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-10 18:21:39 +00:00
David Robillard 5770f26bc9 Add ArdourWindow class for non-dialog windows.
Make IOSelector an ArdourWindow.

It's debatable whether this one should actually be a window, cancel buttons
might actually be useful on the IO selector.


git-svn-id: svn://localhost/ardour2/branches/3.0@10691 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-18 21:56:01 +00:00
David Robillard cd4e803f60 Clean up ArdourDialog.
Remove undefined static ArdourDialog::close_all_current_dialogs.

Remove pointless ArdourDialog::on_key_press_event.

Defer to Gtk::Dialog::on_[enter|leave]_notify_event.  I'm not sure exactly
what these currently do, but not calling it doesn't seem like a good idea.

Trim include tree ever so slightly.


git-svn-id: svn://localhost/ardour2/branches/3.0@10690 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-18 21:03:21 +00:00
Paul Davis f6fdd8dcbf switch to using boost::signals2 instead of sigc++, at least for libardour. not finished yet, but compiles, loads sessions, records and can close a session without a crash
git-svn-id: svn://localhost/ardour2/branches/3.0@6372 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-17 18:24:23 +00:00
Paul Davis 8687895abb remove using namespace sigc everywhere to ensure clarity over which bind/mem_fun is being used; make Config::map_parameters take a boost::function rather than a sigc::slot ; continue debugging crash caused by regionviews not tracking their Region's lifetime
git-svn-id: svn://localhost/ardour2/branches/3.0@6357 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-12 15:02:15 +00:00
Paul Davis 64dc5427e4 make all use of bind/mem_fun be explicitly sigc::
git-svn-id: svn://localhost/ardour2/branches/3.0@6354 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-11 23:29:48 +00:00
Paul Davis 7703f0a76a move generic parts of Keyboard into gtkmm2ext. imperfectly done, but makes modifiers available in libgtkmm2ext now
git-svn-id: svn://localhost/ardour2/branches/3.0@6288 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-04 22:51:32 +00:00
David Robillard bb9cc45cd2 Strip trailing whitespace and fix other whitespace errors (e.g. space/tab mixing). Whitespace changes only.
Vimmers, try let c_space_errors = 1 in your .vimrc to highlight this kind of stuff in red.  I don't know the emacs equivalent...


git-svn-id: svn://localhost/ardour2/branches/3.0@5773 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-14 16:10:01 +00:00
Carl Hetherington 3b89d9eaa0 Remove most using declarations from header files.
git-svn-id: svn://localhost/ardour2/branches/3.0@5069 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-12 17:03:42 +00:00
Paul Davis bc89fe0147 most of the 2.X->3.0 commit (up to rev 4299) except for gtk2_ardour/editor_canvas.cc; builds and runs and does a few specific things but expect it to be buggy for a while yet
git-svn-id: svn://localhost/ardour2/branches/3.0@4313 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-12-12 14:43:24 +00:00
Paul Davis 1c299d5a5c merge Sakari's (sbergen) branch back into 3.0, removing libsndfile and adding taglib
git-svn-id: svn://localhost/ardour2/branches/3.0@3736 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-09-17 08:44:51 +00:00
David Robillard 80c3677c83 Merge with 2.0-ongoing R2988
git-svn-id: svn://localhost/ardour2/branches/3.0@2991 d708f5d6-7413-0410-9779-e7cbd77b26cf
2008-02-02 17:22:04 +00:00
Paul Davis f7f9d6fdc4 merge from 2.0-ongoing by hand, minus key binding editor
git-svn-id: svn://localhost/ardour2/trunk@2539 d708f5d6-7413-0410-9779-e7cbd77b26cf
2007-10-11 22:07:47 +00:00
Taybin Rutkin fd20404daa Updates for set_type_hint() and the sfdb_ui.
git-svn-id: svn://localhost/trunk/ardour2@239 d708f5d6-7413-0410-9779-e7cbd77b26cf
2006-01-04 05:53:51 +00:00
Paul Davis f69c9ed564 lots and lots of keybindings working again, with lots more menu items
git-svn-id: svn://localhost/trunk/ardour2@209 d708f5d6-7413-0410-9779-e7cbd77b26cf
2005-12-24 18:25:26 +00:00
Paul Davis 3436df6eab the usual blob of fixes. note the requirement for ComboBoxText::set_active_text()
git-svn-id: svn://localhost/trunk/ardour2@160 d708f5d6-7413-0410-9779-e7cbd77b26cf
2005-12-02 19:18:26 +00:00
Paul Davis 1f16781c75 slowly fixing up ArdourDialog nonsense
git-svn-id: svn://localhost/trunk/ardour2@132 d708f5d6-7413-0410-9779-e7cbd77b26cf
2005-11-27 21:17:41 +00:00
Paul Davis fb45ffea71 strip keyboard.cc of noxious focus handling stuff, and cleanup
git-svn-id: svn://localhost/trunk/ardour2@106 d708f5d6-7413-0410-9779-e7cbd77b26cf
2005-11-23 04:13:32 +00:00