Skip to content

Sends an extra IECLASS_RAWMOUSE with IECODE_RBUTTON down #2

@patrikaxelsson

Description

@patrikaxelsson

If you press the right mouse button on another screen than the Workbench screen (must be activated), MagicMenu sends an extra IECLASS_RAWMOUSE event with IECODE_RBUTTON down.

Using a simple input.device monitor, it looks like this (input handler, prints incoming input events via debug.lib):

00000000 02 00 0069 2000      0      0 1295944165.184685
00000000 02 00 0069 2000      0      0 1295944165.245338
00000000 02 00 00E9 0000      0      0 1295944165.455017

Column order for IECLASS_RAWMOUSE are the struct InputEvent fields in order: ie_NextEvent, ie_Class, ie_SubClass, ie_Code, ie_Qualifier, ie_position.ie_xy.ie_x, ie_position.ie_xy.ie_y, ie_TimeStamp.tv_secs, ie_TimeStamp.tv_micro.

For external events, input.device does not add qualifiers to its global ie_Qualifier bitfield and are thus not included when input.device for example publishes its periodical IECLASS_TIMER events. These are translated into INTUITICKS which some software depends on (and uses its qualifier bitfield).

The result is that software pretending to be real mouse and keyboard by sending external events to input.device are not equal to and not as compatible as the real amiga hardware keyboard and mouse. Examples of such software:

To improve compatibility for such software, I have been working on a small patch (an input handler) which keeps track of qualifier events and updates the ie_Qualifier of all InputEvents accordingly.

This works perfectly, unless some software generates a qualifier down which is not matched by an up event - like what happens when MagicMenu inserts this unecessary and incorrect extra right mouse button down.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions