New: Monitor SW_TABLET_MODE to determine hardware keyboard presence
authorDaniel Drake <dsd@laptop.org>
Wed, 3 Oct 2012 17:25:45 +0000 (11:25 -0600)
committerMichael Hasselmann <michaelh@openismus.com>
Tue, 9 Oct 2012 16:59:21 +0000 (18:59 +0200)
commitf12576f0712d916b5e80e1390be6047d346d276f
treed37e15adf8e0c2f4a51f6af78714109f8d9d3ff0
parent473bcdb2db9b51e97dd6bb94fa9f69c6d3e77538
New: Monitor SW_TABLET_MODE to determine hardware keyboard presence

RevBy: Michael Hasselmann
A new, default implementation for MImHwKeyboardTracker: we look for
a readable evdev device which has a SW_TABLET_MODE switch. If found,
we use that device for determining the presence/availability of the
hardware keyboard.

The previous keyboard presence methods (Maemo5, contextsubscriber)
are used when the compile-time options select them.

Ordinarily, evdev devices are only readable by root, but this is
changing: upstream developers point at using udev rules and uaccess to
make this device available to the active seat.

See http://www.spinics.net/lists/hotplug/msg05639.html and surrounding
discussion.

This solves a big part of the OSK use-case for OLPC: we only want
Maliit to activate when the laptop is "folded over" into tablet mode,
with the hardware keyboard physically obscured. This is communicated
via SW_TABLET_MODE. This solution is also expected to work for
other platforms with similar configuration.
src/mimhwkeyboardtracker.cpp
src/mimhwkeyboardtracker_p.h
src/src.pro