ardour.git
5 years agoPrefer key-event dispatch over emulated events for VST plugins.
Robin Gareus [Thu, 1 Nov 2018 18:14:25 +0000 (19:14 +0100)]
Prefer key-event dispatch over emulated events for VST plugins.

5 years agoAdd API to dispatch keyboard events to VST Plugins
Robin Gareus [Thu, 1 Nov 2018 18:12:43 +0000 (19:12 +0100)]
Add API to dispatch keyboard events to VST Plugins

5 years agoCorrect new track/bus/VCA dialog text
Len Ovens [Thu, 1 Nov 2018 18:31:05 +0000 (11:31 -0700)]
Correct new track/bus/VCA dialog text

5 years agoConsider size of port matrix column labels for size of row labels
Johannes Mueller [Sun, 28 Oct 2018 16:22:32 +0000 (17:22 +0100)]
Consider size of port matrix column labels for size of row labels

The column labels are drawn in an angle towards the edge where the row labels
are. Therefore, if the column labels are much longer than the row labels it can
happen that they go beyond the left edge. In that case we have to add an extra
width to the row labels.

5 years agoUpdate names of sidechains.
Johannes Mueller [Sat, 27 Oct 2018 19:36:21 +0000 (21:36 +0200)]
Update names of sidechains.

When a PluginInsert is created it does not have an owner right away. That's why
a we need to set the sidechains name once the owner is known, in order to
include owner's name into the name.

Furthermore we need to follow renames of the owner.

5 years agoPut the sidechain ports into a dedicated tab in PortMatrix
Johannes Mueller [Sat, 27 Oct 2018 01:28:52 +0000 (03:28 +0200)]
Put the sidechain ports into a dedicated tab in PortMatrix

5 years agoSkip VST version check to detect MIDI inputs
Robin Gareus [Thu, 1 Nov 2018 14:27:08 +0000 (15:27 +0100)]
Skip VST version check to detect MIDI inputs

Some plugins return 0 from effGetVstVersion and are hence not detected
as instruments. e.g. VeeSeeVSTRack (VCV). This may also explain why MIDI
port of some other VSTs are not exposed.

Most VST2.4 return 2400, so checking  [effGetVstVersion] >=2 (and not 2000)
was incorrect to begin with.

5 years agoFix key-forwarding to linuxVST UIs
Robin Gareus [Thu, 1 Nov 2018 00:27:30 +0000 (01:27 +0100)]
Fix key-forwarding to linuxVST UIs

Tested with VeeSeeVST

5 years agoAllow to limit strip-inline controls (GUI optimization)
Robin Gareus [Wed, 31 Oct 2018 22:43:39 +0000 (23:43 +0100)]
Allow to limit strip-inline controls (GUI optimization)

5 years agoPreference Dropdown to limit Automatable Parameters
Robin Gareus [Wed, 31 Oct 2018 22:34:41 +0000 (23:34 +0100)]
Preference Dropdown to limit Automatable Parameters

5 years agoAdd option to limit automatable control parmaters
Robin Gareus [Wed, 31 Oct 2018 22:32:16 +0000 (23:32 +0100)]
Add option to limit automatable control parmaters

VCVRack VST currently exposes 9999 automatable-control parmaters.
This slows down various GUI dropdown lists and dialogs.
(even worse: those parameters are not mapped to anything by default).

This change allows to limit automatable parameters to a reasonable number,
without loosing state of already automated parameters in existing sessions.

5 years agoRemove duplicate call
Robin Gareus [Wed, 31 Oct 2018 22:25:50 +0000 (23:25 +0100)]
Remove duplicate call

Automatable::add_control() already does insert a given parameter
to the _can_automate_list list if it's automatable.

5 years agoNO-OP: whitespace
Robin Gareus [Wed, 31 Oct 2018 22:22:23 +0000 (23:22 +0100)]
NO-OP: whitespace

5 years agoOSC: Allow non-cue surfaces to create personal send and ListenBus
Len Ovens [Tue, 30 Oct 2018 19:13:46 +0000 (12:13 -0700)]
OSC: Allow non-cue surfaces to create personal send and ListenBus

5 years agoAdd ListenBus to stripable types
Len Ovens [Mon, 22 Oct 2018 19:36:59 +0000 (12:36 -0700)]
Add ListenBus to stripable types

