* Initial implementation
* Corrected RAWINPUT buffer sizing
* Mostly complete XInput implementation
* XInput triggers
* Add preliminary CHANGELOG entry.
* match unix common API to evl 2.0
* wayland: eventloop2.0
* make EventLoopProxy require T: 'static
* Revamp device event API, as well as several misc. fixes on Windows:
* When you have multiple windows, you no longer receive duplicate device
events
* Mouse Device Events now send X-button input
* Mouse Device Events now send horizontal scroll wheel input
* Add MouseEvent documentation and Device ID debug passthrough
* Improve type safety on get_raw_input_data
* Remove button_id field from MouseEvent::Button in favor of utton
* Remove regex dependency on Windows
* Remove axis filtering in XInput
* Make gamepads not use lazy_static
* Publicly expose gamepad rumble
* Unstack DeviceEvent and fix examples/tests
* Add HANDLE retrieval method to DeviceExtWindows
* Add distinction between non-joystick axes and joystick axes.
This helps with properly calculating the deadzone for controller
joysticks. One potential issue is that the `Stick` variant isn't used
for *all* joysticks, which could be potentially confusing - for example,
raw input joysticks will never use the `Stick` variant because we don't
understand the semantic meaning of raw input joystick axes.
* Add ability to get gamepad port
* Fix xinput controller hot swapping
* Add functions for enumerating attached devices
* Clamp input to [0.0, 1.0] on gamepad rumble
* Expose gamepad rumble errors
* Add method to check if device is still connected
* Add docs
* Rename AxisHint and ButtonHint to GamepadAxis and GamepadButton
* Add CHANGELOG entry
* Update CHANGELOG.md
* Add HidId and MovedAbsolute
* Fix xinput deprecation warnings
* Add ability to retrieve gamepad battery level
* Fix weird imports in gamepad example
* Update CHANGELOG.md
* Resolve francesca64 comments
* Format everything and add rustfmt to travis
* Remove extern crate winit from examples and add force_multiline_blocks
* Format the code properly
* Fix inconsistent period in PULL_REQUEST_TEMPLATE.md
* Only run rustfmt on nightly
* Travis fixings
* Rename EventsLoop and associated types to EventLoop
* Rename WindowEvent::Refresh to WindowEvent::Redraw
* Remove second thread from win32 backend
* Update run_forever to hijack thread
* Replace windows Mutex with parking_lot Mutex
* Implement new ControlFlow and associated events
* Add StartCause::Init support, timer example
* Add ability to send custom user events
* Fully invert windows control flow so win32 calls into winit's callback
* Add request_redraw
* Rename platform to platform_impl
* Rename os to platform, add Ext trait postfixes
* Add platform::desktop module with EventLoopExt::run_return
* Re-organize into module structure
* Improve documentation
* Small changes to examples
* Improve docs for run and run_return
* Change instances of "events_loop" to "event_loop"
* Rename MonitorId to MonitorHandle
* Add CHANGELOG entry
* Improve WaitUntil timer precision
* When SendEvent is called during event closure, buffer events
* Fix resize lag when waiting in some situations
* Update send test and errors that broke some examples/APIs
* Improve clarity/fix typos in docs
* Fix unreachable panic after setting ControlFlow to Poll during some RedrawRequested events.
* Fix crash when running in release mode
* Remove crossbeam dependency and make drop events work again
* Remove serde implementations from ControlFlow
* Fix 1.24.1 build
* Fix freeze when setting decorations
* Replace &EventLoop in callback with &EventLoopWindowTarget
* Document and implement Debug for EventLoopWindowTarget
* Fix some deadlocks that could occur when changing window state
* Fix thread executor not executing closure when called from non-loop thread
* Fix buffered events not getting dispatched
* Fix crash with runner refcell not getting dropped
* Address review feedback
* Fix CHANGELOG typo
* Catch panics in user callback
* Replace Closed event with CloseRequested and Destroyed
Implements #434
The existing Closed event had ambiguous meaning, both in name and in
cross-platform behavior. Closed is now split into two more precise events:
* CloseRequested - the window has been requested to close, most commonly by
having clicked the window's close button. Whether or not you respond by
closing the window is up to you.
* Destroyed - the window has been destroyed, and can no longer be safely
used.
Most notably, now you can reliably implement classic patterns like
prompting the user to save their work before closing, and have the
opportunity to perform any necessary cleanup.
Migrating to the new API is straightforward. In most cases, you can simply
replace all existing usages of Closed with CloseRequested. For more
information, see the example programs, particularly handling_close and
multiwindow.
iOS applications must replace all usages of Closed with Destroyed, and
require no other changes.
* wayland: upgrade wayland-window
This new version of wayland window considerably simplifies the
window handling for winit, meaning much of the previous juggling
is no longer needed, and the windows will appear even if nothing is
drawn.
* wayland: cleanup unused stuff