Index: generic/tkEvent.c ================================================================== --- generic/tkEvent.c +++ generic/tkEvent.c @@ -1206,10 +1206,18 @@ unsigned long mask; InProgress ip; Tcl_Interp *interp = NULL; ThreadSpecificData *tsdPtr = Tcl_GetThreadData(&dataKey, sizeof(ThreadSpecificData)); + +#if !defined(MAC_OSX_TK) && !defined(_WIN32) + if (((eventPtr->type == ButtonPress) || (eventPtr->type == ButtonRelease)) + && ((eventPtr->xbutton.button - 6) < 2)) { + eventPtr->xbutton.button -= 2; + eventPtr->xbutton.state |= ShiftMask; + } +#endif UpdateButtonEventState(eventPtr); /* * If the generic handler processed this event we are done and can return.