5 years agoNew Route dialog: add fallback default selection
Robin Gareus [Tue, 30 Oct 2018 15:09:22 +0000 (16:09 +0100)]
New Route dialog: add fallback default selection

This fixes an issue with Mixbus. If the default "Create Audio Tracks.."
template/script is not available. Nothing is selected.

Selecting a type/template is required to update various other dialog
fields. eg. "Name" field.

Previously: Create VCA. OK+Close. Re-open dialog. Now the
implicit default was "Audio Track" but the Name-field still showed "VCA".

5 years agoSafe-guard non-rt-safe sidechain operations
Robin Gareus [Mon, 29 Oct 2018 20:52:47 +0000 (21:52 +0100)]
Safe-guard non-rt-safe sidechain operations

This is required by 7d8b93ad for showing error when actively recording.
It also prevents other UIs (OSC, Lua,..) to change re-configuring
sidechain ports/plugins while recording.

5 years agoConsolidate PinDialog Session/recording checks
Robin Gareus [Mon, 29 Oct 2018 20:50:08 +0000 (21:50 +0100)]
Consolidate PinDialog Session/recording checks

- _session cannot be NULL while the dialog is visible.
  This removes extra `if (_session)` tests.
- Operations now no longer fail silently, but show error messages.

5 years agoSet session of PluginPinWidget created after ::set_session()
Johannes Mueller [Sun, 28 Oct 2018 20:29:52 +0000 (21:29 +0100)]
Set session of PluginPinWidget created after ::set_session()

PluginPinWidgets initially receive their Session pointer by
PluginPinDialog::set_session(). When a RouteProcessorChange occurs all
PluginPinWidgets are recreated. Those newly created instances need a pointer to
the session.

5 years agoProcessor-box control context menu update
Robin Gareus [Sun, 28 Oct 2018 20:03:43 +0000 (21:03 +0100)]
Processor-box control context menu update

5 years agoDon't show hidden controls inline in the mixer-strip
Robin Gareus [Sun, 28 Oct 2018 19:37:20 +0000 (20:37 +0100)]
Don't show hidden controls inline in the mixer-strip

5 years agoOnly allow LV2 touch events for control inputs
Robin Gareus [Sun, 28 Oct 2018 19:34:21 +0000 (20:34 +0100)]
Only allow LV2 touch events for control inputs

This fixes a crash when a plugin sends a touch events for non-control ports.

5 years agoFix incorrect VST callback fall-though (effective NOOP)
Robin Gareus [Sat, 27 Oct 2018 08:33:58 +0000 (10:33 +0200)]
Fix incorrect VST callback fall-though (effective NOOP)

5 years agoFix another compiler warning
Robin Gareus [Sat, 27 Oct 2018 08:33:07 +0000 (10:33 +0200)]
Fix another compiler warning

5 years agoWimplicit-fallthrough fixes for tools/utils
Robin Gareus [Fri, 26 Oct 2018 12:53:11 +0000 (14:53 +0200)]
Wimplicit-fallthrough fixes for tools/utils

5 years agoWimplicit-fallthrough fixes for gtk-ardour
Robin Gareus [Fri, 26 Oct 2018 12:31:14 +0000 (14:31 +0200)]
Wimplicit-fallthrough fixes for gtk-ardour

5 years agoFix some Wimplicit-fallthrough
Robin Gareus [Fri, 26 Oct 2018 12:30:26 +0000 (14:30 +0200)]
Fix some Wimplicit-fallthrough

A "fall through" comment is most portable way to indicate
"no break, fallthru" cases.

 * __attribute__ ((fallthrough))  // is not portable
 * [[fallthrough]]; // is C++17

5 years agoFix some compiler warnings (exception catches)
Robin Gareus [Fri, 26 Oct 2018 12:25:55 +0000 (14:25 +0200)]
Fix some compiler warnings (exception catches)

5 years agoGlib throws a const FileError exception
Robin Gareus [Fri, 26 Oct 2018 11:40:03 +0000 (13:40 +0200)]
Glib throws a const FileError exception

5 years agoFix Lua bindings (music-time, mapping)
Robin Gareus [Fri, 26 Oct 2018 11:38:28 +0000 (13:38 +0200)]
Fix Lua bindings (music-time, mapping)

