summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2010-05-20 22:48:13 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2010-05-20 22:48:13 (GMT)
commit16e2616552f5fc57dd669f4875e476fd9656e498 (patch)
treed5d357b97a22837ce02e07af82b8558ef2b06bbc
parent154d66ee2ba284c660ae8f0430757d18d0c77a02 (diff)
downloadtk-16e2616552f5fc57dd669f4875e476fd9656e498.zip
tk-16e2616552f5fc57dd669f4875e476fd9656e498.tar.gz
tk-16e2616552f5fc57dd669f4875e476fd9656e498.tar.bz2
* win/tkWinX.c (HandleIMEComposition): [Bug 2992129]: Ensure that all
places that generate key events zero them out first; Tk relies on that being true for the generic parts of the fix for Bug 1924761.
-rw-r--r--ChangeLog51
-rw-r--r--win/tkWinX.c6
2 files changed, 33 insertions, 24 deletions
diff --git a/ChangeLog b/ChangeLog
index e72b7b7..c39b897 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,42 +1,47 @@
+2010-05-20 Donal K. Fellows <dkf@users.sf.net>
+
+ * win/tkWinX.c (HandleIMEComposition): [Bug 2992129]: Ensure that all
+ places that generate key events zero them out first; Tk relies on that
+ being true for the generic parts of the fix for Bug 1924761.
+
2010-05-17 Jan Nijtmans <nijtmans@users.sf.net>
- * win/tkWinDialog.c: Fix [Bug #3002230]: tk_chooseDirectory returns
+ * win/tkWinDialog.c: Fix [Bug 3002230]: tk_chooseDirectory returns
garbage on cancel
2010-05-17 Joe English <jenglish@users.sourceforge.net>
- * generic/tkBind.c: Revert [Patch #2999920], as it entails an
- incompatible change to the C API is and is the cause of
- [Bug #3002768].
+ * generic/tkBind.c: Revert [Patch 2999920], as it entails an
+ incompatible change to the C API is and is the cause of [Bug 3002768].
2010-05-17 Jan Nijtmans <nijtmans@users.sf.net>
- * generic/tkBind.c [Patch #2999920]: Optimize Internal Virtual event
- string operations
- * win/tkWinDialog.c [Bug #2987995]: Tk_getOpenFile returns garbage under
- described circumstances
+ * generic/tkBind.c: [Patch 2999920]: Optimize Internal Virtual event
+ string operations.
+ * win/tkWinDialog.c: [Bug 2987995]: Tk_getOpenFile returns garbage
+ under described circumstances
2010-05-11 Jan Nijtmans <nijtmans@users.sf.net>
- * doc/RestrictEv.3 Consistent use of variable names in RestrictEvent
- * generic/tkGrab.c API documentation and implementation: Use 'prev'
- * unix/tkUnixDraw.c in stead of 'old', and 'arg' in stead of
- * unix/tkUnixSend.c 'clientData' everywhere, just as in tkEvent.c.
+ * doc/RestrictEv.3: Consistent use of variable names in RestrictEvent
+ * generic/tkGrab.c: API documentation and implementation: Use 'prev'
+ * unix/tkUnixDraw.c: instead of 'old', and 'arg' instead of
+ * unix/tkUnixSend.c: 'clientData' everywhere, just as in tkEvent.c.
* unix/tkUnixWm.c
2010-05-10 Jan Nijtmans <nijtmans@users.sf.net>
- * doc/BindTable.3 Bring in line with actual implementation.
- * generic/tk.decls Change Tk_CreateBinding param name, as in doc
- * generic/tkInt.decls CONSTify TkCopyAndGlobalEval, TkpSetMainMenubar,
- * generic/tkBind.c TkpMenuNotifyToplevelCreate, and TkSetWindowMenuBar
- * generic/tkMenu.c
- * generic/tkDecls.h (regenerated)
- * generic/tkIntDecls.h (regenerated)
- * carbon/tkMacOSXMenu.c
- * macosx/tkMacOSXMenu.c
- * unix/tkUnixMenu.c
- * win/tkWinMenu.c
+ * doc/BindTable.3: Bring in line with actual implementation.
+ * generic/tk.decls: Change Tk_CreateBinding param name, as in doc
+ * generic/tkInt.decls: CONSTify TkCopyAndGlobalEval,
+ * generic/tkBind.c: TkpSetMainMenubar, TkpMenuNotifyToplevelCreate,
+ * generic/tkMenu.c: and TkSetWindowMenuBar
+ * generic/tkDecls.h: (regenerated)
+ * generic/tkIntDecls.h: (regenerated)
+ * carbon/tkMacOSXMenu.c:
+ * macosx/tkMacOSXMenu.c:
+ * unix/tkUnixMenu.c:
+ * win/tkWinMenu.c:
2010-05-03 Don Porter <dgp@users.sourceforge.net>
diff --git a/win/tkWinX.c b/win/tkWinX.c
index a0f69ab..75752fe 100644
--- a/win/tkWinX.c
+++ b/win/tkWinX.c
@@ -10,7 +10,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkWinX.c,v 1.64 2010/04/29 15:28:04 nijtmans Exp $
+ * RCS: @(#) $Id: tkWinX.c,v 1.65 2010/05/20 22:48:13 dkf Exp $
*/
/*
@@ -1632,10 +1632,14 @@ HandleIMEComposition(
* We set send_event to the special value of -2, so that TkpGetString
* in tkWinKey.c knows that trans_chars[] already contains a UNICODE
* char and there's no need to do encoding conversion.
+ *
+ * Note that the event *must* be zeroed out first; Tk plays cunning
+ * games with the overalls structure. [Bug 2992129]
*/
winPtr = (TkWindow *) Tk_HWNDToWindow(hwnd);
+ memset(&event, 0, sizeof(XEvent));
event.xkey.serial = winPtr->display->request++;
event.xkey.send_event = -2;
event.xkey.display = winPtr->display;