<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_default"><font face="arial, sans-serif">Hi All,</font></div><div class="gmail_default"><font face="arial, sans-serif"><br></font></div><div class="gmail_default"><font face="arial, sans-serif">    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:</font></div><div class="gmail_default"><font face="arial, sans-serif"><br></font></div><div class="gmail_default"><div class="gmail_default"><font face="arial, sans-serif">#define EventTypeMouse      1</font></div><div class="gmail_default"><font face="arial, sans-serif">/* mouse input event */</font></div><div class="gmail_default"><font face="arial, sans-serif">typedef struct sqMouseEvent {</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t type;          /* EventTypeMouse */</font></div><div class="gmail_default"><font face="arial, sans-serif">  usqIntptr_t timeStamp;    /* time stamp */</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t x;             /* mouse position x */</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t y;             /* mouse position y */</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t buttons;       /* combination of xxxButtonBit */</font></div><div class="gmail_default"><font face="arial, sans-serif">5 sqIntptr_t modifiers;     /* combination of xxxKeyBit */</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t nrClicks;      /* number of clicks in button downs - was reserved1 */</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t windowIndex;   /* host window structure */</font></div><div class="gmail_default"><font face="arial, sans-serif">} sqMouseEvent;</font></div><div class="gmail_default"><font face="arial, sans-serif"><br></font></div><div class="gmail_default"><div class="gmail_default"><font face="arial, sans-serif">#define EventTypeKeyboard   2</font></div><div class="gmail_default"><font face="arial, sans-serif">/* keyboard input event */</font></div><div class="gmail_default"><font face="arial, sans-serif">typedef struct sqKeyboardEvent {</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t type;          /* EventTypeKeyboard */</font></div><div class="gmail_default"><font face="arial, sans-serif">  usqIntptr_t timeStamp;    /* time stamp */</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t charCode;      /* character code in Mac Roman encoding */</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t pressCode;     /* press code; any of EventKeyXXX */</font></div><div class="gmail_default"><font face="arial, sans-serif">4 sqIntptr_t modifiers;     /* combination of xxxKeyBit */</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t utf32Code;     /* UTF-32 unicode value */</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t reserved1;     /* reserved for future use */</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t windowIndex;   /* host window structure */</font></div><div class="gmail_default"><font face="arial, sans-serif">} sqKeyboardEvent;</font></div><div class="gmail_default"><font face="arial, sans-serif"><br></font></div><div class="gmail_default"><div class="gmail_default"><font face="arial, sans-serif">#define EventTypeDragDropFiles  3</font></div><div class="gmail_default"><font face="arial, sans-serif">/* drop files event */</font></div><div class="gmail_default"><font face="arial, sans-serif">typedef struct sqDragDropFilesEvent {</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t type;          /* EventTypeDropFiles */</font></div><div class="gmail_default"><font face="arial, sans-serif">  usqIntptr_t timeStamp;    /* time stamp */</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t dragType;      /* one of DragXXX (see below) */</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t x;             /* mouse position x */</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t y;             /* mouse position y */</font></div><div class="gmail_default"><font face="arial, sans-serif">5 sqIntptr_t modifiers;     /* combination of xxxKeyBit */</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t numFiles;      /* number of files in transaction */</font></div><div class="gmail_default"><font face="arial, sans-serif">  sqIntptr_t windowIndex;   /* host window structure */</font></div><div class="gmail_default"><font face="arial, sans-serif">} sqDragDropFilesEvent;</font></div><div class="gmail_default"><font face="arial, sans-serif"><br></font></div><div class="gmail_default"><font face="arial, sans-serif">Is the bug that the VM has modifiers and utf32Code in the wrong order in <span style="color:rgb(0,0,0)">sqKeyboardEvent?  Or is it an image level bug?</span></font></div><div class="gmail_default"><span style="color:rgb(0,0,0)"><font face="arial, sans-serif"><br></font></span></div></div></div></div><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><span style="border-collapse:separate"><font face="arial, sans-serif"><div>_,,,^..^,,,_<br></div><div>best, Eliot</div></font></span></div></div></div></div></div></div></div></div></div></div></div>