summaryrefslogtreecommitdiffstats
path: root/macosx/tkMacOSXKeyEvent.c
diff options
context:
space:
mode:
authordas <das>2006-04-28 06:02:47 (GMT)
committerdas <das>2006-04-28 06:02:47 (GMT)
commit37574f162488e058bcba4d8378c94a18716b7af1 (patch)
treedbf40a74ecf59b8ccec931d28b36eb0dfdafb1a1 /macosx/tkMacOSXKeyEvent.c
parentc5df89036d559ebb962065ca285fa46f6828db56 (diff)
downloadtk-37574f162488e058bcba4d8378c94a18716b7af1.zip
tk-37574f162488e058bcba4d8378c94a18716b7af1.tar.gz
tk-37574f162488e058bcba4d8378c94a18716b7af1.tar.bz2
* macosx/tkMacOSXWm.c (TkWmMapWindow, InitialWindowBounds): fix use of
potentially stale window position in initial configure event on first map of a window. [Bug 1476443] (TkMacOSXWindowOffset): use modern GetWindowStructureWidths API. * macosx/tkMacOSXInt.h: * macosx/tkMacOSXMouseEvent.c (TkGenerateButtonEventForXPointer): new internal function to generate button events for current pointer directly, without requiring prior call to XQueryPointer(). * macosx/tkMacOSXMouseEvent.c (XQueryPointer): implement return of window-local pointer position. * macosx/tkMacOSXInt.h: use improvements above to avoid calls to * macosx/tkMacOSXKeyEvent.c: GlobalToLocal() when the current port might * macosx/tkMacOSXMenu.c: not be set correctly. May fix [Bug 1243318] * macosx/tkMacOSXMenus.c: * macosx/tkMacOSXScale.c: * macosx/tkMacOSXScrlbr.c: * tkAboutDlg.r: update copyright. * macosx/tkMacOSXDebug.h: sync #includes with core-8-4-branch. * macosx/tkMacOSXEvent.h: * macosx/tkMacOSXFont.h:
Diffstat (limited to 'macosx/tkMacOSXKeyEvent.c')
-rw-r--r--macosx/tkMacOSXKeyEvent.c25
1 files changed, 12 insertions, 13 deletions
diff --git a/macosx/tkMacOSXKeyEvent.c b/macosx/tkMacOSXKeyEvent.c
index d76de1e..17923e8 100644
--- a/macosx/tkMacOSXKeyEvent.c
+++ b/macosx/tkMacOSXKeyEvent.c
@@ -50,7 +50,7 @@
* software in accordance with the terms specified in this
* license.
*
- * RCS: @(#) $Id: tkMacOSXKeyEvent.c,v 1.13 2006/03/24 14:58:01 das Exp $
+ * RCS: @(#) $Id: tkMacOSXKeyEvent.c,v 1.14 2006/04/28 06:02:49 das Exp $
*/
#include "tkMacOSXInt.h"
@@ -58,8 +58,8 @@
typedef struct {
WindowRef whichWindow;
- Point global;
- Point local;
+ int global_x, global_y;
+ int local_x, local_y;
unsigned int state;
unsigned char ch;
UInt32 keyCode;
@@ -435,19 +435,18 @@ GenerateKeyEvent(
static int
InitKeyData(KeyEventData * keyEventDataPtr)
{
- int x, y;
memset (keyEventDataPtr, 0, sizeof(*keyEventDataPtr));
keyEventDataPtr->whichWindow = ActiveNonFloatingWindow();
if (keyEventDataPtr->whichWindow == NULL) {
return false;
}
- XQueryPointer(NULL, None, NULL, NULL, &x, &y,
- NULL, NULL, &keyEventDataPtr->state);
- keyEventDataPtr->global.v = x;
- keyEventDataPtr->global.v = y;
- keyEventDataPtr->local = keyEventDataPtr->global;
- GlobalToLocal(&keyEventDataPtr->local);
+ XQueryPointer(NULL, None, NULL, NULL,
+ &keyEventDataPtr->global_x,
+ &keyEventDataPtr->global_y,
+ &keyEventDataPtr->local_x,
+ &keyEventDataPtr->local_y,
+ &keyEventDataPtr->state);
return true;
}
@@ -534,8 +533,8 @@ InitKeyEvent(
eventPtr->xkey.same_screen = true;
eventPtr->xkey.subwindow = None;
eventPtr->xkey.time = TkpGetMS();
- eventPtr->xkey.x_root = e->global.h;
- eventPtr->xkey.y_root = e->global.v;
+ eventPtr->xkey.x_root = e->global_x;
+ eventPtr->xkey.y_root = e->global_y;
eventPtr->xkey.window = Tk_WindowId(tkwin);
eventPtr->xkey.display = Tk_Display(tkwin);
eventPtr->xkey.root = XRootWindow(Tk_Display(tkwin), 0);
@@ -543,7 +542,7 @@ InitKeyEvent(
eventPtr->xkey.trans_chars[0] = 0;
Tk_TopCoordsToWindow(
- tkwin, e->local.h, e->local.v,
+ tkwin, e->local_x, e->local_y,
&eventPtr->xkey.x, &eventPtr->xkey.y);
eventPtr->xkey.keycode = e->ch |