summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog23
-rw-r--r--generic/tkEvent.c7
-rw-r--r--library/listbox.tcl13
-rw-r--r--library/text.tcl13
4 files changed, 45 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index b06da65..11c7232 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2004-02-16 Jim Ingham <jingham@apple.com>
+
+ Fix for MouseWheel Events (from Daniel Steffen):
+
+ * generic/tkEvent.c (Tk_HandleEvent): On Mac OS X, don't route
+ MouseWheel events to the Focus window. They are sent to the
+ window under the pointer on X (and the GenerateMouseWheelEvent
+ already got this right.)
+ * library/listbox.tcl: On Mac OS, don't use the magic 120
+ divisor that is used on Windows. We may come up with a cleaner
+ way to do this for the TOT, but this is simple and will do for the
+ 8.4 branch.
+ * library/text.tcl: Ditto.
+
2004-02-15 Jim Ingham <jingham@apple.com>
Backport Mac OS X specific fixes from TOT:
@@ -7,10 +21,11 @@
* macosx/tkMacOSXKeyboard.c: Add PowerBook keycode 0x34 as <Return>.
[Benjamin Riefenstahl]
- * macosx/tkMacOSXScrlbr.c: Reworking Vince's fix to [Bug 842952]. This
- version is clearer, and works helps keep the mouse better pinned to the
- scrollbar. I also removed the glitch where the scrollbar would jump get
- its middle over the mouse when you first moved it.
+ * macosx/tkMacOSXScrlbr.c: Reworking Vince's fix to [Bug 842952].
+ This version is clearer, and works helps keep the mouse better
+ pinned to the scrollbar. I also removed the glitch where the
+ scrollbar would jump get its middle over the mouse when you first
+ moved it.
* macosx/tkMacOSXClipboard.c (TkSuspendClipboard, TkSelGetSelection):
add unicode clipboard support. [Patch #840107] (senn)
diff --git a/generic/tkEvent.c b/generic/tkEvent.c
index f3b61d6..117f873 100644
--- a/generic/tkEvent.c
+++ b/generic/tkEvent.c
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkEvent.c,v 1.17.2.1 2003/07/19 01:03:25 hobbs Exp $
+ * RCS: @(#) $Id: tkEvent.c,v 1.17.2.2 2004/02/16 23:09:25 wolfsuit Exp $
*/
#include "tkPort.h"
@@ -838,7 +838,12 @@ Tk_HandleEvent(eventPtr)
* available on the Windows version of Tk.
*/
+#ifdef MAC_OSX_TK
+ /* MouseWheel events are not focus specific on Mac OS X */
+ if (mask & (KeyPressMask|KeyReleaseMask)) {
+#else
if (mask & (KeyPressMask|KeyReleaseMask|MouseWheelMask)) {
+#endif
winPtr->dispPtr->lastEventTime = eventPtr->xkey.time;
winPtr = TkFocusKeyEvent(winPtr, eventPtr);
if (winPtr == NULL) {
diff --git a/library/listbox.tcl b/library/listbox.tcl
index ff3b549..dcc3cde 100644
--- a/library/listbox.tcl
+++ b/library/listbox.tcl
@@ -3,7 +3,7 @@
# This file defines the default bindings for Tk listbox widgets
# and provides procedures that help in implementing those bindings.
#
-# RCS: @(#) $Id: listbox.tcl,v 1.13 2002/08/31 06:12:28 das Exp $
+# RCS: @(#) $Id: listbox.tcl,v 1.13.2.1 2004/02/16 23:09:25 wolfsuit Exp $
#
# Copyright (c) 1994 The Regents of the University of California.
# Copyright (c) 1994-1995 Sun Microsystems, Inc.
@@ -179,8 +179,15 @@ bind Listbox <B2-Motion> {
# someone could use the "event generate" command to produce one
# on other platforms.
-bind Listbox <MouseWheel> {
- %W yview scroll [expr {- (%D / 120) * 4}] units
+if {[string equal [tk windowingsystem] "classic"]
+ || [string equal [tk windowingsystem] "aqua"]} {
+ bind Listbox <MouseWheel> {
+ %W yview scroll [expr {- (%D)}] units
+ }
+} else {
+ bind Listbox <MouseWheel> {
+ %W yview scroll [expr {- (%D / 120) * 4}] units
+ }
}
if {[string equal "x11" [tk windowingsystem]]} {
diff --git a/library/text.tcl b/library/text.tcl
index eb227c2..85d83f1 100644
--- a/library/text.tcl
+++ b/library/text.tcl
@@ -3,7 +3,7 @@
# This file defines the default bindings for Tk text widgets and provides
# procedures that help in implementing the bindings.
#
-# RCS: @(#) $Id: text.tcl,v 1.24 2002/08/31 06:12:28 das Exp $
+# RCS: @(#) $Id: text.tcl,v 1.24.2.1 2004/02/16 23:09:25 wolfsuit Exp $
#
# Copyright (c) 1992-1994 The Regents of the University of California.
# Copyright (c) 1994-1997 Sun Microsystems, Inc.
@@ -458,8 +458,15 @@ set ::tk::Priv(prevPos) {}
# someone could use the "event generate" command to produce one
# on other platforms.
-bind Text <MouseWheel> {
- %W yview scroll [expr {- (%D / 120) * 4}] units
+if {[string equal [tk windowingsystem] "classic"]
+ || [string equal [tk windowingsystem] "aqua"]} {
+ bind Text <MouseWheel> {
+ %W yview scroll [expr {- (%D)}] units
+ }
+} else {
+ bind Text <MouseWheel> {
+ %W yview scroll [expr {- (%D / 120) * 4}] units
+ }
}
if {[string equal "x11" [tk windowingsystem]]} {