13
0
Commit Graph

30 Commits

Author SHA1 Message Date
73b44532f1
Allow to override visibility tracker
This is in preparation to keep track of external UI plugin UIs
2023-11-26 20:06:35 +01:00
ddf894a1dd
Attempted fix for idle_drop_window random crashes (2/2) 2022-12-03 19:27:53 +01:00
f107c063e7 Add conveniece API to set trasient-parent for Proxy Windows
On macOS, a transient parant should only be set for a single child
window. sibling windows to a single parent cannot be re-stacked.
2022-11-15 03:03:49 +01:00
03642d3707
Mark window invisible after deleting it
This fixes an issue when destroying VST plugin UIs
rather than hiding them. Even though is hidden before destroying it,
the vistracker is also destroyed in the same function call, before
the event can be processed. The window state remains visible="1"
2022-10-21 18:11:19 +02:00
f89845e64a
Prevent duplicate signal emission
Re-assigning a sigc::connection does not disconnect
any previously connected signals.

WindowProxy::setup may be called multiple times. Notably plugin
windows can change the managed _window (generic/custom), which
requires a call to setup.
2022-10-08 17:12:10 +02:00
Mads Kiilerich
d52c727ec5
gtkmm: use get_mapped instead of deprecated Gtk::Widget::is_mapped() 2022-04-08 20:20:10 +02:00
7bf89ce109 Constification: make Stateful::get_state() const, with all other required const-ness added (libs) 2022-04-06 21:56:59 -06:00
b258ad792e force provision of "menu-name" for all WindowProxy objects, and thus Tabbables
Actions for hide/show/attach/detach tabbables use hard-coded names which are not
translated. Using Tabbable/WindowProxy::name() to lookup the action will fail,
since the name can be translated. This changes just removes the option to not
provide a menu-name when creating these objects, and uses the name menu-name
when looking up an action by name
2020-05-01 14:33:47 -06:00
cec5ce8f45
Update canvas/UI lib GPL boilerplate and (C) from git log 2019-08-03 15:53:17 +02:00
58db958839
Fix crash for external windows
eg. LV2 externalUI windows are not managed by ardour; Ardour cannot
intercept mapped() or delete_event() signals and hence also not
create a visibility-tracker.

First call to WindowProxy::toggle() creates the window, and the 2nd call
crashed since 6ca8ec5141, due to missing vistracker.

e.g. externalUI plugin windows, the processor-box uses WindowProxy
for all plugin-UIs incl. externalUIs.
2018-12-20 19:41:57 +01:00
9004a0df7a
Properly keep track of Window Visibility, action state
This fixes inconsistent WM::Proxy state when a window is destroyed
Specifically "session-options-editor" when the session is unloaded;
previously "toggle-session-options-editor" was never unset.
2018-12-08 22:38:03 +01:00
fc24b9f0b7
Fix uninitialized variable 2018-11-29 02:10:08 +01:00
6ca8ec5141 remove debug output 2018-09-23 13:48:19 -04:00
9488cb0b69 Use XMLNode::get/set_property API in Gtkmm2ext::WindowProxy class 2017-04-19 09:36:55 +10:00
ddd0e862ce Properly remember window position.
Querying the position of unmapped windows may or may not return a valid
position. -- the configure handler is also called after hiding a window.
2017-02-01 23:07:57 +01:00
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
8d17465016 give WindowProxy its own map/unmap signals so that other things can track map/unmap without accessing the Window 2016-06-12 22:49:15 -04:00
4963d65206 track geometry via configure events for tabbable own-windows 2016-05-10 09:46:12 -04:00
17ace643e4 OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one) 2016-05-04 23:09:45 -04:00
9634888bf3 add the concept of a "state mask" that determines what info a WindowProxy will save 2016-04-27 00:03:14 -04:00
e4a7e5a239 improve size and positioning of Tabbable's after being torn off, hidden, reshown, etc 2016-02-26 18:51:32 -05:00
a29fd4542e a bunch of stuff to make tab/window switching work better, and provide Alt-m to toggle between editor+mixer in a sane way 2016-02-22 15:31:25 -05:00
bc487bb4b0 replicate the remove-all-trailing whitespace commit(s) in master 2016-02-22 15:31:24 -05:00
00933950b7 small rationalization of naming and code for managing plugin GUI visibility 2016-02-22 15:31:23 -05:00
436706c8d4 remove debug output 2016-02-22 15:31:22 -05:00
e46b518319 classes derived from WindowProxy are responsible for their own window creation in ::set_state().
Fixes a crash reported by A.Prokoudine when opening a session with visible plugin GUIs
2016-02-22 15:31:22 -05:00
552e995297 save/restore tabbable state 2016-02-22 15:31:21 -05:00
9010262bed first compilable version of tabbable design.
I would have loved to split this apart, but there are just so many interrelated changes,
it makes little sense and would be a huge effort that would break future git bisect
use because so many intermediate commits would not compile
2016-02-22 15:31:21 -05:00
85eee3b09d compilable version of WindowProxy 2016-02-22 15:31:21 -05:00
df05e97288 first version of Gtkmm2ext::WindowProxy 2016-02-22 15:31:21 -05:00