Added pasting new memes, fixed offsets and changed out tray icon.
This commit is contained in:
@@ -26,7 +26,7 @@ Everything below is **implemented and verified working by actually running the a
|
||||
- Tray icon with menu: **Open / Settings / Exit**
|
||||
- Popup picker: search box, thumbnail grid, drag-to-move via top handle strip,
|
||||
Esc / click-away to dismiss, positions near cursor clamped to the current monitor
|
||||
- Add memes: `+` button (file dialog), drag-and-drop onto picker, jpg/png/gif
|
||||
- Add memes: `+` button (file dialog), drag-and-drop onto picker, **Ctrl+V paste**, jpg/png/gif
|
||||
- Search filters by filename (case-insensitive substring)
|
||||
- Right-click a tile → **Remove** (deletes to Recycle Bin, recoverable — verified)
|
||||
- Multi-format clipboard write (see "Clipboard formats" below)
|
||||
@@ -160,6 +160,15 @@ code-behind fields. Look elements up by `Tag`/traversal instead.
|
||||
| `"PNG"` (registered format) | **Chromium-based apps (Teams, Slack, Discord, browsers) prefer this over CF_DIB** and may paste nothing at all without it. **Deliberately omitted for GIFs** — see below |
|
||||
| `CF_HTML` | The other route web-based compose boxes check; carries a base64 `data:` URI |
|
||||
|
||||
**Reading the clipboard (Ctrl+V to import) uses the same knowledge in reverse.**
|
||||
`ClipboardService.TryReadImage()` checks formats in descending fidelity order: FileDrop →
|
||||
CF_HTML `data:` URI → `"PNG"` → CF_DIB bitmap. The order is not cosmetic: a GIF is only
|
||||
still animated in the first two, so a naive implementation that reached for the bitmap
|
||||
first would silently flatten every pasted GIF. Verified byte-identical (SHA-256) import for
|
||||
a pasted GIF file. Ctrl+V is handled in `PickerWindow.OnPreviewKeyDown` and only swallows
|
||||
the keystroke when an image is actually present — plain text still pastes into the search
|
||||
box as normal.
|
||||
|
||||
**The `"PNG"` format is skipped for GIFs on purpose.** A PNG can only hold one static frame,
|
||||
and since Chromium *prefers* that format over all others, offering it for a GIF is exactly
|
||||
what made animated GIFs paste as a still first frame. Omitting it lets those targets fall
|
||||
|
||||
Reference in New Issue
Block a user