Commit graph

1782 commits

Author SHA1 Message Date
mitchmindtree
ba71f6fb77 Add missing unsafe block to check for main thread macOS 2017-02-05 19:53:13 +11:00
mitchmindtree
926e03039f Panic if the user attempts to create window on non-main thread 2017-02-05 19:47:39 +11:00
mitchmindtree
b62ecfd517 Fix comments on macOS backend UserCallback methods 2017-02-05 19:37:00 +11:00
mitchmindtree
30e00f0454 Fix comment on event conversion special case 2017-02-05 19:21:51 +11:00
mitchmindtree
06c1b5903b Fix bug where an NSEvent is produced when a user opens spotlight while
the NSApplication is in focus.

This NSEvent produces an undocumented NSEventType value `21` that has no
associated variant within the cocoa-rs crate's `NSEventType` enum, thus
causing a segfault when attemptingt to match on the value.

This commit adds a check for `21` to avoid the segfault.

This fixes #104.
2017-02-05 19:01:27 +11:00
mitchmindtree
cbadc4bc31 Fix issue where window would not focus on startup.
Fix issue where key window would lose all mouse events once mouse left
that window.

Make sure that only window under mouse receives mouse scroll wheel
events.
2017-02-05 18:12:32 +11:00
mitchmindtree
3482c53c89 Rename old glutin ivar to winit 2017-02-05 13:28:56 +11:00
mitchmindtree
3ce7904e01 Wrap the temporarily stored user callback in a type to enforce
invariants

This also removes the need for "box"ing the callback in favour of
storing a raw `*mut` pointer. We can do this by ensuring that we never
store the pointer for longer than the lifetime of the user callback,
which is the duration of a call to `poll_events` or `run_forever`.

Also removes old commented out event code from the window module.
2017-02-05 12:51:09 +11:00
mitchmindtree
c03311fa2d Add a method to simplify emitting an event from the macos poll_events and run_forever methods 2017-02-04 13:30:34 +11:00
mitchmindtree
fd0ddee63c Panic if the user attempts to run an event loop on a non-main thread on macOS 2017-02-04 02:55:42 +11:00
mitchmindtree
ea19409960 Make sure EventsLoop::interrupt awakens the waiting event loop 2017-02-04 02:54:40 +11:00
mitchmindtree
35dcf8dab9 Only return Awakened on NsApplicationActivated, rather than on every unknown event. 2017-02-04 00:51:38 +11:00
mitchmindtree
be09639b69 Update the macOS backend to the new futures-compatible API.
This is a follow up to the new API introduced in #20.

This also fixes the issue where window resize events would not be
emitted until the end of the resize. This PR fixese #39 by ensuring that
the user callback given to either `EventsLoop::poll_events` or
`EventsLoop::run_forever` can be called by each window delegate's resize
callback directly.
2017-02-03 23:05:57 +11:00
Pierre Krieger
885b927d23 Merge remote-tracking branch 'origin/master' into impl-20 2017-02-03 09:14:24 +01:00
Pierre Krieger
b988c174fe Add WindowId type 2017-02-03 09:13:11 +01:00
tomaka
ae53bb0f14 Merge pull request #102 from cjhowe/master
iOS Support
2017-02-03 09:09:02 +01:00
Pierre Krieger
9cd0430ec7 Remove stuff from Window's API 2017-02-03 06:48:58 +01:00
Pierre Krieger
5025db2d59 Unix fix attempt 2017-01-28 16:09:22 +01:00
Pierre Krieger
148f507272 Wayland fix attempt 2017-01-28 15:56:53 +01:00
Pierre Krieger
c3d2289b0c Remove resize_callback from WindowsAttributes 2017-01-28 15:34:15 +01:00
Pierre Krieger
bcb242983b Add documentation for the new API 2017-01-28 15:33:54 +01:00
Pierre Krieger
d86fdb48d1 Remove the window from the events loop on destruction 2017-01-28 15:14:23 +01:00
Pierre Krieger
0242daa242 Add interrupting the events loop 2017-01-28 15:09:01 +01:00
Pierre Krieger
e7d43174e7 Implement the transition API 2017-01-28 15:05:36 +01:00
Pierre Krieger
422b332c1b Add a transition macro system 2017-01-28 15:00:17 +01:00
tomaka
f1d70d351e Merge pull request #82 from tomaka/documentation
Some documentation improvements
2017-01-28 13:31:36 +01:00
Pierre Krieger
8277b26862 No longer use an api_dispatch module for linux 2017-01-28 13:14:20 +01:00
tomaka
6738f7cc2e Merge pull request #118 from ojacobson/macos-window-resize
Naive implementation of resize events for OS X.
2017-01-25 07:58:08 +01:00
Owen Jacobson
6f82ccfba9
De-duplicate resize events.
This tracks resizes separately, and synthesizes them for the event iterators as needed, so that OS X apps don't generate a whole set of resize events after each resize.
2017-01-24 13:46:46 -05:00
Pavel Potocek
bf1585b819 Use a hand pointing a finger in X11 as MouseCursor::Hand 2017-01-24 15:35:38 +01:00
Owen Jacobson
7d6b4c3fe5
Naive implementation of resize events for OS X.
These events are batched, and delievered en masse at the end of the resize. This isn't a great developer experience (and it should probably be called out in the docs), but it makes it possible for winit client applications to detect and respond to resizes without special-casing Mac OS targets.

