summaryrefslogtreecommitdiffstats
path: root/macosx/tkMacOSXMouseEvent.c
diff options
context:
space:
mode:
authordas <das>2004-11-11 01:26:40 (GMT)
committerdas <das>2004-11-11 01:26:40 (GMT)
commitce94eed8e3c51494a411e1389946fabf9923ff43 (patch)
treef24f480319309f3272f2b41ab1563f81c89ae1fc /macosx/tkMacOSXMouseEvent.c
parentf4d485d83668861b7724e5349c8b5c3d4f70e28c (diff)
downloadtk-ce94eed8e3c51494a411e1389946fabf9923ff43.zip
tk-ce94eed8e3c51494a411e1389946fabf9923ff43.tar.gz
tk-ce94eed8e3c51494a411e1389946fabf9923ff43.tar.bz2
* generic/tkMain.c:
* macosx/tkMacOSXAppInit.c (removed): * macosx/Wish.pbproj/project.pbxproj: * macosx/tkMacOSXInit.c: * macosx/tkMacOSXInt.h: changes to make TkAqua dynamically loadable, enabling [package require Tk] from tclsh. Startup code from tkMacOSXAppInit.c moved into tkMacOSXInit.c, added code that notifies the window server that an unbundled executable is a full GUI application after loading Tk. [Patch 1035348] * doc/wm.n: documented [wm attributes] on Mac OS X. [Bug 606665] * macosx/tkMacOSXWm.c: implemented TIP 222 [wm attributes -alpha] on Mac OS X. [Patch 892194] WmIconbitmapCmd: adopted FSRef changes from [wm atttrs -titlepath]. * macosx/tkMacOSXButton.c: * macosx/tkMacOSXMenus.c: * macosx/tkMacOSXRegion.c: * macosx/tkMacOSXSubwindows.c: synced spacing/formatting with HEAD. * macosx/tkMacOSXMouseEvent.c: endianness fixes. * macosx/Wish.pbproj/project.pbxproj: corrected path to html help inside framework. * macosx/Makefile: prevent parallel make from building several targets at the same time. Ensure that xcodebuild will use Wish.pbproj project even if a .xcode project is also present.
Diffstat (limited to 'macosx/tkMacOSXMouseEvent.c')
-rw-r--r--macosx/tkMacOSXMouseEvent.c28
1 files changed, 17 insertions, 11 deletions
diff --git a/macosx/tkMacOSXMouseEvent.c b/macosx/tkMacOSXMouseEvent.c
index cab8a93..168ef73 100644
--- a/macosx/tkMacOSXMouseEvent.c
+++ b/macosx/tkMacOSXMouseEvent.c
@@ -117,6 +117,7 @@ TkMacOSXProcessMouseEvent(TkMacOSXEvent *eventPtr, MacEventStatus * statusPtr)
int status,err;
MouseEventData mouseEventData, * medPtr = &mouseEventData;
KeyMap keyMap;
+ long modif;
switch (eventPtr->eKind) {
case kEventMouseUp:
@@ -140,19 +141,21 @@ TkMacOSXProcessMouseEvent(TkMacOSXEvent *eventPtr, MacEventStatus * statusPtr)
}
medPtr->state = 0;
GetKeys(keyMap);
- if (keyMap[1] & 2) {
+ modif = EndianS32_BtoN(*(long*)(&keyMap[1]));
+
+ if (modif & 2) {
medPtr->state |= LockMask;
}
- if (keyMap[1] & 1) {
+ if (modif & 1) {
medPtr->state |= ShiftMask;
}
- if (keyMap[1] & 8) {
+ if (modif & 8) {
medPtr->state |= ControlMask;
}
- if (keyMap[1] & 32768) {
+ if (modif & 32768) {
medPtr->state |= Mod1Mask; /* command key */
}
- if (keyMap[1] & 4) {
+ if (modif & 4) {
medPtr->state |= Mod2Mask; /* option key */
}
if (eventPtr->eKind == kEventMouseDown
@@ -381,7 +384,7 @@ TkMacOSXProcessMouseEvent(TkMacOSXEvent *eventPtr, MacEventStatus * statusPtr)
TkMacOSXPreprocessMenu();
TkMacOSXHandleMenuSelect(MenuSelect(where),
- theKeys[1] & 4);
+ EndianS32_BtoN(*(long*)(&theKeys[1])) & 4);
Tcl_SetServiceMode(oldMode);
return true; /* TODO: may not be on event on queue. */
}
@@ -678,30 +681,33 @@ TkMacOSXButtonKeyState()
{
unsigned int state = 0;
KeyMap theKeys;
+ long modif;
if (Button() & !gEatButtonUp) {
state |= Button1Mask;
}
GetKeys(theKeys);
+
+ modif = EndianS32_BtoN(*(long*)(&theKeys[1]));
- if (theKeys[1] & 2) {
+ if (modif & 2) {
state |= LockMask;
}
- if (theKeys[1] & 1) {
+ if (modif & 1) {
state |= ShiftMask;
}
- if (theKeys[1] & 8) {
+ if (modif & 8) {
state |= ControlMask;
}
- if (theKeys[1] & 32768) {
+ if (modif & 32768) {
state |= Mod1Mask; /* command key */
}
- if (theKeys[1] & 4) {
+ if (modif & 4) {
state |= Mod2Mask; /* option key */
}