OSDN Git Service
Kazuhiro Fujieda [Sun, 8 Oct 2017 12:58:46 +0000 (21:58 +0900)]
Reduce invocations of CoInitializeEx
Kazuhiro Fujieda [Sun, 8 Oct 2017 11:45:02 +0000 (20:45 +0900)]
Improve debug logging
Kazuhiro Fujieda [Thu, 5 Oct 2017 12:38:22 +0000 (21:38 +0900)]
Retry CoInitializeEx on its failure
Kazuhiro Fujieda [Sun, 1 Oct 2017 12:33:09 +0000 (21:33 +0900)]
Add .vs/ to .gitignore
YujiSoftware [Sat, 31 Mar 2018 10:23:56 +0000 (19:23 +0900)]
Adjust the layout of the properties dialog dynamically
On CJK versions of Windows 8 or later, the property sheet on the properties dialog are larger than expected and overlaps push buttons. This fix adjusts the layout dynamically.
Fixes #2 on github.
Kazuhiro Fujieda [Thu, 11 May 2017 15:02:30 +0000 (00:02 +0900)]
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.
Kazuhiro Fujieda [Thu, 11 May 2017 09:12:49 +0000 (18:12 +0900)]
Change the platform toolset to v140
Kazuhiro Fujieda [Thu, 18 Sep 2014 09:16:19 +0000 (18:16 +0900)]
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
Kazuhiro Fujieda [Thu, 11 Sep 2014 12:01:22 +0000 (21:01 +0900)]
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.
Kazuhiro Fujieda [Wed, 12 Mar 2014 09:39:40 +0000 (18:39 +0900)]
Add a new class to handle the TLS stuff
Kazuhiro Fujieda [Tue, 9 Sep 2014 10:46:40 +0000 (19:46 +0900)]
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.
Kazuhiro Fujieda [Mon, 8 Sep 2014 15:41:35 +0000 (00:41 +0900)]
Add the only active TIP (IME on TSF) to the IME list
Kazuhiro Fujieda [Mon, 8 Sep 2014 11:38:04 +0000 (20:38 +0900)]
Make CUtils::Log thread safe
Kazuhiro Fujieda [Sat, 22 Mar 2014 10:17:40 +0000 (19:17 +0900)]
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
unchanged.
To fix this bug, CallWndProc should call InitKeyboardProc even if the
focused window is not foreground.
Kazuhiro Fujieda [Fri, 5 Sep 2014 05:23:06 +0000 (14:23 +0900)]
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.
Kazuhiro Fujieda [Tue, 4 Jun 2013 11:04:14 +0000 (20:04 +0900)]
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
host.
It also fixes a bug where 64bit DLL ignores any key press on the
failure in the IPC.
Kazuhiro Fujieda [Sun, 26 Aug 2012 06:52:59 +0000 (15:52 +0900)]
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
terminates.
- 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.
Kazuhiro Fujieda [Fri, 24 Aug 2012 03:19:16 +0000 (12:19 +0900)]
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.
Kazuhiro Fujieda [Thu, 23 Aug 2012 13:53:00 +0000 (22:53 +0900)]
Allow output of debug logs on failures of IPC functions
Kazuhiro Fujieda [Thu, 23 Aug 2012 13:05:48 +0000 (22:05 +0900)]
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.
Kazuhiro Fujieda [Wed, 4 Apr 2012 02:45:24 +0000 (11:45 +0900)]
Fix a bug where all applications launched by javaw.exe are
recognized as exlipse.exe.
Kazuhiro Fujieda [Fri, 27 Jan 2012 14:53:57 +0000 (23:53 +0900)]
Share the hook state among 32bit and 64bit processes.
Rewrite the IPC stuff.
Kazuhiro Fujieda [Tue, 24 Jan 2012 21:25:51 +0000 (06:25 +0900)]
Modify the code related to m_bHook in CXkeymacsDll.
Kazuhiro Fujieda [Tue, 24 Jan 2012 01:53:26 +0000 (10:53 +0900)]
Make some members related to status icons static in CMainFrame.
Simplify the code related to them.
Kazuhiro Fujieda [Mon, 23 Jan 2012 15:05:07 +0000 (00:05 +0900)]
Define almost data members out of the shared section.
Rename m_kbdMacro to m_KbdMacro in CCommands.
Kazuhiro Fujieda [Sun, 22 Jan 2012 18:07:40 +0000 (03:07 +0900)]
Separate AppName::SetIMEState from CXkeymacsDll::InitKeyboardProc.
Make the handler of WM_SETTEXT not change the IME state.
Kazuhiro Fujieda [Sun, 22 Jan 2012 08:35:09 +0000 (17:35 +0900)]
Add FuncDefs class to handle functions defined in dot.xkeymacs.
Modify the code related to it.
Remove CDotXkeymacs and CFunctionDefinition.
Kazuhiro Fujieda [Thu, 19 Jan 2012 23:53:51 +0000 (08:53 +0900)]
Make minor modifications to the code to handle key configurations.
Remove ugly macros in xkeymacs.cpp.
Kazuhiro Fujieda [Mon, 2 Jan 2012 07:49:07 +0000 (16:49 +0900)]
Stop setting an invalid value to the keyboard state to push the control key.
Kazuhiro Fujieda [Tue, 27 Dec 2011 08:04:07 +0000 (17:04 +0900)]
Use Win32 API to convert codes between virtual-key and ASCII.
Kazuhiro Fujieda [Tue, 20 Dec 2011 12:33:14 +0000 (21:33 +0900)]
Add a new class CmdTable to handle the table of the commands.
Modify the code related to it.
Kazuhiro Fujieda [Sat, 24 Dec 2011 08:55:41 +0000 (17:55 +0900)]
Rearrange the code assigning new application IDs and copying settings
on the properties dialog.
Kazuhiro Fujieda [Mon, 12 Dec 2011 14:10:27 +0000 (23:10 +0900)]
Reorganize the definition of struct Config to make it easy to copy a
configuration of an application to another. Modify related code.
Kazuhiro Fujieda [Mon, 12 Dec 2011 13:37:50 +0000 (22:37 +0900)]
Add a new class to enumerate applications and modify their titles.
Remove such functions from CProfile.
Kazuhiro Fujieda [Thu, 10 Nov 2011 13:33:20 +0000 (22:33 +0900)]
Rewrite CUtils::GetWindowTextType.
Move IsMatchWindowText from CXkeymacsDll to CUtils and rewrite it.
Kazuhiro Fujieda [Thu, 17 Nov 2011 05:19:07 +0000 (14:19 +0900)]
Change CopyData to CopyDefault with one argument, and rewrite
ClearData and SetWindowText in CProfile.
Kazuhiro Fujieda [Thu, 17 Nov 2011 05:02:50 +0000 (14:02 +0900)]
Change CString to LPCTSTR or const CString&.
Modify LPCSTR into LPCTSTR.
Kazuhiro Fujieda [Wed, 9 Nov 2011 03:26:07 +0000 (12:26 +0900)]
Rename szAppName to appName, szAppTitle to appTitle, and
m_szAppTitle to m_AppTitle in CProfile.
Kazuhiro Fujieda [Mon, 7 Nov 2011 13:05:54 +0000 (22:05 +0900)]
Remove unhelpful const declarations in profile.{cpp,h} and xkeymacsdll.cpp.
Kazuhiro Fujieda [Sat, 29 Oct 2011 03:54:38 +0000 (12:54 +0900)]
Make the order of members in CProfile sensible. Remove unsed members.
Kazuhiro Fujieda [Fri, 28 Oct 2011 14:26:40 +0000 (23:26 +0900)]
Add KeyString class for conversion from a modifier and key code to a
string and the opposite. Modify related code.
Kazuhiro Fujieda [Mon, 24 Oct 2011 06:23:56 +0000 (15:23 +0900)]
Add a new class AppName to handle application names. This class
includes code derived from the work by co <cogood@gmail.com>
Kazuhiro Fujieda [Tue, 3 Jan 2012 11:38:57 +0000 (20:38 +0900)]
Use precompiled header files.
Kazuhiro Fujieda [Wed, 2 Nov 2011 05:31:25 +0000 (14:31 +0900)]
Solve problems in the debug build.
Correct parameters for the debug build in the project files.
Solve warnings in the debug build.
Remove invalid references to the resource AFX_IDS_APP_TITLE.
Modify PollIPCMessage to send the main window a WM_CLOSE message on
terminating the process.
Kazuhiro Fujieda [Sun, 23 Oct 2011 14:05:45 +0000 (23:05 +0900)]
Remove trailing \r in xkeymacsdll-vc10.vcxproj.filters
Kazuhiro Fujieda [Sun, 23 Oct 2011 13:44:43 +0000 (22:44 +0900)]
Add the invocation of SetKeyboardHook to ShellProc in CXkeymacsDll,
and modify SetKeyboardHook to accept a thread ID.
Kazuhiro Fujieda [Sun, 16 Oct 2011 05:30:09 +0000 (14:30 +0900)]
Make minor modifications in ipc.h and related files.
Remove unnecessary __declspec(align(8)) in ipc.h.
Rename CONFIG Config and rename ICONMSG IconMsg.
Kazuhiro Fujieda [Wed, 14 Sep 2011 14:11:34 +0000 (23:11 +0900)]
Add KbdMacro class to record key strokes and remove members handling
keyboard macros from CXkeymacsDll.
Kazuhiro Fujieda [Fri, 7 Oct 2011 00:37:10 +0000 (09:37 +0900)]
Reorganize header files and their inclusion.
Kazuhiro Fujieda [Thu, 6 Oct 2011 06:57:48 +0000 (15:57 +0900)]
Rewrite CUtils::Log with _vstprintf_s.
Kazuhiro Fujieda [Tue, 4 Oct 2011 09:37:44 +0000 (18:37 +0900)]
Remove obsolete or unused code from CUtils.
Kazuhiro Fujieda [Sat, 24 Sep 2011 14:51:10 +0000 (23:51 +0900)]
Start the 32bit process if the 64bit process previously starts.
Simplify code to start the 64bit process in the 32bit process.
Kazuhiro Fujieda [Sat, 24 Sep 2011 06:21:10 +0000 (15:21 +0900)]
Make some tweaks on resource files.
Regenerate the resource file for xkeymacs.exe with VS2010.
Use a separate resource file for xkeymacs64.exe and remove dependency
to another resource file.
Make ProductName "XKeymacs" in both resource files.
Set more intuitive FileDescription in each resource file.
Kazuhiro Fujieda [Tue, 6 Sep 2011 15:56:15 +0000 (00:56 +0900)]
Make the order of declarations and definitions of members in
CXkeymacsDll more sensible.
Kazuhiro Fujieda [Mon, 5 Sep 2011 07:48:48 +0000 (16:48 +0900)]
Remove Clear and rewrite IsPassThrough in CXkeymacsDll.
Kazuhiro Fujieda [Sun, 4 Sep 2011 10:39:58 +0000 (19:39 +0900)]
Remove IsValidKey and rewrite IsDepressedModifier in CXkeymacsDll.
Kazuhiro Fujieda [Sun, 4 Sep 2011 09:52:36 +0000 (18:52 +0900)]
Some minor modifications.
Kazuhiro Fujieda [Sun, 4 Sep 2011 09:09:34 +0000 (18:09 +0900)]
Take some member variables of CCommands and CXkeymacsDll outside of
the shared section. Different processes can't or shouldn't share them.
Kazuhiro Fujieda [Sun, 4 Sep 2011 06:24:11 +0000 (15:24 +0900)]
Modify or remove some declarations of constants in xkeymacsdll.h.
Declare some constants as const int.
Remove the declarations of EXTENDED_KEY, REPEATED_KEY, and BEING_RELEASED.
Exchange the values of ON_ICON and OFF_ICON.
Kazuhiro Fujieda [Sat, 3 Sep 2011 09:49:56 +0000 (18:49 +0900)]
Allocate the thread local storage in CXkeymacsDll::SetKeyboardHook
if it isn't allocated yet.
Kazuhiro Fujieda [Tue, 13 Sep 2011 04:37:51 +0000 (13:37 +0900)]
Use typecasting from CString to LPCTSTR instead of CString::GetString
in CUtils::SetClipboardText.
Kazuhiro Fujieda [Sat, 3 Sep 2011 12:04:22 +0000 (21:04 +0900)]
Make the first argument of CallNextHookEx NULL because it is ignored
on NT-based Windows.
Kazuhiro Fujieda [Tue, 30 Aug 2011 07:01:56 +0000 (16:01 +0900)]
Improve the member functions of CXkeymacsDll relating the hooks.
Remove the member variables of the hook handles from the shared section.
Remove unnecessary type casts in SetHooks.
Merge the invocations of CallNextHookEx in CallWndProc.
Add the invocations of SetKeyboardHook to CallWndRetProc and GetMsgProc.
Process messages in GetMsgProc only when nCode >= 0.
Kazuhiro Fujieda [Fri, 26 Aug 2011 06:06:18 +0000 (15:06 +0900)]
Rewrite member functions of CUtils relating to the clipboard. Remove
unused GetClipbardTextLength.
Kazuhiro Fujieda [Fri, 26 Aug 2011 04:43:17 +0000 (13:43 +0900)]
Hook release events of Alt caused by XKeymacs on Google Chrome.
Kazuhiro Fujieda [Thu, 25 Aug 2011 14:44:58 +0000 (23:44 +0900)]
Remove obsolete parameters from a log message.
Kazuhiro Fujieda [Thu, 25 Aug 2011 06:52:56 +0000 (15:52 +0900)]
Rename nVirtualCommandType nVirtualType.
Kazuhiro Fujieda [Fri, 26 Aug 2011 06:13:28 +0000 (15:13 +0900)]
Add *.aps to .gitignore.
Kazuhiro Fujieda [Sat, 13 Aug 2011 06:19:24 +0000 (15:19 +0900)]
Ignore inactive IMEs.
Kazuhiro Fujieda [Wed, 10 Aug 2011 07:43:26 +0000 (16:43 +0900)]
Change fonts into MS UI Gothic in Japanese and Tahoma in English.
Kazuhiro Fujieda [Sun, 7 Aug 2011 06:22:41 +0000 (15:22 +0900)]
Add a description of a fix for Firefox to doc/release{,_J}.txt.
Kazuhiro Fujieda [Sun, 7 Aug 2011 05:53:58 +0000 (14:53 +0900)]
CCommands::DeactivateMark() pushes VK_RIGHT on Firefox.
Kazuhiro Fujieda [Sun, 7 Aug 2011 04:55:17 +0000 (13:55 +0900)]
Use TLS APIs instead of __declspec(thread).
Kazuhiro Fujieda [Tue, 26 Jul 2011 06:33:32 +0000 (15:33 +0900)]
Fix a bug where some commands sensitive to being repeated such as
incremental search and kill line can't work in special cases.
Kazuhiro Fujieda [Fri, 22 Jul 2011 02:48:25 +0000 (11:48 +0900)]
Symlink Readme.markdown to Readme.txt.
Kazuhiro Fujieda [Fri, 22 Jul 2011 02:27:25 +0000 (11:27 +0900)]
Adjust the format of Readme{,_J}.txt to Markdown. Add detailed
instructions to uninstall or upgrade.
Kazuhiro Fujieda [Mon, 18 Jul 2011 07:45:24 +0000 (16:45 +0900)]
Move more code from C104Keyboard and C109Keyboard to CKeyboardLayout,
and remove DoDataExchange.
Kazuhiro Fujieda [Thu, 21 Jul 2011 00:58:06 +0000 (09:58 +0900)]
Make CXkeymacsApp::SendIPCMessage retry to send a message.
Kazuhiro Fujieda [Wed, 20 Jul 2011 12:37:11 +0000 (21:37 +0900)]
Make the keyboard hook local to each thread. Remove the code to
control IME with a window message.
Kazuhiro Fujieda [Wed, 20 Jul 2011 10:01:34 +0000 (19:01 +0900)]
Set alignment to IPC stuff.
Kazuhiro Fujieda [Sun, 17 Jul 2011 13:18:22 +0000 (22:18 +0900)]
Mention the change of how to show IMEs on the properties dialog.
Kazuhiro Fujieda [Sun, 17 Jul 2011 13:09:43 +0000 (22:09 +0900)]
Make xkeymacs.exe reset hooks on resuming from suspend.
Kazuhiro Fujieda [Sun, 17 Jul 2011 11:30:18 +0000 (20:30 +0900)]
Add a class to create a list of IMEs. Fix a bug where the properties
dialog doesn't show a IME based of TSF when there is no IME based
on IMM.
Kazuhiro Fujieda [Fri, 15 Jul 2011 14:26:30 +0000 (23:26 +0900)]
Make the properties dialog show one of IMEs only based on TSF.
Kazuhiro Fujieda [Wed, 13 Jul 2011 13:21:33 +0000 (22:21 +0900)]
Show the web site in Readme{,._J}.txt.
Kazuhiro Fujieda [Wed, 13 Jul 2011 12:39:56 +0000 (21:39 +0900)]
Remove the copyright notice and code to handle it. Modify the layout
of the about dialog.
Kazuhiro Fujieda [Wed, 13 Jul 2011 06:15:38 +0000 (15:15 +0900)]
Make the timeout of CallNamedPipe with IPC_PIPE forever.
Kazuhiro Fujieda [Tue, 12 Jul 2011 09:41:23 +0000 (18:41 +0900)]
Change arrays of BOOL or int to arrays of BYTE in CONFIG and CXkeymacsDll.
Kazuhiro Fujieda [Tue, 12 Jul 2011 09:00:33 +0000 (18:00 +0900)]
Add a description of a fix about IME to doc/release{,_J}.txt.
Kazuhiro Fujieda [Tue, 12 Jul 2011 08:21:07 +0000 (17:21 +0900)]
Rewrite code to handle titles and names of applications in CProfile
and CProperties.
Kazuhiro Fujieda [Tue, 12 Jul 2011 08:11:37 +0000 (17:11 +0900)]
Rename m_nApplicationID m_nAppID and rename m_szCurrentApplication
m_appName.
Kazuhiro Fujieda [Tue, 12 Jul 2011 07:01:47 +0000 (16:01 +0900)]
Rewrite CProfile::LevelUp.
Kazuhiro Fujieda [Mon, 11 Jul 2011 15:39:26 +0000 (00:39 +0900)]
Rename szAppName appTitle in CProfile. Merge CountSeparator,
GetNthString, and GetAppName into GetAppTitle.
Kazuhiro Fujieda [Mon, 11 Jul 2011 02:13:10 +0000 (11:13 +0900)]
Split GetApplicationIndex into DefaultAppID, AssingAppID,
GetSettingStyle, and SetSettingStyle in CProfile.
Kazuhiro Fujieda [Mon, 11 Jul 2011 02:00:32 +0000 (11:00 +0900)]
Rename CProfile::GetApplicaionIndex with one argument GetAppIndex
and change its argument to LPCSTR.
Kazuhiro Fujieda [Sat, 9 Jul 2011 04:53:59 +0000 (13:53 +0900)]
Remove UpdateDialogData in each of CProperties and its children.
Put the code in UpdateDialogData to get the dialog data into
GetDialogData and the code to set it into SetDialogData in each class.
Kazuhiro Fujieda [Fri, 8 Jul 2011 08:54:31 +0000 (17:54 +0900)]
Remove the argument of CString of SetDialogData and UpdateDialogData
in each of CProperties and its children.
Kazuhiro Fujieda [Fri, 8 Jul 2011 06:59:57 +0000 (15:59 +0900)]
Use references instead of pointers in arguments of CProfile::ReadKeyBind.
Kazuhiro Fujieda [Fri, 8 Jul 2011 01:25:39 +0000 (10:25 +0900)]
Use LPCSTR instead of CString in arguments of SaveKeyBind,
SaveCommand and AddKeyBind2C_ of CProfile. Change the return type of
CCommands::GetCommandName to LPCSTR. Shorten variable names in these
functions.
Kazuhiro Fujieda [Fri, 8 Jul 2011 01:07:05 +0000 (10:07 +0900)]
Rename appName szAppName in CProfile::SaveRegistry.
Make a minor change to CProfile::LoadRegistry.