Skip to content

Releases: Bitpulses/EZAuto

EZAuto_static_v0.2.2

Choose a tag to compare

@Bitpulses Bitpulses released this 18 Jun 02:09

Release Notes v0.2.2

Critical Fixes

  • Fixed a memory leak in FocusMonitor caused by an extra COM AddRef() call during handler registration.
  • Replaced volatile bool g_running with std::atomic<bool> to ensure thread-safe shutdown signaling.
  • Fixed IME state tracking so failed switch attempts no longer prevent future retries.
  • Made configuration loading atomic to prevent partial updates when JSON parsing fails.

Improvements

  • Reduced mutex hold time in focus callbacks to avoid event backlog and potential deadlocks.
  • Fixed data races in ImeSwitcher by protecting shared state with a mutex.
  • Replaced SendMessage with SendMessageTimeout(..., SMTO_ABORTIFHUNG) to prevent hangs on unresponsive windows.
  • Fixed JSON parsing when braces appear inside quoted strings.
  • Improved IME state detection when the IME is closed by marking unreliable states correctly.

Minor Fixes

  • Improved HWND formatting by using uintptr_t for safe pointer conversion.
  • Prevented queued focus events from executing after FocusMonitor has stopped.
  • Updated version number references from 0.1.4 to 0.2.1.
  • Fixed configuration loading on non-ASCII installation paths by using GetModuleFileNameW().

Summary

This release improves stability, thread safety, IME switching reliability, configuration handling, and overall robustness.

EZAuto_static_v0.2.1

Choose a tag to compare

@Bitpulses Bitpulses released this 16 Jun 06:27
  • Fixed an issue where some windows could not be switched successfully.
  • Fixed a bug in Snipaste.exe where window detection could be incorrectly triggered.

EZAuto_static_v0.1.5

Choose a tag to compare

@Bitpulses Bitpulses released this 15 Jun 01:58
FIX: Resolve browser scrolling bug

EZAuto_static_v0.1.4

Choose a tag to compare

@Bitpulses Bitpulses released this 04 Jun 11:13

EZAuto v0.1.4: Automatic Input Method Switching for English and Chinese | Smart IME Auto-Switch Tool for Windows


fix: prevent context menu dismissal and enable graceful exit

  • FocusMonitor callback: use GA_ROOTOWNER instead of GA_ROOT to
    correctly attribute owned popup windows (e.g., right-click menus)
    to their owning top-level window. Previously, GA_ROOT would treat
    a context menu as a separate application, triggering an unnecessary
    IME switch whose simulated keystrokes dismissed the menu.

  • ConsoleHandler: replace the broken PostThreadMessage approach with
    a PeekMessage loop guarded by the g_running flag. The original code
    posted WM_QUIT from a separate console handler thread, so the main
    message loop never received it and the program could not exit
    gracefully. Now setting g_running = false causes the message loop
    to terminate cleanly.

  • Switch Bugs

  • Fixed logging format