5 years agoPlugin analysis numerics
Robin Gareus [Thu, 25 Oct 2018 02:25:15 +0000 (04:25 +0200)]
Plugin analysis numerics

Show vertical marker-line (freq) and precise numeric data of the
transfer function (dB, deg).

5 years agoFix race-condition/deadlock, plugin-copy while rolling
Robin Gareus [Thu, 25 Oct 2018 00:00:08 +0000 (02:00 +0200)]
Fix race-condition/deadlock, plugin-copy while rolling

lili93's session (#ardour) triggered this w/jackd 512fpp:
Drag/Drop copy a latent plugin from one track to another while rolling.
The GUI-thread as well as the auto-connect thread concurrently call
jack_recompute_total_latencies(). The auto-connect thread holds
a process lock while doing so. The GUI does not use any mutexes.
This randomly deadlocks in libjack.

backtrace: https://pastebin.com/6m3KGhWS

5 years agoFix typo in binding, amend 9bbbc7fbe
Robin Gareus [Tue, 23 Oct 2018 22:15:44 +0000 (00:15 +0200)]
Fix typo in binding, amend 9bbbc7fbe

5 years agoAdd some missing link libs to MSVC zita-convolver
John Emmas [Tue, 23 Oct 2018 08:55:31 +0000 (09:55 +0100)]
Add some missing link libs to MSVC zita-convolver

5 years agoFix an edge-case in Dummy backend's random generator
Robin Gareus [Mon, 22 Oct 2018 13:46:39 +0000 (15:46 +0200)]
Fix an edge-case in Dummy backend's random generator

INT_MAX == 2^31 is not a valid random seed for this LCG.

5 years agoSort VST factory presets
Robin Gareus [Mon, 22 Oct 2018 13:43:46 +0000 (15:43 +0200)]
Sort VST factory presets

This is more of a workaround than a fix. Simply by forcing the
URI to be sortable (VST-user presets are sorted at the end).

This eventually needs a deeper cleanup and API consolidation

PluginInfo::get_presets(bool) returns an ordered std::vector.
However this API is only used in a few cases where the plugin is
not instantiated. PluginInfo::get_presets(bool).

The problem is Plugin::get_presets(). The method returns
information that was previously cached by Plugin::find_presets() in
std::map<URI, ...>

5 years agoRemaining changes needed to build zita-convolver with MSVC
John Emmas [Mon, 22 Oct 2018 07:56:22 +0000 (08:56 +0100)]
Remaining changes needed to build zita-convolver with MSVC

