mirror of
https://github.com/mrgoonie/winshot.git
synced 2026-04-26 18:45:57 +03:00
[PR #36] [MERGED] feat: clipboard enhancements and hotkey stability improvements #57
Labels
No labels
bug
enhancement
enhancement
pull-request
question
released
released on @beta
released on @dev
released on @latest
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/winshot#57
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/mrgoonie/winshot/pull/36
Author: @Vivusk
Created: 12/11/2025
Status: ✅ Merged
Merged: 12/12/2025
Merged by: @mrgoonie
Base:
dev← Head:main📝 Commits (10+)
ab8b183Merge pull request #11 from mrgoonie/goonbfae77eMerge pull request #18 from mrgoonie/goon8b82e2cchore(release): 1.1.0 [skip ci]38e1191fix(app): restore window position after region capture03cf0fdfeat(capture): add clipboard image paste support0f1a8d1feat(capture): add multi-monitor region capture support1d683ccfix(hotkeys): resolve goroutine thread affinity causing hotkey registration failure4fbc7d6chore: update generated bindings and documentation20ad92bfeat(clipboard): auto-copy styled canvas instead of raw screenshot22da2acfeat(overlay): implement native Win32 region selection overlay📊 Changes
23 files changed (+2325 additions, -624 deletions)
View changed files
📝
.claude/active-plan(+1 -1)📝
CHANGELOG.md(+28 -0)📝
app.go(+123 -101)➕
docs-manager-251211-clipboard-capture.md(+129 -0)📝
docs/codebase-summary.md(+138 -15)📝
docs/system-architecture.md(+169 -18)📝
frontend/dist/index.html(+2 -2)📝
frontend/package.json.md5(+1 -1)📝
frontend/src/App.tsx(+149 -225)📝
frontend/src/components/capture-toolbar.tsx(+20 -2)➖
frontend/src/components/region-selector.tsx(+0 -247)📝
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/overlay/draw.go(+486 -0)➕
internal/overlay/overlay.go(+495 -0)...and 3 more files
📄 Description
Summary
Replace React-based region selector with native Win32 layered window for significantly improved performance and user experience.
Why Native Win32?
The previous React-based overlay had several issues:
Native Win32 Solution
runtime.LockOSThread()with channel-based commandsPerformance Improvements
Technical Details
New Package:
internal/overlay/types.go- Win32 constants and structuresdraw.go- GDI drawing utilities with DIB double bufferingoverlay.go- Thread-safe overlay manager with message loopChanges:
app.go- Integrated overlay manager, addedisWindowHiddenstate trackingfrontend/src/App.tsx- Simplified region handling (receives pre-cropped image)frontend/src/components/region-selector.tsxTest Plan
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.