[PATCH keyboard 2/5] Removed function InitKBD
Alexandr Shadchin
alexandr.shadchin at gmail.com
Fri Feb 18 01:55:14 PST 2011
But it does not work :-)
DEVICE_INIT
...
call InitKeyboardDeviceStruct()
...
call KbdCtrl()
set LEDS in accordance with the ctrl->leds
I have not found yet a way to startup X
so ctrl->leds were not zero
...
call InitKBD() (LEDS has already repaid)
manipulation InitKBD do not matter
But I really lost sight of that save state NumLock etc. be useful.
I'll prepare a new series of patches, this series can be ignored.
On Thu, Feb 17, 2011 at 04:20:10PM -0800, Alan Coopersmith wrote:
> Why have you decided to remove the functionality of initializing the
> state of things like NumLock based on the initial LED state? It was
> a bit of the hack to propogate things like "NumLock on by default" from
> the BIOS up through to the X server, but it worked. (At least it used
> to, I haven't checked in a while.)
>
> -alan-
>
> On 02/17/11 04:10 PM, Alexandr Shadchin wrote:
> > Before calling InitKBD called KbdCtrl, which sets the LEDS in
> > accordance with the ctrl->leds. Therefore, further manipulation
> > InitKBD do not matter.
> >
> > Signed-off-by: Alexandr Shadchin <Alexandr.Shadchin at gmail.com>
> > ---
> > src/kbd.c | 53 +----------------------------------------------------
> > 1 files changed, 1 insertions(+), 52 deletions(-)
> >
> > diff --git a/src/kbd.c b/src/kbd.c
> > index 86b5be5..bb1a177 100644
> > --- a/src/kbd.c
> > +++ b/src/kbd.c
> > @@ -46,8 +46,6 @@
> > #define SCROLLFLAG 4
> > #define MODEFLAG 8
> > #define COMPOSEFLAG 16
> > -/* Used to know when the first DEVICE_ON after a DEVICE_INIT is called */
> > -#define INITFLAG (1U << 31)
> >
> > #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
> > static InputInfoPtr KbdPreInit(InputDriverPtr drv, IDevPtr dev, int flags);
> > @@ -59,9 +57,6 @@ static void KbdCtrl(DeviceIntPtr device, KeybdCtrl *ctrl);
> > static void KbdBell(int percent, DeviceIntPtr dev, pointer ctrl, int unused);
> > static void PostKbdEvent(InputInfoPtr pInfo, unsigned int key, Bool down);
> >
> > -static void InitKBD(InputInfoPtr pInfo, Bool init);
> > -static void UpdateLeds(InputInfoPtr pInfo);
> > -
> > _X_EXPORT InputDriverRec KBD = {
> > 1,
> > "kbd",
> > @@ -209,22 +204,6 @@ KbdBell(int percent, DeviceIntPtr dev, pointer ctrl, int unused)
> > }
> >
> > static void
> > -UpdateLeds(InputInfoPtr pInfo)
> > -{
> > - KbdDevPtr pKbd = (KbdDevPtr) pInfo->private;
> > - unsigned long leds = 0;
> > -
> > - if (pKbd->keyLeds & CAPSFLAG) leds |= XLED1;
> > - if (pKbd->keyLeds & NUMFLAG) leds |= XLED2;
> > - if (pKbd->keyLeds & SCROLLFLAG ||
> > - pKbd->keyLeds & MODEFLAG) leds |= XLED3;
> > - if (pKbd->keyLeds & COMPOSEFLAG) leds |= XLED4;
> > -
> > - pKbd->leds = leds;
> > - pKbd->SetLeds(pInfo, pKbd->leds);
> > -}
> > -
> > -static void
> > KbdCtrl( DeviceIntPtr device, KeybdCtrl *ctrl)
> > {
> > unsigned long leds;
> > @@ -256,35 +235,6 @@ KbdCtrl( DeviceIntPtr device, KeybdCtrl *ctrl)
> > pKbd->SetLeds(pInfo, pKbd->leds);
> > }
> >
> > -static void
> > -InitKBD(InputInfoPtr pInfo, Bool init)
> > -{
> > - KbdDevPtr pKbd = (KbdDevPtr) pInfo->private;
> > -
> > - pKbd->scanPrefix = 0;
> > -
> > - if (init) {
> > - pKbd->keyLeds = pKbd->GetLeds(pInfo);
> > - UpdateLeds(pInfo);
> > - pKbd->keyLeds |= INITFLAG;
> > - } else {
> > - unsigned long leds = pKbd->keyLeds;
> > -
> > - pKbd->keyLeds = pKbd->GetLeds(pInfo);
> > - UpdateLeds(pInfo);
> > - if ((pKbd->keyLeds & CAPSFLAG) !=
> > - ((leds & INITFLAG) ? 0 : (leds & CAPSFLAG))) {
> > - pKbd->PostEvent(pInfo, KEY_CapsLock, TRUE);
> > - pKbd->PostEvent(pInfo, KEY_CapsLock, FALSE);
> > - }
> > - if ((pKbd->keyLeds & NUMFLAG) !=
> > - (leds & INITFLAG ? 0 : leds & NUMFLAG)) {
> > - pKbd->PostEvent(pInfo, KEY_NumLock, TRUE);
> > - pKbd->PostEvent(pInfo, KEY_NumLock, FALSE);
> > - }
> > - }
> > -}
> > -
> > static int
> > KbdProc(DeviceIntPtr device, int what)
> > {
> > @@ -333,7 +283,6 @@ KbdProc(DeviceIntPtr device, int what)
> > (KbdCtrlProcPtr)KbdCtrl);
> > }
> > #endif /* XINPUT ABI 5*/
> > - InitKBD(pInfo, TRUE);
> > break;
> > case DEVICE_ON:
> > if (device->public.on)
> > @@ -354,7 +303,7 @@ KbdProc(DeviceIntPtr device, int what)
> > }
> >
> > device->public.on = TRUE;
> > - InitKBD(pInfo, FALSE);
> > + pKbd->scanPrefix = 0;
> > break;
> >
> > case DEVICE_CLOSE:
>
>
> --
> -Alan Coopersmith- alan.coopersmith at oracle.com
> Oracle Solaris Platform Engineering: X Window System
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
--
Alexandr Shadchin
More information about the xorg-devel
mailing list