[squeak-dev] serious bugs with keyboard events in recent updates

Eliot Miranda eliot.miranda at gmail.com
Mon Jun 28 18:18:58 UTC 2021


Hi All,

    is anyone seeing Character>>doesNotUnderratand: #bitShift: errors as a
result of recent updates? It appears that an event's fifth element is now a
Character, not mouse buttons plus metakey state codes.  There seems to be
some confusion somewhere in creating events.  I'm trying to understand if
this is an image level bug or a VM bug.  Here are the definitions in sq.h
which show that modifiers are not always in the same place in every event:

#define EventTypeMouse      1
/* mouse input event */
typedef struct sqMouseEvent {
  sqIntptr_t type;          /* EventTypeMouse */
  usqIntptr_t timeStamp;    /* time stamp */
  sqIntptr_t x;             /* mouse position x */
  sqIntptr_t y;             /* mouse position y */
  sqIntptr_t buttons;       /* combination of xxxButtonBit */
5 sqIntptr_t modifiers;     /* combination of xxxKeyBit */
  sqIntptr_t nrClicks;      /* number of clicks in button downs - was
reserved1 */
  sqIntptr_t windowIndex;   /* host window structure */
} sqMouseEvent;

#define EventTypeKeyboard   2
/* keyboard input event */
typedef struct sqKeyboardEvent {
  sqIntptr_t type;          /* EventTypeKeyboard */
  usqIntptr_t timeStamp;    /* time stamp */
  sqIntptr_t charCode;      /* character code in Mac Roman encoding */
  sqIntptr_t pressCode;     /* press code; any of EventKeyXXX */
4 sqIntptr_t modifiers;     /* combination of xxxKeyBit */
  sqIntptr_t utf32Code;     /* UTF-32 unicode value */
  sqIntptr_t reserved1;     /* reserved for future use */
  sqIntptr_t windowIndex;   /* host window structure */
} sqKeyboardEvent;

#define EventTypeDragDropFiles  3
/* drop files event */
typedef struct sqDragDropFilesEvent {
  sqIntptr_t type;          /* EventTypeDropFiles */
  usqIntptr_t timeStamp;    /* time stamp */
  sqIntptr_t dragType;      /* one of DragXXX (see below) */
  sqIntptr_t x;             /* mouse position x */
  sqIntptr_t y;             /* mouse position y */
5 sqIntptr_t modifiers;     /* combination of xxxKeyBit */
  sqIntptr_t numFiles;      /* number of files in transaction */
  sqIntptr_t windowIndex;   /* host window structure */
} sqDragDropFilesEvent;

Is the bug that the VM has modifiers and utf32Code in the wrong order
in sqKeyboardEvent?
Or is it an image level bug?

_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20210628/b699c9d7/attachment.html>


More information about the Squeak-dev mailing list