internal void OnRenameLayout( Layout l, ref string layoutName, string newName )
{
Debug.Assert( l.Keyboard == Keyboard && l.Name != newName && _layouts != null, "It is not the default: we have more than one layout." );
string previous = layoutName;
newName = KeyboardContext.EnsureUnique( newName, previous, _layouts.ContainsKey );
if( newName != previous )
{
_layouts.Remove( l.Name );
_layouts.Add( newName, l );
layoutName = newName;
if( LayoutRenamed != null ) LayoutRenamed( this, new LayoutRenamedEventArgs( l, previous ) );
Context.SetKeyboardContextDirty();
}
}