Zoominator - Source Zoom and Mouse Follow Plugin

Zoominator - Source Zoom and Mouse Follow Plugin 1.9.4

  • Fixed OBS crash on shutdown caused by plugin cleanup touching scene/source objects too late.
  • Added safer zoom recovery logic after unexpected OBS close or crash.
  • Improved protection against sources staying zoomed, resized, or misplaced after relaunch.
  • Updated transform saving so source positions/sizes stay synced with user edits during normal use.
  • Optimized mouse-follow zoom behavior to reduce lag and unnecessary transform updates.
  • Reduced plugin activity during OBS teardown for better stability with Browser/CEF sources.
  • Architected New Tabbed Dialog Interface: Refactored the settings UI into a clean, tabbed layout. Global settings are now housed in the "Settings" tab, while source-specific controls live in the new "Sources" tab.
  • Implemented Source Exclusion Filtering: Added the ability to manually exclude specific sources from the zoom logic. Excluded sources are silently skipped during scene enumeration, preventing the zoom anchor from snapping to unwanted background elements or overlays.
  • Recursive Scene Traversal: Enhanced the source discovery logic to perform a deep scan of all scenes and groups, ensuring nested sources are correctly identified and available for filtering.
  • Smart Source Identification: Added a friendlySourceKind helper to the UI, displaying sources as Name [Type] (e.g., "Game Capture [Window Capture]") to help users distinguish between similarly named items.
  • Persistent Configuration: Updated the controller to save and load excluded source lists via JSON, ensuring your filter settings persist across OBS sessions.
  • Automatic Deduplication: The filtering system now automatically handles duplicate source names across multiple scenes to prevent list clutter.
  • Fixed HiDPI Mouse Tracking (Windows): Resolved an issue where the zoom anchor was misaligned on 2K, 4K, and 8K displays.
  • Synchronized Coordinate Systems: Fixed a mismatch where the cursor was being tracked in physical pixels while the screen was measured in device-independent pixels (DIP). This previously caused the zoom to target the wrong area based on the monitor's DPI scale (e.g., 200% scale causing a 2x offset).
  • Implemented Unified Cursor Logic: Replaced platform-specific cursor calls with QCursor::pos(). This ensures the mouse position is automatically normalized to the correct coordinate space across Windows, macOS, and Linux.
  • Code Cleanup: Streamlined zoominator-controller.cpp by removing legacy platform-specific code blocks in favor of a clean, cross-platform Qt implementation.
  • Improved Multi-Monitor Support: Verified that monitor enumeration and scene mapping remain accurate and unaffected by the coordinate system shift.
  • Linux X11 support implemented by @derekross
  • Introduced a new mouse-click highlight feature with a configurable halo indicator
  • Added support for directional modifier key combinations (split function keys)
  • Refactored zoom behavior to operate on the entire scene rather than a single source, enabling consistent zooming across all scene elements and source types
A new feature was added to Zoominator where you can set a hotkey to toggle the mouse follow on the fly
1775483454020.png
- Implemented a toggler inside the dialog so whether you select mouse or keybord it will only show the options for the selected toggler this reducing the confusion
- Several improvements to make the plugin working on MACOS by https://github.com/tcb678
- Reintroduced gersemirc and clang-format checks on cod build
- Updated the dock to always keep the state of newly created / removed media sources that can be zoomed
Back
Top