13
0
Commit Graph

1098 Commits

Author SHA1 Message Date
e5ae620c0b adjust debug/trace output for key bindings 2019-01-13 12:00:31 -06:00
f974ff594a additional API to make it nicer to get an existing action group 2019-01-13 11:59:18 -06: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
758d0ca263 replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls 2018-12-12 10:08:01 -05:00
e1b7a43139 add ActionManager::get_actions() to fetch all actions created in ActionGroups with a given "owner" value 2018-12-11 05:05:09 -05:00
1de181479f add basic concept of an "owner" for an action group, to allow later grouping 2018-12-10 18:40:31 -05:00
ab61c6837f add ActionManager::set_sensitive() for Gtk::ActionGroup 2018-12-10 18:40:00 -05:00
d1d8fd197d change ActionManager::find_action() back to ActionManager::get_action()
This avoids dozens or hundreds of unnecessary changes in gtk2_ardour code
2018-12-10 08:34:01 -05:00
ad002d0de0 consolidate ActionMap and ActionManager APIs into a single namespace 2018-12-10 08:34:01 -05:00
39c253c590 provide (Static)ActionMapOwner::action_map() 2018-12-10 08:34:00 -05: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
dd4c788d3e add syntactic sugar for fetching toggle and radio actions 2018-12-06 22:12:34 -05:00
eb48c14ec4 some ActionMap infrastructure to start removing ActionManager 2018-12-05 17:33:05 -05:00
4d7e9d5706 add new variant of ActionMap::find_action()
This is more useful when replacing ActionManager::get_action
2018-12-05 17:33:05 -05:00
fc24b9f0b7
Fix uninitialized variable 2018-11-29 02:10:08 +01:00
a22a501537
NO-OP: whitespace 2018-11-29 02:07:29 +01:00
7c3fd2fe79 Glib throws a const FileError exception 2018-10-26 13:40:03 +02:00
8ed33f1bc7 remove use of hardcoded -fPIC compiler flag, and use compiler flag dict instead 2018-10-14 22:06:11 -04:00
b27a8169d2 Ignore small (or negative) radii.
Some calls use e.g. (corner_radius - 1.5). With small radii or boxy
layout the radius can become negative.
2018-10-09 19:31:01 +02:00
b32b9ceb58 Constant radian/degree factor 2018-10-09 19:31:01 +02:00
e01582dd9a Prepare a boxy, no round borders, button-style 2018-10-02 21:28:49 +02:00
cf652331ad Adapt our remaining MSVC projects for 'boost::atomic' (in case it later gets extended to the other libs)
Stage 3 of 3
2018-09-30 09:19:28 +01:00
6ca8ec5141 remove debug output 2018-09-23 13:48:19 -04:00
12d5eb9a34 remove debug output 2018-09-23 13:48:19 -04:00
d48dd0ccd5 defer creating a visibility tracker for a window until the window is mapped
Without this, the visibility tracker will report that the window is not visible at startup, and
this overrides the XML _visible property which denotes that the window should be made visible
2018-09-23 13:48:19 -04:00
497a3fbaa1 Fix --no-nls (2/5), prefer #if in libs
This is for consistency with system-wide gettext.h which is used
by some 3rd party libs. system-wide gettext uses `#if ENABLE_NLS`,
not #ifdef
2018-09-21 19:03:33 +02:00
79f01bc889 Initial changes needed for building Mixbus (with MSVC) as version 5
(Mixbus itself will probably need extra changes)
2018-09-10 07:14:59 +01:00
4983eb565d Only update tooltips if there is an actual change -- #7268
Changing a tooltip resets the timeout. In one particular case,
while rolling, AudioClock::set() is calling set_tooltip() at a rate
faster than the tooltip timeout and prevents tooltip from showing at all
(even if there is no actual change to the tooltip text).
Alas, there is no trivial fix for this UI side and there may be other
such cases. A central check is more than practical.
2018-04-12 02:54:55 +02:00
b9c9777b9a When building with MSVC, allow for the fact that Mixbus and Ardour can be using different versions of the SESSION_FILE format 2018-02-15 09:03:32 +00:00
6f019faaa0 Accommodate the change from libtimecode to libtemporal 2018-02-14 10:02:11 +00:00
c833b56029 Explicit encoding for bindings html. 2018-01-17 16:52:16 +01:00
Hiroki Inagaki
720ad15a45 Update Japanese translation 2017-12-22 22:19:00 +01:00
3421c6e814 NO-OP: whitespace 2017-08-18 09:42:04 -04:00
f84bebbb30 strip <Actions>/ from displayed path when printing bindings to HTML 2017-08-18 09:42:04 -04:00
bbc8c1354e Separate set_toggleaction_state () API
Prepare for a method consistent with access_action():
* separate group + action names
* no action string parsing overhead.
* no fatal, abort () call for invalid actions
2017-08-09 16:29:24 +02:00
bf150f049f MSVC changes needed to implement the new 'widgets' library 2017-07-19 08:16:30 +01:00
8c6d78c188 add required stdint.h 2017-07-17 18:15:42 -04:00
601c317d70 Clean up library inheritance (colors.h, utils.h)
make libwidget independent of libcanvas.
Confine basics to pbd and gtkmm2ext.
2017-07-17 21:06:04 +02:00
eb1e423b75 Remove <gtkmm.h> include from header files. 2017-07-17 21:06:04 +02:00
f9e5e4360e Move more Gtkmm2ext widgets into libwidget 2017-07-17 21:06:04 +02:00
b5e9451bc7 Remove unused sources & includes 2017-07-17 21:06:04 +02:00
f6e182b937 Move Gtkmm2ext widgets into libwidget 2017-07-17 21:06:04 +02:00
5292a8f4ae Allow DnDVbox to sort the selection, using original order
In preparation for Processors to be copy/pasted in the same order
as they appear on the strip -- not order in which they are selected.
2017-07-04 18:08:35 +02:00
3a42383975 Add binding-proxy to ClickBox 2017-07-02 22:48:39 +02:00
c4fcb12d12 Add control-focus notifications from bindable widgets. 2017-07-02 18:19:13 +02:00
496ac30c41 Accommodate newly introduced source(s) in our MSVC project (gtkmm2ext) 2017-06-29 10:11:05 +01:00
fae592e8f4 Remove ambiguity ('CheckMenuItem' conflicts with an item already existing in MSVC) 2017-06-29 10:08:32 +01:00
972e01f9c7 Add a convenience MenuHelper c'tor
This is pretty much Gtkmm's
  * CheckMenuElem::CheckMenuElem
  * MenuElem::MenuElem
