[haiku] Re: Caps Lock?

  • From: Pete Goodeve <pete.goodeve@xxxxxxxxxxxx>
  • To: haiku@xxxxxxxxxxxxx
  • Date: Wed, 12 Dec 2012 23:54:14 -0800

On Wed, Dec 12, 2012 at 11:59:16PM -0500, Ryan Leavengood wrote:
> 
> Caps lock and other such keys are handled inside the keyboard device
> add-on within the input_server. I looked into this for ticket #2053,
> where stpere wanted the ability to make an input_server filter that
> would only put on caps lock if the shift key was pressed. It is
> possible but is sort of a hack. A more simple filter could be created
> which just looks for B_MODIFIERS_CHANGED and immediately turns caps
> lock back off, essentially disabling it. Though it wouldn't be much
> harder to just make it like in the ticket, where it is turned back off
> unless shift is also pressed. There is more detail in that ticket:
> 
> https://dev.haiku-os.org/ticket/2053
> 
> I'm not sure if you can code much Pete,

Yeah -- I guess I code much... (:-))

However, unless you've seen something that I haven't, I don't think
it's possible to suppress CapsLock with a filter.  The thing is, all the
keymapping is handled straight in the KeyboardInputDevice, where
it keeps its own copy of the modifier state.  The only input I see to
the device is directly from the ioctl to the driver -- no way to tell it to
change its state from a filter.

The only way I can think of for a filter to handle this would be for it
to revert every shifted character that came through if CapsLock is on,
but that's *definitely* a hack!

What I may do is just patch KeyboardInputDevice itself to either
ignore CapsLock entirely or --definitely nice! -- to do as stpere
suggests.  I guess Keyboard Preferences could be amended to
add the choice (but I'll try it out initially as an alrternate module).

        -- Pete --

Other related posts: