[PR #35] [CLOSED] feat: add tray minimize, clipboard integration, and hotkey improvements #54

Closed
opened 2026-03-03 15:57:32 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/mrgoonie/winshot/pull/35
Author: @Vivusk
Created: 12/11/2025
Status: Closed

Base: mainHead: main


📝 Commits (6)

  • 38e1191 fix(app): restore window position after region capture
  • 03cf0fd feat(capture): add clipboard image paste support
  • 0f1a8d1 feat(capture): add multi-monitor region capture support
  • 1d683cc fix(hotkeys): resolve goroutine thread affinity causing hotkey registration failure
  • 4fbc7d6 chore: update generated bindings and documentation
  • 20ad92b feat(clipboard): auto-copy styled canvas instead of raw screenshot

📊 Changes

19 files changed (+840 additions, -207 deletions)

View changed files

📝 .claude/active-plan (+1 -1)
📝 app.go (+49 -61)
docs-manager-251211-clipboard-capture.md (+129 -0)
📝 docs/codebase-summary.md (+39 -7)
📝 docs/system-architecture.md (+43 -1)
📝 frontend/dist/index.html (+2 -2)
📝 frontend/package.json.md5 (+1 -1)
📝 frontend/src/App.tsx (+114 -112)
📝 frontend/src/components/capture-toolbar.tsx (+20 -2)
📝 frontend/src/components/region-selector.tsx (+11 -8)
📝 frontend/wailsjs/go/main/App.d.ts (+4 -0)
📝 frontend/wailsjs/go/main/App.js (+8 -0)
📝 frontend/wailsjs/go/models.ts (+18 -0)
📝 frontend/wailsjs/runtime/runtime.js (+4 -0)
📝 go.mod (+2 -2)
📝 go.sum (+4 -4)
📝 internal/hotkeys/hotkeys.go (+152 -6)
📝 internal/screenshot/capture.go (+37 -0)
internal/screenshot/clipboard.go (+202 -0)

📄 Description

Summary

This pull request introduces several key improvements to WinShot:

  • Tray Minimize Feature: Minimize to system tray when CloseToTray option is enabled, keeping the app running in background
  • Auto-Copy Styled Canvas: Automatically copy styled (annotated) canvas to clipboard instead of raw screenshot
  • Multi-Monitor Region Capture: Improved region capture support for multi-monitor setups
  • Clipboard Image Paste: Add ability to paste clipboard images into the editor
  • Hotkey Improvements: Fix goroutine thread affinity issues that caused hotkey registration failures
  • Window Position Restoration: Restore window position after region capture operation
  • Documentation Updates: Enhanced architecture and codebase documentation

Changes

Backend (Go)

  • Enhanced hotkey registration with proper goroutine handling
  • New clipboard integration module for paste support
  • Improved screen capture logic for multi-monitor scenarios
  • System tray improvements for minimize-to-tray functionality

Frontend (React)

  • Updated UI components to support clipboard paste
  • New tray minimize toggle in settings
  • Enhanced region selector for better multi-monitor support
  • Component refinements for clipboard operations

Documentation

  • Updated system architecture documentation
  • Enhanced codebase summary with latest changes

Testing

All capture modes tested on multi-monitor setup:

  • Fullscreen capture works correctly
  • Region capture properly handles multiple monitors
  • Window capture detects active window accurately
  • Hotkeys register without thread affinity errors
  • Clipboard operations (copy/paste) function as expected
  • Tray minimize option works when enabled

Breaking Changes

None

Commits

7 commits included:

  • fix(app): restore window position after region capture
  • feat(capture): add clipboard image paste support
  • feat(capture): add multi-monitor region capture support
  • fix(hotkeys): resolve goroutine thread affinity causing hotkey registration failure
  • chore: update generated bindings and documentation
  • feat(clipboard): auto-copy styled canvas instead of raw screenshot
  • feat(tray): minimize to tray when CloseToTray option enabled

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/mrgoonie/winshot/pull/35 **Author:** [@Vivusk](https://github.com/Vivusk) **Created:** 12/11/2025 **Status:** ❌ Closed **Base:** `main` ← **Head:** `main` --- ### 📝 Commits (6) - [`38e1191`](https://github.com/mrgoonie/winshot/commit/38e119109376f84e451322ba84a1d8edd0583d34) fix(app): restore window position after region capture - [`03cf0fd`](https://github.com/mrgoonie/winshot/commit/03cf0fd0698e5f199965fa3c923eec469a2c341e) feat(capture): add clipboard image paste support - [`0f1a8d1`](https://github.com/mrgoonie/winshot/commit/0f1a8d123162d701baa35f4b121b505fd069a5d3) feat(capture): add multi-monitor region capture support - [`1d683cc`](https://github.com/mrgoonie/winshot/commit/1d683ccaffa9043b235fdaf8e3e88bd89ca295e0) fix(hotkeys): resolve goroutine thread affinity causing hotkey registration failure - [`4fbc7d6`](https://github.com/mrgoonie/winshot/commit/4fbc7d6db9bf496682d1fed361a418109f98ef9e) chore: update generated bindings and documentation - [`20ad92b`](https://github.com/mrgoonie/winshot/commit/20ad92b2ef56359aff04cdd299f49146d4820474) feat(clipboard): auto-copy styled canvas instead of raw screenshot ### 📊 Changes **19 files changed** (+840 additions, -207 deletions) <details> <summary>View changed files</summary> 📝 `.claude/active-plan` (+1 -1) 📝 `app.go` (+49 -61) ➕ `docs-manager-251211-clipboard-capture.md` (+129 -0) 📝 `docs/codebase-summary.md` (+39 -7) 📝 `docs/system-architecture.md` (+43 -1) 📝 `frontend/dist/index.html` (+2 -2) 📝 `frontend/package.json.md5` (+1 -1) 📝 `frontend/src/App.tsx` (+114 -112) 📝 `frontend/src/components/capture-toolbar.tsx` (+20 -2) 📝 `frontend/src/components/region-selector.tsx` (+11 -8) 📝 `frontend/wailsjs/go/main/App.d.ts` (+4 -0) 📝 `frontend/wailsjs/go/main/App.js` (+8 -0) 📝 `frontend/wailsjs/go/models.ts` (+18 -0) 📝 `frontend/wailsjs/runtime/runtime.js` (+4 -0) 📝 `go.mod` (+2 -2) 📝 `go.sum` (+4 -4) 📝 `internal/hotkeys/hotkeys.go` (+152 -6) 📝 `internal/screenshot/capture.go` (+37 -0) ➕ `internal/screenshot/clipboard.go` (+202 -0) </details> ### 📄 Description ## Summary This pull request introduces several key improvements to WinShot: - **Tray Minimize Feature**: Minimize to system tray when CloseToTray option is enabled, keeping the app running in background - **Auto-Copy Styled Canvas**: Automatically copy styled (annotated) canvas to clipboard instead of raw screenshot - **Multi-Monitor Region Capture**: Improved region capture support for multi-monitor setups - **Clipboard Image Paste**: Add ability to paste clipboard images into the editor - **Hotkey Improvements**: Fix goroutine thread affinity issues that caused hotkey registration failures - **Window Position Restoration**: Restore window position after region capture operation - **Documentation Updates**: Enhanced architecture and codebase documentation ## Changes ### Backend (Go) - Enhanced hotkey registration with proper goroutine handling - New clipboard integration module for paste support - Improved screen capture logic for multi-monitor scenarios - System tray improvements for minimize-to-tray functionality ### Frontend (React) - Updated UI components to support clipboard paste - New tray minimize toggle in settings - Enhanced region selector for better multi-monitor support - Component refinements for clipboard operations ### Documentation - Updated system architecture documentation - Enhanced codebase summary with latest changes ## Testing All capture modes tested on multi-monitor setup: - Fullscreen capture works correctly - Region capture properly handles multiple monitors - Window capture detects active window accurately - Hotkeys register without thread affinity errors - Clipboard operations (copy/paste) function as expected - Tray minimize option works when enabled ## Breaking Changes None ## Commits 7 commits included: - fix(app): restore window position after region capture - feat(capture): add clipboard image paste support - feat(capture): add multi-monitor region capture support - fix(hotkeys): resolve goroutine thread affinity causing hotkey registration failure - chore: update generated bindings and documentation - feat(clipboard): auto-copy styled canvas instead of raw screenshot - feat(tray): minimize to tray when CloseToTray option enabled --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-03 15:57:32 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/winshot#54
No description provided.