5 years agoAdd MSVC support for building the 'zita-convolver' library (which is now needed by...
John Emmas [Mon, 22 Oct 2018 07:53:20 +0000 (08:53 +0100)]
Add MSVC support for building the 'zita-convolver' library (which is now needed by libardour)

5 years agoAccommodate newly introduced source(s) in our MSVC project (fluidsynth)
John Emmas [Mon, 22 Oct 2018 07:46:59 +0000 (08:46 +0100)]
Accommodate newly introduced source(s) in our MSVC project (fluidsynth)

5 years agoPotential fix for lost VST MIDI events
Robin Gareus [Sun, 21 Oct 2018 18:45:25 +0000 (20:45 +0200)]
Potential fix for lost VST MIDI events

Ardour's VST MIDI buffer API does not yet implement offsets and limits.
When a cycle is split, the same midi-buffer is used for all sub-divisions
leading to duplicate, offset, events.

5 years agoMSVC compatibility for zita-convolver
Robin Gareus [Sun, 21 Oct 2018 15:02:14 +0000 (17:02 +0200)]
MSVC compatibility for zita-convolver

5 years agoAvoid use of 'std::to_string
Christopher Arndt [Sat, 20 Oct 2018 22:56:38 +0000 (00:56 +0200)]
Avoid use of 'std::to_string

Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
5 years agoAdd plugin version and parameter count to VST user presets
Christopher Arndt [Sat, 20 Oct 2018 21:48:21 +0000 (23:48 +0200)]
Add plugin version and parameter count to VST user presets

Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
5 years agoPersonal monitor now saves and restores
Len Ovens [Fri, 19 Oct 2018 23:58:39 +0000 (16:58 -0700)]
Personal monitor now saves and restores

5 years agoExample convolution plugin (Lua script, hardcoded IR)
Robin Gareus [Fri, 19 Oct 2018 17:13:36 +0000 (19:13 +0200)]
Example convolution plugin (Lua script, hardcoded IR)

5 years agoLua bindings for convolution DSP
Robin Gareus [Thu, 18 Oct 2018 23:08:04 +0000 (01:08 +0200)]
Lua bindings for convolution DSP

5 years agoImplement basic libardour convolution DSP
Robin Gareus [Thu, 11 Oct 2018 13:29:10 +0000 (15:29 +0200)]
Implement basic libardour convolution DSP

5 years agozita-convolver windows/mingw build fix
Robin Gareus [Thu, 11 Oct 2018 15:25:26 +0000 (17:25 +0200)]
zita-convolver windows/mingw build fix

- semaphore is available,
- pthread_t is not a pointer type (but here it's not used anyway)

5 years agoNO-OP: clang-format whitespace
Robin Gareus [Wed, 10 Oct 2018 22:52:37 +0000 (00:52 +0200)]
NO-OP: clang-format whitespace

5 years agozita-convolver: add namespace & visibility, remove global externs
Robin Gareus [Wed, 10 Oct 2018 22:43:06 +0000 (00:43 +0200)]
zita-convolver: add namespace & visibility, remove global externs

5 years agoAdd upstream libzita-convolver 4.0.3
Robin Gareus [Wed, 10 Oct 2018 22:35:53 +0000 (00:35 +0200)]
Add upstream libzita-convolver 4.0.3

5 years agoAllow Lua DSP processors to report latency
Robin Gareus [Fri, 19 Oct 2018 16:10:19 +0000 (18:10 +0200)]
Allow Lua DSP processors to report latency

5 years agoAdd personal monitor sends
Len Ovens [Fri, 19 Oct 2018 15:49:30 +0000 (08:49 -0700)]
Add personal monitor sends

5 years agoFix copy/edit in e047b01aa256
Robin Gareus [Thu, 18 Oct 2018 13:07:45 +0000 (15:07 +0200)]
Fix copy/edit in e047b01aa256

5 years agoFix scalar initialization of shared_ptr<>.
Robin Gareus [Thu, 18 Oct 2018 02:15:47 +0000 (04:15 +0200)]
Fix scalar initialization of shared_ptr<>.

5 years agoFluidsynth 2.0 uses anonymous unions (added in c11, or gnu99)
Robin Gareus [Thu, 18 Oct 2018 02:09:14 +0000 (04:09 +0200)]
Fluidsynth 2.0 uses anonymous unions (added in c11, or gnu99)

5 years agoFollow fluidsynth's API changes introduced with 2.0.0
Andreas Müller [Thu, 11 Oct 2018 22:56:59 +0000 (00:56 +0200)]
Follow fluidsynth's API changes introduced with 2.0.0

Updated patch from Andreas Müller <schnitzeltony@gmail.com>

5 years agoUpdate Fluidsynth to 2.0.1
Robin Gareus [Wed, 17 Oct 2018 22:41:02 +0000 (00:41 +0200)]
Update Fluidsynth to 2.0.1

5 years agoNoop: fix white space
Len Ovens [Wed, 17 Oct 2018 23:25:49 +0000 (16:25 -0700)]
Noop: fix white space

5 years agoOption to hide send if aux is hidden
Len Ovens [Wed, 17 Oct 2018 22:58:08 +0000 (15:58 -0700)]
Option to hide send if aux is hidden

5 years agoPrevent excessive meter redraws for inactive meters at zero II
Andreas Müller [Wed, 17 Oct 2018 20:10:41 +0000 (22:10 +0200)]
Prevent excessive meter redraws for inactive meters at zero II

Same as be826f363522dbca96c8263d404c57c4fe9ff0e2

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
5 years agocorrect comment
Paul Davis [Wed, 17 Oct 2018 18:13:52 +0000 (14:13 -0400)]
correct comment

5 years agouse IsPhysical port flag to decide what to show in the "system" tab of a patchbay...
Paul Davis [Wed, 17 Oct 2018 18:11:32 +0000 (14:11 -0400)]
use IsPhysical port flag to decide what to show in the "system" tab of a patchbay/matrix

5 years agoadd new API for retrieving port flags from backend
Paul Davis [Wed, 17 Oct 2018 18:10:50 +0000 (14:10 -0400)]
add new API for retrieving port flags from backend

5 years agoFix MMC range 0..127 (libardour uses and 0x7f)
Robin Gareus [Wed, 17 Oct 2018 17:56:06 +0000 (19:56 +0200)]
Fix MMC range 0..127 (libardour uses and 0x7f)

5 years agowhen calling Session::engine_halted() after a user-driven engine stop, make sure...
Paul Davis [Wed, 17 Oct 2018 17:15:52 +0000 (13:15 -0400)]
when calling Session::engine_halted() after a user-driven engine stop, make sure Engine::running() will be false

5 years agoLCXL: complete overhaul and Mixbus support
Jan Lentfer [Fri, 21 Sep 2018 14:06:16 +0000 (16:06 +0200)]
LCXL: complete overhaul and Mixbus support

5 years agoLCXL: Assign one callback function per Knob/Fader
Térence Clastres [Sat, 8 Sep 2018 17:03:45 +0000 (19:03 +0200)]
LCXL: Assign one callback function per Knob/Fader

5 years agoOSC: personal monitor can hide the aux bus
Len Ovens [Tue, 16 Oct 2018 20:56:09 +0000 (13:56 -0700)]
OSC: personal monitor can hide the aux bus

5 years agoOSC: personal monitor send hidden follows aux hidden
Len Ovens [Tue, 16 Oct 2018 20:33:42 +0000 (13:33 -0700)]
OSC: personal monitor send hidden follows aux hidden

5 years agoOSC: personal monitor should only send signal present on change
Len Ovens [Mon, 15 Oct 2018 17:38:52 +0000 (10:38 -0700)]
OSC: personal monitor should only send signal present on change

5 years agoindentation fix
Paul Davis [Mon, 15 Oct 2018 20:38:21 +0000 (16:38 -0400)]
indentation fix

5 years ago#include tidy-up
Paul Davis [Mon, 15 Oct 2018 20:38:07 +0000 (16:38 -0400)]
#include tidy-up

5 years agochange region->row map of EditorRegions to use iterator, not RowReference
Paul Davis [Mon, 15 Oct 2018 20:04:53 +0000 (16:04 -0400)]
change region->row map of EditorRegions to use iterator, not RowReference

RowReference was responsible for 75% of the cost of building the region list, and incurs cost
at every later insert/delete/reorder. Since both ListStore and TreeStore have persistent iterators,
use them instead

5 years agoRemove a #include and substitute a forward declaration (to simplify and speed up...
John Emmas [Mon, 15 Oct 2018 09:21:45 +0000 (10:21 +0100)]
Remove a #include and substitute a forward declaration (to simplify and speed up compilation)

5 years agoAdapt some MSVC projects to accommodate the changes to 'ptformat' library
John Emmas [Mon, 15 Oct 2018 09:19:26 +0000 (10:19 +0100)]
Adapt some MSVC projects to accommodate the changes to 'ptformat' library

5 years agoOSC: allow personal monitor to add a send.
Len Ovens [Sat, 13 Oct 2018 18:02:47 +0000 (11:02 -0700)]
OSC: allow personal monitor to add a send.

5 years agoremove use of hardcoded -fPIC compiler flag, and use compiler flag dict instead
Paul Davis [Mon, 15 Oct 2018 02:06:13 +0000 (22:06 -0400)]
remove use of hardcoded -fPIC compiler flag, and use compiler flag dict instead

5 years agoremove use of hardcoded -fPIC compiler flag, and use compiler flag dict instead
Paul Davis [Mon, 15 Oct 2018 02:06:11 +0000 (22:06 -0400)]
remove use of hardcoded -fPIC compiler flag, and use compiler flag dict instead

5 years agofix mixup with previous commit
Paul Davis [Mon, 15 Oct 2018 01:22:39 +0000 (21:22 -0400)]
fix mixup with previous commit

5 years agofix several inter-related problems with libptformat
Paul Davis [Mon, 15 Oct 2018 00:35:31 +0000 (20:35 -0400)]
fix several inter-related problems with libptformat

5 years agofix several inter-related problems with libptformat
Paul Davis [Mon, 15 Oct 2018 00:35:29 +0000 (20:35 -0400)]
fix several inter-related problems with libptformat

5 years agoClarify where the file 'ptfformat.h' can be found
John Emmas [Sat, 13 Oct 2018 12:49:50 +0000 (13:49 +0100)]
Clarify where the file 'ptfformat.h' can be found

5 years agoAccommodate newly introduced source(s) in our MSVC project (gtk2_ardour)
John Emmas [Sat, 13 Oct 2018 12:47:16 +0000 (13:47 +0100)]
Accommodate newly introduced source(s) in our MSVC project (gtk2_ardour)

5 years agoAccommodate newly introduced source(s) in our MSVC project (libardour)
John Emmas [Sat, 13 Oct 2018 12:46:30 +0000 (13:46 +0100)]
Accommodate newly introduced source(s) in our MSVC project (libardour)

5 years agoPT import: Fix circular dependency with libptformat <-> libardour
Damien Zammit [Wed, 10 Oct 2018 09:24:47 +0000 (20:24 +1100)]
PT import: Fix circular dependency with libptformat <-> libardour

5 years agoPT import: Minor changes to session
Damien Zammit [Wed, 10 Oct 2018 09:17:57 +0000 (20:17 +1100)]
PT import: Minor changes to session

5 years agoPT import: Add new import_pt.cc session methods
Damien Zammit [Wed, 10 Oct 2018 09:19:12 +0000 (20:19 +1100)]
PT import: Add new import_pt.cc session methods

5 years agoPT import: editor_pt_import complete rewrite
Damien Zammit [Wed, 10 Oct 2018 09:13:14 +0000 (20:13 +1100)]
PT import: editor_pt_import complete rewrite

5 years agoPT import: Add new PTImportSelector dialog
Damien Zammit [Wed, 10 Oct 2018 09:09:24 +0000 (20:09 +1100)]
PT import: Add new PTImportSelector dialog

5 years agolibptformat: Update lib to upstream e75320e (+source lengths)
Damien Zammit [Wed, 10 Oct 2018 09:21:29 +0000 (20:21 +1100)]
libptformat: Update lib to upstream e75320e (+source lengths)

5 years agoAlways use internal, modified, zita-resampler
Robin Gareus [Wed, 10 Oct 2018 22:17:00 +0000 (00:17 +0200)]
Always use internal, modified, zita-resampler

zita-resampler was modified from the original:

 * a dedicated mono variable-resampler version was added
 * full-cycle no-resampling was optimized into a delayline

5 years agoConsolidate relative sched_get_priority computation
Robin Gareus [Wed, 10 Oct 2018 23:47:46 +0000 (01:47 +0200)]
Consolidate relative sched_get_priority computation

5 years agoUse new RT-priority API
Robin Gareus [Wed, 10 Oct 2018 23:36:49 +0000 (01:36 +0200)]
Use new RT-priority API

5 years agoAdd API to query backend realtime thread priority
Robin Gareus [Wed, 10 Oct 2018 23:36:10 +0000 (01:36 +0200)]
Add API to query backend realtime thread priority

5 years agoFix master_send_enable_controllable for Mixbusses
Robin Gareus [Wed, 10 Oct 2018 20:41:49 +0000 (22:41 +0200)]
Fix master_send_enable_controllable for Mixbusses

5 years agoFix inconsistent controllable Lua binding names
Robin Gareus [Wed, 10 Oct 2018 20:32:08 +0000 (22:32 +0200)]
Fix inconsistent controllable Lua binding names

This also fixes incorrectly mapped send_level/enable

5 years agoFix well-known control Lua bindings
Robin Gareus [Wed, 10 Oct 2018 20:15:28 +0000 (22:15 +0200)]
Fix well-known control Lua bindings

5 years agorevert the coupling of location UI clock modes to transport clocks
Paul Davis [Wed, 10 Oct 2018 15:56:49 +0000 (11:56 -0400)]
revert the coupling of location UI clock modes to transport clocks

5 years agouse primary, not secondary, clock mode to drive other clock modes, and dynamically...
Paul Davis [Wed, 10 Oct 2018 15:47:05 +0000 (11:47 -0400)]
use primary, not secondary, clock mode to drive other clock modes, and dynamically update region editors, location UI and editor regions when it changes