1
0
Fork 0
Commit graph

409 commits

Author SHA1 Message Date
Joakim Frostegård 1c0490f9ec Upgrade to raw-window-handle 0.5, impl HasRawDisplayHandle for macOS 2023-09-30 17:00:08 +02:00
Jussi Viiri 8270260382 Working drag and drop for Mac OS 2023-06-20 17:30:30 +03:00
Jussi Viiri 1921d477ff Start implementing drag and drop for Mac 2023-06-19 19:11:39 +03:00
Micah Johnston 1d9806d5bd
Merge pull request #148 from ilmai/drag-and-drop
Drag and drop
2023-06-18 13:01:57 -05:00
Jussi Viiri 9887737d8d Add comment about why we need to transmute
IDropTargetVtbl members
2023-06-18 20:40:17 +03:00
Jussi Viiri cfa06f5b59 Move DropTarget to its own module 2023-06-10 23:20:46 +03:00
Jussi Viiri b33398703f Walk back the previous restructuring a bit
We were leaking the DropTarget, so WindowState holds a reference to DropTarget again, so it can be dropped when the window is destroyed. Also, DropTarget now holds a Weak reference to WindowState and that's taken into account in callbacks.
2023-06-10 23:07:11 +03:00
Jussi Viiri 9028321012 Call RevokeDragDrop() before dropping WindowState 2023-06-10 23:02:25 +03:00
Jussi Viiri 481bf73293 Clean up ownership around WindowState and DropTarget
- WindowState no longer holds a reference to DropTarget
- DropTarget is passed to RegisterDragDrop() with Rc::into_raw() instead of Rc::as_ptr() so it keeps the reference
- WindowState is created with Rc instead of Box so DropTarget can hold a Rc to it
2023-06-10 22:47:22 +03:00
Jussi Viiri eb3a02115a Change how DragTarget functions parse coordinates
Instead of working around the winapi bug by manually parsing the pointer we're (incorrectly) given, use the correct function signature and transmute the function pointer
2023-06-10 22:21:37 +03:00
Jussi Viiri 2019efde65 Use Rc instead of Arc for DropTarget 2023-06-10 22:01:23 +03:00
Jussi Viiri 4f0a71736c Remove unnecessary transmute 2023-06-10 21:58:31 +03:00
Jussi Viiri e47f25facd DropTargetVtbl instance is const now 2023-06-10 21:52:44 +03:00
Jussi Viiri 92d7560f4b Document EventStatus::AcceptDrop 2023-06-05 22:24:29 +03:00
Jussi Viiri ab673fe534 Comment cleanup 2023-06-05 22:20:07 +03:00
Jussi Viiri fe03957514 Add keyboard modifiers to drag events
Remove fields from DragLeft
2023-06-05 21:00:19 +03:00
Jussi Viiri e9a1460a5b Use Point for drag coordinates like other mouse events 2023-06-05 20:53:25 +03:00
Jussi Viiri 1a8484bc55 Add coordinates to drag events 2023-06-05 20:48:06 +03:00
Jussi Viiri 1c50c326cb Add drop data to all drag events
Add DragData::None instead of using Option<DragData>
2023-06-05 20:25:27 +03:00
Jussi Viiri b5f3939930 Parse drop data
Only handling files for now
2023-06-04 23:43:10 +03:00
Jussi Viiri ef64cae538 Delete some unused lines committed by accident 2023-06-04 21:40:45 +03:00
Jussi Viiri f5840bc65b Refactor away duplicated code 2023-06-04 21:39:59 +03:00
Jussi Viiri d8ffd4abc6 Drop effect is now set based on EventStatus 2023-06-03 22:50:39 +03:00
Jussi Viiri 0eff674319 Janky first version of drag and drop
Just recognized as a drop target
2023-05-31 22:43:30 +03:00
Micah Johnston c129b12ead
Merge pull request #139 from wtholliday/macos-clipboard
Macos clipboard
2023-02-23 12:09:17 -06:00
Taylor Holliday dbda356826 Use &str instead of String. 2023-02-22 10:14:54 -08:00
Taylor Holliday 2b70a08e14 Add stubs for copy_to_clipboard. 2023-02-21 17:09:17 -08:00
Taylor Holliday 9b1c3785c8 Linux build 2023-02-21 16:29:38 -08:00
Taylor Holliday 775d15df38 Simplify and use copy_to_clipboard. 2023-02-21 15:45:11 -08:00
Taylor Holliday 0675273801 Formatting 2023-02-21 15:26:22 -08:00
Taylor Holliday ffdc278e97 Add copy_to_clipboard. 2023-02-21 15:22:52 -08:00
Micah Johnston 7001c2521f
Merge pull request #136 from robbert-vdh/feature/resize
Support resizing windows after creation
2023-01-01 17:18:12 -06:00
Robbert van der Helm 425ee7ac35 Add missing AdjustWindowRectEx() for resize 2023-01-02 00:09:25 +01:00
Robbert van der Helm be5238ec46 Replace Rcs by reference to entire WindowState
This removes the need to pass through individual Rcs at the cost of
adding more lifetime parameters to the internals of the shared `Window`
struct and requiring an `Option` for the handler.
2023-01-01 23:41:41 +01:00
Robbert van der Helm c10ca6b40f Clean up the Windows WindowState
This would leak before this change.
2023-01-01 23:05:34 +01:00
Robbert van der Helm 8e3e078220 Fix Clippy lints in macOS backend 2023-01-01 22:38:57 +01:00
Robbert van der Helm 39e97ab2be Fix Clippy lints in Windows backend 2023-01-01 22:38:49 +01:00
Robbert van der Helm 96c0401865 Replace AtomicBool with Cell<bool>
https://github.com/RustAudio/baseview/pull/136#discussion_r1059198419
2023-01-01 22:35:23 +01:00
Robbert van der Helm 512c3f2393 Set macOS window size using setContentSize
I somehow completely missed this the first five times I looked through
the docs.
2022-12-16 23:20:56 +01:00
Robbert van der Helm d7a8c52d23 Round size before resizing on macOS
Otherwise the top row of pixels may contain flickering artifacts.
2022-12-02 20:17:11 +01:00
Robbert van der Helm bc2b2bd458 Factor in decorations when resizing macOS window
Apparently macOS doesn't do this for you. If you don't do this then
parts of the bottom and right of the window will be cut off.
2022-12-02 20:17:11 +01:00
Robbert van der Helm c7b61fa39b Also resize the OpenGL view on macOS
This fixes resizing with OpenGL applications.
2022-12-02 20:17:11 +01:00
Robbert van der Helm e0c79c58fb Implement window resizing for macOS
Now this works on all baseview platforms.
2022-12-02 20:17:11 +01:00
Robbert van der Helm 80fb0a00b8 Only send resize event on macOS on actual change
To follow the same behavior as on Linux and Windows.
2022-12-02 20:17:11 +01:00
Robbert van der Helm 537c303ee5 Only send resize event on Windows on actual change
To be in line with the Linux implementation.
2022-12-02 20:17:11 +01:00
Robbert van der Helm 5a1bb0f4d8 Ensure WindowEvent::Resized fires for Linux resize 2022-12-02 20:17:11 +01:00
Robbert van der Helm 80b30ce617 Implement window resizing for Windows 2022-12-02 20:17:11 +01:00
Robbert van der Helm b8a5867436 Replace uses of Arc with Rc in Windows impl
Everything is single threaded so there's no need to use Arcs.
2022-11-30 20:03:12 +01:00
Robbert van der Helm c5867b6af6 Use interior mutability for Windows WindowState
This is a prerequisite for being able to handle reentrant messages.
2022-11-30 20:03:12 +01:00
Robbert van der Helm 3dfff613b9 Use physical sizes in X11 window resize
And update the window info for any future events.
2022-11-30 20:03:12 +01:00