except MenuItems are created with bool mnemonic = false;
2017-06-29 00:22:34 +02:00
5ddd7a58b6 Remove unused pbd/locale_guard.h header from Gtkmm2ext::Barcontroller class 2017-06-22 10:48:38 +10:00
Edgar Aichinger
278d5bdab2 update german translation 2017-05-14 15:29:27 +02:00
401eefec1c remove cruft (unused UI::ui_scale) 2017-05-05 14:00:30 +02:00
2f37885e4b MIDI learn on ctrl + middle-click only (not ctrl + other mods + btn2).
This fixes various other operations that use ctrl + btn2.
e.g. ctrl+alt+btn2 temporary all un/solo/mute.
2017-05-04 00:35:56 +02:00
410f94cf1b Fix Editor/Mixer visibility (OSX, NSGLCanvas)
Only unpacking a widget retains the GdkWindow and and the widget is still
mapped. The NSView is still visible. See also 235631a6.
2017-04-27 16:23:48 +02:00
9488cb0b69 Use XMLNode::get/set_property API in Gtkmm2ext::WindowProxy class 2017-04-19 09:36:55 +10:00
6779770fee Use XMLNode::get/set_property API in Gtkmm2ext::Tearoff class 2017-04-19 09:36:55 +10:00
c627da0a9f Use XMLNode::get/set_property API in Gtkmm2ext::Tabbable class 2017-04-19 09:36:55 +10:00
1f3589b122 Use XMLNode::get/set_property API in Gtkmm2ext::Keyboard class 2017-04-19 09:36:55 +10:00
ac89bfd229 Use XMLNode::set_property API in Gtkmm2ext::Bindings class 2017-04-19 09:36:54 +10:00
e31f242836 Add missing <iostream> header include
This will be required for subsequent commits that remove inclusion of
<iostream> from some shared headers.
2017-04-19 07:49:58 +10:00
c6747c9325 NO-OP: whitespace 2017-04-17 01:50:12 +02:00
3d0366d46b Send unmap event when removing a widget
This fixes a crash when hiding an ArdourCanvas Item VCA which
is about to display a tooltip.
2017-04-17 01:46:27 +02:00
6e4eed51ca Shortcut editor: include a raw list of the currently-available actions in the printout. 2017-03-30 11:02:06 -05:00
500033b416 Debug NSView Exposure 2017-03-21 15:53:29 +01:00
5e9492b996 consolidate NSGLView 2017-03-21 15:53:29 +01:00
d294d03670 Accommodate newly introduced sources in our build projects (gtkmm2ext) 2017-03-21 10:31:03 +00:00
4d515ad086 The new class 'Gtkmm2ext::EventBoxExt' needs to be exportable when building with MSVC
(previously the c'tor was private and nothing was getting exported anyway)
2017-03-21 10:28:53 +00:00
533a93daa6 match name of synthesized property (fixed i386 builds) 2017-03-21 03:46:40 +01:00
5cf95848e9 Fix gcc4 builds 2017-03-21 03:46:40 +01:00
d3e730abbf fix OSX/PPC compilation 2017-03-21 01:58:45 +01:00
d06de26a4f Towards a consistent render() API.
This fixes an -Woverloaded-virtual ambiguity introduced in b5e613d45

  void render (cairo_t*, cairo_rectagle*)
  void render (Cairo::RefPtr<Cairo::Context> const&, cairo_rectangle_t*)

ArdourCanvas prefers cairomm and CairoWidget itself uses Cairo::Context,
this improves overall API consistency.
2017-03-20 17:12:08 +01:00
60a0b8f645 Forward un/map events to NSGLView 2017-03-20 17:12:08 +01:00
c0828792f0 NSGLView: default to hidden, add API to un/hide 2017-03-20 17:12:08 +01:00
235631a618 Add a EventBox wrapper to forward unmap events. 2017-03-20 17:12:08 +01:00
e307094af3 Allow CairoWidget to be backed by NSGLView 2017-03-20 05:19:38 +01:00
b5e613d453 Move NSGlView into libgtkmm2ext
This allows to re-use the concept with CairoWidget
2017-03-20 04:35:05 +01:00
9cc068756b Clean up existing bindings on reset 2017-03-13 20:09:10 +01:00
d6d1074565 create_action_group -> get_or_create_action_group
Since adding an action-groups hides existing actions with the same name,
this adds a way to look up actions first.

This fixes an issue introduced in 6af51b52ff (both window_manager.cc
and ardour_ui_ed.cc use the "Window" group.
2017-03-11 15:33:24 +01:00
0b966460a5 NO-OP whitespace 2017-03-11 00:36:47 +01:00
41216d200a Remove old modal get_color API. 2017-03-11 00:35:26 +01:00
3ecd5d6f08 Allow to pre-seed Tabbable detached state. 2017-02-20 22:55:31 +01:00
Hiroki Inagaki
5668f6b40e Update Japanese translation 2017-02-12 11:59:40 +01:00
e16141c9aa Tweak output formatting of save_all_bindings_as_html 2017-02-06 12:52:39 -06: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
Hiroki Inagaki
5a5ed37384 Update Japanese translation 2017-01-22 22:03:55 +01:00
6b5dce2c66 Yet another pane pain: allow deleting children using forall_vfunc
We not only need to make sure the iterator remains valid, but also
the object pointed to.

Valgrind trace:
Invalid read of size 8
 Gtkmm2ext::Pane::forall_vfunc(int, void (*)(_GtkWidget*, void*), void*) (pane.cc:617)
 Gtk::Container_Class::forall_vfunc_callback(_GtkContainer*, int, void (*)(_GtkWidget*, void*), void*)
 gtk_container_destroy (gtkcontainer.c:1073)
 g_closure_invoke (gclosure.c:804)
...
 g_object_run_dispose (gobject.c:1084)
2017-01-20 03:13:41 +01:00
Hiroki Inagaki
777647259e Add Japanese translation 2017-01-15 15:37:38 +01:00
cd14e8f2e1 add API to query name of bound action 2017-01-12 20:53:20 +01:00
c590b540b0 NO-OP: whitespace 2017-01-08 17:48:57 +01:00
66e580d683 Fix Pane size allocation:
* Skip calling allocate on recently hidden children.
* Don't [temporarily] call size_allocate with negative sizes
2017-01-08 17:48:21 +01:00
cbf5f3d622 Fix crash when changing Pane widgets -- #7198
Gtkmm2Ext::Pane::on_add() uses a pointer to a std::vector<> element
in the destroy notify callback. If the vector is modified, that pointer
becomes invalid.

Add 2 widgets "A", "B". remove "B", add another one "C".
Now if A is destroyed, notify_child_destroyed(PTR) points to
invalid memory and not to "A".
2017-01-08 12:39:07 +01:00
Olivier Humbert
fda770eed0 French translation update 2017-01-05 09:31:09 +00:00
Olivier Humbert
7f5fcd4789 French translation update 2017-01-05 09:31:09 +00:00
c33f94f686 Enforce minimum pane sizes
* enforce minimum size of child widgets
* honor manually set child-minsize in size-requests
* ignore hidden children (eg. VCA)
* clamp divider position (instead of just ignoring out-of-bounds moves)
2017-01-02 17:13:56 +01:00
de04da27ee Fix crash when unpacking or deleting pane
Gtk::Widget_Class::dispose_vfunc_callback calls hide() which invokes
Pane::handle_child_visibility which calls Pane::reallocate which
tries to get the allocation of the widget being destroyed.
2016-12-21 17:10:37 +01:00
377b357afb Add Zoom/Expand icon 2016-12-20 18:48:10 +01:00
004431426d Towards packing CairoWidgets on ArdourCanvas. 2016-12-19 13:36:42 +01:00
545f5bee87 changes to adapt to modified version of GTK/Quartz which uses only MOD2 for Command, everywhere.
The default version of GTK2/Quartz uses MOD2+META for keys and MOD2 for scroll, which is
basically insane
2016-12-13 07:02:08 -05:00
cdbf49b873 Revert "Pixel hunt cairo-packer (status-bar, selection-clock border)"
This reverts commit 6015481377.
2016-12-11 02:19:10 +01:00
6015481377 Pixel hunt cairo-packer (status-bar, selection-clock border) 2016-12-11 01:32:27 +01:00
642b357376 CairoPacker draws outside of its widget allocation
This fixes fixes TimeInfoBox packing when the InfoBox position changes.
2016-12-10 21:30:33 +01:00