diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-10-22 14:00:10 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2020-10-22 14:00:10 (GMT) |
commit | 8b875a2dea8842983609f3d80b6c94637e485e0b (patch) | |
tree | 63110707e0216f6381381b3ad2de518027ec7594 /generic/tkBind.c | |
parent | 32192051070beae659baa111082239e0f7beab0a (diff) | |
parent | 2c164d30542b80763739f5a3415ada25c7ca6ddd (diff) | |
download | tk-8b875a2dea8842983609f3d80b6c94637e485e0b.zip tk-8b875a2dea8842983609f3d80b6c94637e485e0b.tar.gz tk-8b875a2dea8842983609f3d80b6c94637e485e0b.tar.bz2 |
Merge 8.7
Diffstat (limited to 'generic/tkBind.c')
-rw-r--r-- | generic/tkBind.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/generic/tkBind.c b/generic/tkBind.c index e5927f2..6935402 100644 --- a/generic/tkBind.c +++ b/generic/tkBind.c @@ -798,8 +798,10 @@ static unsigned GetButtonNumber( const char *field) { + unsigned button; assert(field); - return (field[0] >= '1' && field[0] <= '9' && field[1] == '\0') ? field[0] - '0' : 0; + button = (field[0] >= '1' && field[0] <= '9' && field[1] == '\0') ? field[0] - '0' : 0; + return (button > 3) ? (button + 4) : button; } static Time @@ -4044,6 +4046,9 @@ HandleEventGenerate( return TCL_ERROR; } if (flags & BUTTON) { + if (number >= Button4) { + number += (Button8 - Button4); + } event.general.xbutton.button = number; } else { badOpt = 1; @@ -5195,15 +5200,15 @@ GetPatternObj( } case ButtonPress: case ButtonRelease: - assert(patPtr->info <= Button9); - Tcl_AppendPrintfToObj(patternObj, "-%u", (unsigned)patPtr->info); + assert(patPtr->info <= 13); + Tcl_AppendPrintfToObj(patternObj, "-%u", (unsigned) ((patPtr->info > 7) ? (patPtr->info - 4) : patPtr->info)); break; #if PRINT_SHORT_MOTION_SYNTAX case MotionNotify: { unsigned mask = patPtr->modMask; while (mask & ALL_BUTTONS) { unsigned button = ButtonNumberFromState(mask); - Tcl_AppendPrintfToObj(patternObj, "-%u", button); + Tcl_AppendPrintfToObj(patternObj, "-%u", (button > 7) ? (button - 4) : button); mask &= ~Tk_GetButtonMask(button); } break; |