Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Proposed fix (slightly modified) for [92e4081d74]: Undefined behavior while touchpad scrolling |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | bug-92e4081d74 |
Files: | files | file ages | folders |
SHA3-256: |
a4410a9271d8173626898247a60037fd |
User & Date: | jan.nijtmans 2025-08-16 15:55:08.494 |
References
2025-08-16
| ||
15:58 | • Ticket [92e4081d] Undefined behavior while touchpad scrolling status still Open with 4 other changes artifact: f108967e user: jan.nijtmans | |
Context
2025-08-16
| ||
22:12 | Fix [92e4081d74]: Undefined behavior while touchpad scrolling check-in: 07d632f4 user: jan.nijtmans tags: core-9-0-branch | |
15:55 | Proposed fix (slightly modified) for [92e4081d74]: Undefined behavior while touchpad scrolling Closed-Leaf check-in: a4410a92 user: jan.nijtmans tags: bug-92e4081d74 | |
2025-08-15
| ||
22:23 | Merge 8.6 check-in: d266a4ff user: jan.nijtmans tags: core-9-0-branch | |
Changes
Changes to macosx/tkMacOSXMouseEvent.c.
︙ | ︙ | |||
541 542 543 544 545 546 547 | } } else { Tk_UpdatePointer(target, global.x, global.y, state); } } else { static unsigned long scrollCounter = 0; | | | | | 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 | } } else { Tk_UpdatePointer(target, global.x, global.y, state); } } else { static unsigned long scrollCounter = 0; unsigned delta; CGFloat Delta; Bool deltaIsPrecise = [theEvent hasPreciseScrollingDeltas]; XEvent xEvent = {0}; xEvent.xbutton.x = win_x; xEvent.xbutton.y = win_y; xEvent.xbutton.x_root = global.x; xEvent.xbutton.y_root = global.y; xEvent.xany.send_event = false; xEvent.xany.display = Tk_Display(target); xEvent.xany.window = Tk_WindowId(target); if (deltaIsPrecise) { unsigned deltaX = (unsigned)(int)[theEvent scrollingDeltaX]; unsigned deltaY = (unsigned)(int)[theEvent scrollingDeltaY]; delta = (deltaX << 16) | (deltaY & 0xffff); if (delta != 0) { xEvent.type = TouchpadScroll; xEvent.xbutton.state = state; xEvent.xkey.keycode = delta; xEvent.xany.serial = scrollCounter++; Tk_QueueWindowEvent(&xEvent, TCL_QUEUE_TAIL); |
︙ | ︙ |
Changes to win/tkWinX.c.
︙ | ︙ | |||
1192 1193 1194 1195 1196 1197 1198 | if ( mod != 0 || lastMod != 0) { /* High resolution. */ event.x.type = TouchpadScroll; event.x.xany.send_event = -1; event.key.nbytes = 0; event.x.xkey.state = state; event.x.xany.serial = scrollCounter++; | | | 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 | if ( mod != 0 || lastMod != 0) { /* High resolution. */ event.x.type = TouchpadScroll; event.x.xany.send_event = -1; event.key.nbytes = 0; event.x.xkey.state = state; event.x.xany.serial = scrollCounter++; event.x.xkey.keycode = -((unsigned int)delta << 16); } else { event.x.type = MouseWheelEvent; event.x.xany.send_event = -1; event.key.nbytes = 0; event.x.xkey.state |= ShiftMask; event.x.xkey.keycode = delta; } |
︙ | ︙ |