Rev. 日時 作者
8799a18 master 2017-05-12 19:21:41 Kazuhiro Fujieda

Fix Firefox crashes on showing a move in full screen

Since 78e2c1c, CallWndProc updates the current hook state on every
WM_SETFOCUS for IE10 or later. Firefox crushes by this on expanding a
movie to full screen. This fix makes CallWndProc update the state only
on foreground windows or IE tabs.

ee37bc9 2017-05-11 23:59:33 Kazuhiro Fujieda

Change the platform toolset to v140

6c5924f 2014-09-20 20:38:11 Kazuhiro Fujieda

Make some modifications to TSFHandler

- Remove unnecessary activation of TSF
- Fix a possible null dereference
- Uninstall an installed advice sink to avoid a resource leak

c1bfc09 2014-09-13 16:44:07 Kazuhiro Fujieda

Support TSF-based IMEs on TSF-aware applications

XKeymacs can't recognize the start and end of a composition by a
TSF-based IME on a TSF-aware application. It therefore doesn't switch
the current configuration from the application to the IME on the start
of a composition. One of such cases is Microsoft IME and Internet
Explorer 11 on Windows 7. This patch lets XKeymacs recognize the start
and end of a composition in such cases.

00805d5 2014-09-11 22:22:29 Kazuhiro Fujieda

Add a new class to handle the TLS stuff

aa92c5f 2014-09-11 22:22:28 Kazuhiro Fujieda

Fix a bug where the icon doesn't reflect the hook state on Internet Explorer

Each window on Internet Explorer runs on a separate process at a low
integrity level. These processes can't write the named pipe to notify
the hook state. This fix allow them to do it.

c18161b 2014-09-11 22:22:28 Kazuhiro Fujieda

Add the only active TIP (IME on TSF) to the IME list

78405f4 2014-09-11 22:22:27 Kazuhiro Fujieda

Make CUtils::Log thread safe

78e2c1c 2014-09-11 22:22:27 Kazuhiro Fujieda

Fix the bug where the hook state remains unchanged when IE10 or later has the keyboard focus

In xkeymacs-110830, the hook state remains unchanged when the keyboard
focus moves from another application to IE10 or later. After the change
of 55ddea2, the hook stays disabled in IE10 or later.

To change the hook state, CXkeymacsDll::CallWndProc calls
InitKeyboardProc when an appliation get the keyboard focus. It calls
only when the window is the foreground window. Each tab window in IE10
or later belong to a different process and does not become
foreground. So InitKeyboardProc is not called and the hook mode remains

To fix this bug, CallWndProc should call InitKeyboardProc even if the
focused window is not foreground.

bc0b216 2014-09-11 22:22:26 Kazuhiro Fujieda

Ignore minor differences in titles and file names

Microsoft Office IME 2010 returns different descriptions (with
trailing space or not) and file names (in upper or lower case)
whether just after installation or else. This workaround ignores
these differences.

3c4a80d 2013-06-04 20:04:14 Kazuhiro Fujieda

Fix a bug where two or more users can't use xkeymacs at the same time on the same host

This fix append the user name to the name of each named pipe. It can
avoid the conflict of the multiple instances of xkeymacs on the same

It also fixes a bug where 64bit DLL ignores any key press on the
failure in the IPC.

d735b48 2012-08-26 15:52:59 Kazuhiro Fujieda

Change the behavior of the reset

The reset restarts the 64bit process. This avoids the reset can't
cause any effect on the 64bit applications.

This commit includes the following changes.
- Make CMainFrame::TerminatePollThread wait until the thread really
- Make SendIPC64Message and IsWow64 in CXkeymacsApp static methods.
- Make IsWow64 invoke always IsWow64Process, remove the invocation
from Start64bitProcess, and add Terminate64bitProcess in CXkeymacsApp.
- Delete InitDllData and make SetDllData public in CProfile.
- Remove IPC64_RESET of an IPC message.
- Change CMainFrame::OnReset as above.

1d53267 2012-08-24 12:19:16 Kazuhiro Fujieda

Make CXkeymacsApp::Start64bitProcess wait until the child process starts

This fixes a bug where XKeymacs drops any key type on 64bit applications
when it starts automatically just after reboot.

676a11a 2012-08-23 23:15:30 Kazuhiro Fujieda

Allow output of debug logs on failures of IPC functions

bb65ebb 2012-08-23 22:05:48 Kazuhiro Fujieda

Insert ProjectGuid into each project file

It solves the problem where project's GUIDs in the solution file
change when the file is used to build targets on another machine.

293f384 2012-04-04 11:45:24 Kazuhiro Fujieda

Fix a bug where all applications launched by javaw.exe are
recognized as exlipse.exe.

d56ffda 2012-02-20 13:25:23 Kazuhiro Fujieda

Share the hook state among 32bit and 64bit processes.
Rewrite the IPC stuff.

a583dd5 2012-01-27 23:58:26 Kazuhiro Fujieda

Modify the code related to m_bHook in CXkeymacsDll.

6802fef 2012-01-27 23:58:24 Kazuhiro Fujieda

Make some members related to status icons static in CMainFrame.
Simplify the code related to them.

5a0263c 2012-01-27 23:58:03 Kazuhiro Fujieda

Define almost data members out of the shared section.
Rename m_kbdMacro to m_KbdMacro in CCommands.

46c3422 2012-01-23 03:07:40 Kazuhiro Fujieda

Separate AppName::SetIMEState from CXkeymacsDll::InitKeyboardProc.
Make the handler of WM_SETTEXT not change the IME state.

245b522 2012-01-22 17:41:10 Kazuhiro Fujieda

Add FuncDefs class to handle functions defined in dot.xkeymacs.
Modify the code related to it.
Remove CDotXkeymacs and CFunctionDefinition.

cb2f754 2012-01-20 08:53:51 Kazuhiro Fujieda

Make minor modifications to the code to handle key configurations.
Remove ugly macros in xkeymacs.cpp.

ee619aa 2012-01-13 12:17:14 Kazuhiro Fujieda

Stop setting an invalid value to the keyboard state to push the control key.

00eec25 2012-01-13 12:17:12 Kazuhiro Fujieda

Use Win32 API to convert codes between virtual-key and ASCII.

3d6bd5a 2012-01-13 12:16:42 Kazuhiro Fujieda

Add a new class CmdTable to handle the table of the commands.
Modify the code related to it.

20b4ef2 2012-01-09 10:45:51 Kazuhiro Fujieda

Rearrange the code assigning new application IDs and copying settings
on the properties dialog.

55ddea2 2012-01-09 10:45:49 Kazuhiro Fujieda

Reorganize the definition of struct Config to make it easy to copy a
configuration of an application to another. Modify related code.

8e17a84 2012-01-09 10:45:47 Kazuhiro Fujieda

Add a new class to enumerate applications and modify their titles.
Remove such functions from CProfile.

4195f54 2012-01-09 10:45:45 Kazuhiro Fujieda

Rewrite CUtils::GetWindowTextType.
Move IsMatchWindowText from CXkeymacsDll to CUtils and rewrite it.