diff options
Diffstat (limited to 'generic/tkBind.c')
-rw-r--r-- | generic/tkBind.c | 26 |
1 files changed, 6 insertions, 20 deletions
diff --git a/generic/tkBind.c b/generic/tkBind.c index 6841f1e..e58ad4d 100644 --- a/generic/tkBind.c +++ b/generic/tkBind.c @@ -2028,7 +2028,7 @@ ExpandPercents( string = numStorage; goto doString; case 'k': - if (flags & KEY) { + if ((flags & KEY) && (eventPtr->type != MouseWheelEvent)) { number = eventPtr->xkey.keycode; goto doNumber; } @@ -2168,7 +2168,7 @@ ExpandPercents( * This is used only by the MouseWheel event. */ - if (flags & KEY) { + if ((flags & KEY) && (eventPtr->type == MouseWheelEvent)) { number = eventPtr->xkey.keycode; goto doNumber; } @@ -2177,7 +2177,7 @@ ExpandPercents( number = (int) eventPtr->xany.send_event; goto doNumber; case 'K': - if (flags & KEY) { + if ((flags & KEY) && (eventPtr->type != MouseWheelEvent)) { const char *name = TkKeysymToString(keySym); if (name != NULL) { @@ -2186,7 +2186,7 @@ ExpandPercents( } goto doString; case 'N': - if (flags & KEY) { + if ((flags & KEY) && (eventPtr->type != MouseWheelEvent)) { number = (int) keySym; goto doNumber; } @@ -2226,33 +2226,19 @@ ExpandPercents( } case 'X': if (flags & KEY_BUTTON_MOTION_CROSSING) { - Tk_Window tkwin; - int x, y; - int width, height; number = eventPtr->xkey.x_root; - tkwin = Tk_IdToWindow(eventPtr->xany.display, + Tk_IdToWindow(eventPtr->xany.display, eventPtr->xany.window); - if (tkwin != NULL) { - Tk_GetVRootGeometry(tkwin, &x, &y, &width, &height); - number -= x; - } goto doNumber; } goto doString; case 'Y': if (flags & KEY_BUTTON_MOTION_CROSSING) { - Tk_Window tkwin; - int x, y; - int width, height; number = eventPtr->xkey.y_root; - tkwin = Tk_IdToWindow(eventPtr->xany.display, + Tk_IdToWindow(eventPtr->xany.display, eventPtr->xany.window); - if (tkwin != NULL) { - Tk_GetVRootGeometry(tkwin, &x, &y, &width, &height); - number -= y; - } goto doNumber; } goto doString; |