Enhancment: Maintain per-tab input settings

Copper Contributor

tl;dr: When using multiple keyboard layouts, it's would be very useful if Edge would remember the last used layout for each tab. This would save us from having to alt+shift every time we change tabs.

 

Longer version:

Background


In countries where the native script is not Latin, one finds oneself needing to use multiple keyboard layouts - one for Latin input and another for the native script input. Often, one works within multiple contexts wherein each context requires a different keyboard layout. e. g. a programmer will have one window open for coding (which requires an English layout) and one window for instant messaging (which will typically be in his native script).


It begins to become somewhat of pain to change keyboard layout each time one switches context. Operating systems recognize this and offer an option to localize the keyboard layout setting to the program in use, such that when switching programs the keyboard layout will switch automatically.

 

Nowadays, much of a users life may be spent inside the browser, seeing as so much can be done from within the browser, e.g. coding, messaging, document editing, shopping etc. etc.


It is common to need different keyboard layouts within different browsing contexts, e.g. coding and shopping may require an English layout whereas messaging and editing documents will typically require a users native language layout.

 

However, the OS level segregation of input settings per program will not be of use within the browser since at an OS level all tabs are recognized as one program.

 

It would therefore be a HUGE productivity enhancement if Edge would fill in this gap and maintain different input settings per tab.

 

How would it work?

It would require splitting the Edge UI into multiple "input regions". An input region for this purpose is an area in the UI that would make sense to maintain it's own input method. I would suggest that a primary window will contain one region for the omnibox and a further additional region for each tab contained within the window.

Each "input region" will maintain a property representing the input method set for that region. This will be initially set to the "default input method" (the "default input method may be determined using an OS level preference or a local application preference).

As areas that accept user input are created, they will be assigned to an "input region".

The application will listen out for input method changes (this can be accomplished on Windows by listening for WM_INPUTLANGCHANGE) and determine the "input region" in which this change was requested (i.e. which region had input focus when the keyboard layout was changed). The application will then save the requested input method in the "input method" property of that region.

Whenever the input focus changes within the application, it will automatically change the systems input method to match the "input method" property of the region to which the current input box is assigned.

Hope this all makes sense to someone :) as I am pretty keen to see this adopted... anyone I mention the idea to seems quite positive about it...
 
 
2 Replies

Hi @yzahn, this is a great suggestion! I will follow up with our globalization champion and see what he says.

Thanks - Elliot

@Elliot Kirk That would be great! Thanks!