| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
This should fix problems (like #1908443) where Xlib's idea
of the system encoding does not match Tcl's.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* generic/tkInt.h (struct TkCaret):
* mac/tkMacXStubs.c (Tk_SetCaretPos):
* unix/tkUnixKey.c (TkpGetString, Tk_SetCaretPos):
* win/tkWinX.c (Tk_SetCaretPos):
* tests/tk.test: Added 'tk caret' implementation of TIP#96
* doc/SetCaret.3 (new): which adds a TkCaret structure element to
* doc/tk.n: TkDisplay for maintaining state.
|
|
|
|
|
|
|
| |
* unix/tkUnixKey.c (TkpGetString):
* generic/tkEvent.c (Tk_HandleEvent):
* generic/tkInt.h: changed useInputMethods boolean from int to a
bit in the flags variable (TK_DISPLAY_USE_IM)
|
| |
|
|
|
|
|
|
|
|
|
| |
* unix/tkUnixEvent.c (OpenIM):
* unix/tkUnixKey.c (TkpGetString):
* generic/tkInt.h: added TK_USE_XIM_SPOT flag bit for TkDisplay
and used this to allow a runtime check to see if over-the-spot XIM
is possible. If not it will try and fallback to the old-style
input context, which handles things like dead keys input.
|
|
|
|
| |
XIM caret in TkpGetString.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
<Alt-z>] [Bug: 4611].
* tests/choosedir.test: Changed "namespace import ::tcltest" to
"namespace import -force ::tcltest".
* win/tkWinKey.c:
* unix/tkUnixKey.c:
* mac/tkMacKeyboard.c: Changed InitKeymapInfo to
TkpInitKeymapInfo. [Bug: 4611].
* generic/tkStubInit.c:
* generic/tkIntDecls.h: Re-gen'd from tkInt.decls.
* generic/tkInt.decls: Added TkpInitKeymapInfo to list of function
decls.
* generic/tkBind.c (HandleEventGenerate): Added code to initialize
keymap info if necessary, and to correctly set modifier bits in
XEvent structure create to handle [event generate] calls.
Previously, the alt/meta bits were not set correctly, so [event
generate $widget <Alt-z>] would always fail. [Bug: 4611]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* generic/tkBind.c:
* generic/tkInt.decls:
* generic/tkIntDecls.h:
* generic/tkStubInit.c:
* mac/tkMacKeyboard.c:
* unix/tkUnixKey.c:
* win/tkWinKey.c: Fix for keyboard handling of "dead" keys and
caps lock from Peter Spjuth.
Split functions into platform specific files:
Static functions GetKeySym(), SetKeycodeAndState() and InitKeymapInfo()
from tkBind.c moved into platform files tkWinKey.c tkUnixKey.c and
tkMacKeyboard.c. GetKeySym() and SetKeycodeAndState() renamed to
Tkp* and made public (as private functions) in tkInt.decls.
Step 2, fixes in tkWinKey.c
New static function: KeycodeToKeysym(), based on XKeycodeToKeysym()
but with different arguments, and a lot of improvements.
TkpGetString() changed to use KeycodeToKeysym() + other fixes.
TkpGetKeySym() changed to use KeycodeToKeysym() + other fixes.
InitKeymapInfo() changed to use KeycodeToKeysym().
TkpSetKeycodeAndState() rewritten, mostly by copying code from
XKeysymToKeycode().
XKeycodeToKeysym() rewritten. Preferably it should be removed.
EXPLANATION: The main problem is ToAscii() which has a lot of side
effects, and also that XKeycodeToKeysym() is not provided enough
input to do a proper job. The changes' main goal is to avoid
calling ToAscii() if not necessary, and to provide it with as
correct information as possible when called. Also some attempts
to clean up what ToAscii() did are done. See the code for details.
BUGS FIXED: Typing shifted (and AltGr) dead keys did not work.
Keyboard lock lamps did not work on Win98.
Events regarding AltGr-keys behaved badly.
Example: On a Swedish keyboard, $ is typed with AltGr-4.
That keyboard event would get the keysym '4' not 'dollar'.
Also, doing [event generete . <Key-dollar>] would send keysym '4'.
Translation to ascii in TkpGetString did not handle return and
tab correctly. I.e. [event generate . <Key-Return>] gave wrong %A
|
|
|
|
|
|
|
|
|
| |
* generic/tkCmds.c:
* generic/tkEvent.c:
* generic/tkWindow.c:
* generic/tkInt.h: add 'tk useinputmethods ?-display win? ?bool?'
call to provide support for disabling/enabling the use of XIM on
X. This was previously all done at compile time, and always on.
|
|
|