See #39. This is only a partial fix, and does not provide on-the-fly resize events.
2017-01-24 00:13:45 -05:00
mitchmindtree
95b7d5326e Fix patterns_in_fns_without_body warning on macos 2017-01-22 17:55:30 +11:00
mitchmindtree
9b15440b62 Fix non_upper_case_globals warnings on macos 2017-01-22 17:54:45 +11:00
tomaka
41ac24b107 Merge pull request #113 from samdphillips/mac-middle-mouse-button
Add middle mouse button events for MacOS.
2017-01-19 20:45:51 +01:00
Jeff Muizelaar
3b1fdc0f55 macos: Map our user generated event to Event::Awakened
This fixes propagation of Event::Awakend from wakeup_event_loop() when
using poll_event() on macOS.

Currently wait_event() translates all unknown events into
Event::Awakened so doesn't need the explicit translation.
2017-01-19 14:17:55 -05:00
Sam Phillips
55e52d6071 Add middle mouse events for MacOS. 2017-01-17 19:47:36 -08:00
rerion
941c8d3344 Add TODO & bump version 2017-01-07 15:00:15 +01:00
rerion
f5812018ca Add get_x11_xconnection function 2017-01-07 14:34:38 +01:00
rerion
d4b8fd9f5a Add methods allowing creation of X11 window with specified visual and screen 2017-01-06 22:46:41 +01:00
Christian Howe
ba94b8edf8 Fix Travis iOS build 2016-12-15 21:34:37 -06:00
Christian Howe
5146bce88e Fix iOS build and add to Travis CI 2016-12-13 07:29:17 -06:00
tomaka
3b93c7c664 Merge pull request #95 from frewsxcv/transparent
Implement window transparency on macOS.
2016-12-04 07:59:51 +01:00
Corey Farwell
cb0811faf3 Implement window transparency on macOS.
Fixes https://github.com/tomaka/winit/issues/57.
2016-11-30 14:36:51 -05:00
k-brac
7f2ee9a09a remove useless pub 2016-11-29 14:02:19 +01:00
k-brac
3e2154a922 child window created using a winapi::HWND instead of a WindowProxy 2016-11-29 13:02:42 +01:00
k-brac
2b25bf1480 child window creation improvement 2016-11-28 13:50:07 +01:00
k-brac
5a09e8ba21 first try to allow child window on windows 2016-11-25 17:05:39 +01:00
Corey Farwell
57d1e162ee Update min/max window constraints to support MacOS 10.10. 2016-11-23 10:50:12 -05:00
Corey Farwell
e3fce3d5ec Implement min/max window dimension constraints for MacOS.
Fixes https://github.com/tomaka/winit/issues/80.
2016-11-23 09:31:41 -05:00
mitchmindtree
53065bda40 Move resize_callback field from WindowBuilder into WindowAttributes struct 2016-11-12 02:55:21 +11:00