[ros-dev] kbswitch update

Hans-Peter Diettrich DrDiettrich1 at aol.com
Mon Dec 7 16:51:50 UTC 2015


Colin Finck schrieb:
> Hi,
> 
> Let me at least answer one of your questions before these get lost in
> the discussion.
> 
> Am 03.12.2015 um 23:03 schrieb Hans-Peter Diettrich:
>> Q: Is kbswitch notified of focus changes, and if so: how?
> 
> As you have already found out, kbswitch has been implemented as a
> system-wide keyboard layout switcher and not a per-application one.
> Therefore, it doesn't care about focus at all.

At a first glance I've been happy with that global switcher, but then 
found it unreliable and lacking a persistent (machine/user) specific 
default. Because I want to use a German keyboard in an otherwise English 
installation, the persistence of that choice is essential to me. But as 
this setting is subject to the control panel; and not yet implemented 
there; I started digging into kbswitch. Perhaps I should dig into the 
control panel dialog instead, but that's another topic.

> A proper per-application keyboard layout switcher as part of the
> Language Bar should also be implemented as a shell extension instead of
> a tray icon to be as flexible as the Windows original.
> To get notified of focus changes, an application should probably hook
> the EVENT_SYSTEM_FOREGROUND event using the SetWinEventHook API. The
> rest can be done using calls to GetForegroundWindow,
> GetWindowThreadProcessId and GetKeyboardLayout as you already suggested.
> 
> Unfortunately, I lack deeper experience with keyboard layout internals,
> so this is all I can tell you for now.

Unfortunately I'm not familiar with Shell and COM and the Language Bar, 
just found out that the latter exists at all. I've learned about Windows 
internals for Win3.1, so that I can assist only in "lower level" 
functionality. In fact I have no real use for the bloated Windows 
versions past XP, I prefer using the older versions in virtual machines 
on my desktop or laptop instead.

> You may find someone in #reactos or #reactos-dev on IRC with more
> expertise on this.

For a first glance on the control panel settings I'd need a 
link/filename of the language related dialogs. Otherwise I only can jump 
in where somebody else implemented a related framework, hunting bugs or 
implementing extensions.

Thanks for the new keywords :-)
DoDi




More information about the Ros-dev mailing list