Commit graph

25 commits

Author SHA1 Message Date
Francesca Frangipane eadd9a19b2
Replace Closed event with CloseRequested and Destroyed (#476)
* 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.
2018-04-24 16:20:40 -04:00
Jacob Kiesel cfd087d9a5 Mouse events (#344)
* Explicit mouse-related DeviceEvents

This makes the API more intuitive for common use-cases and allows us
to better propagate platform knowledge of motion semantics.

* Improve event naming consistency

* Clarify axis event forwards-compatibility

* Rename WindowEvent::MouseMoved/Entered/Left to CursorMoved/...

This emphasizes the difference between motion of the host GUI cursor,
as used for clicking on things, and raw mouse(-like) input data, as
used for first-person controls.

* Add support for windows and OSX, fix merging

* Fix warnings and errors on Linux

* Remove unnecessary breaking changes

* Add MouseWheel events to windows and OSX

* Fix bad push call.

* Fix docs, naming, and x11 events

* Remove mutability warning

* Add changelog entry
2017-11-12 21:56:57 +01:00
Victor Berger 61d25be3e0
wayland: upgrade wayland-window (#339)
* 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
2017-11-03 17:35:29 +01:00
Victor Berger c86cf416d5 wayland: add a warning in the examples in case no window is displayed. 2017-07-19 18:53:49 +02:00
mitchmindtree 04ccad1dbc Rename ControlFlow variant from Complete to Break 2017-06-20 21:25:53 +10:00
mitchmindtree db9e80bdb6 Update examples and tests to addition of ControlFlow 2017-06-08 00:12:41 +10:00
Benjamin Saunders 22bc119cd7 Richer input events
This expands input events to represent sub-pixel mouse positions, devices responsible for generating events, and raw
device-oriented events. The X11 back end is refactored to make full use of the new expressiveness. Other backends have
had new functionality minimally stubbed out, save for the macos backend which already supports sub-pixel mouse
positions.
2017-04-23 01:08:15 -07:00
Erik Rigtorp f3ccdb7aec Add keyboard modifiers to input event
Making applications track modifier keys results in unnecessary work for
consumers, it's error prone, and it turns out to have unavoidable bugs.
For example, alt-tabbing with x11 results in the alt modifier state
getting stuck.

To resolve these problems, this patch adds a Mods value to the keyboard
input event.

Based on this patch: d287fa96e3
2017-02-27 13:36:11 -06:00
Pierre Krieger b5d8d305fc Fix unreachable patterns 2017-01-28 16:21:41 +01:00
Pierre Krieger 7da96121a2 Fix examples 2017-01-28 15:45:01 +01:00
Pierre Krieger 422b332c1b Add a transition macro system 2017-01-28 15:00:17 +01:00
Pierre Krieger 289bb7bc9f Remove android_main! call 2016-11-23 19:33:44 +01:00
Andrey Lesnikov 7f6ae8910e Merge https://github.com/tomaka/glutin
Conflicts:
	.travis.yml
	Cargo.toml
	examples/fullscreen.rs
	src/api/android/mod.rs
	src/api/cocoa/headless.rs
	src/api/cocoa/helpers.rs
	src/api/cocoa/mod.rs
	src/api/glx/mod.rs
	src/api/osmesa/mod.rs
	src/api/win32/callback.rs
	src/headless.rs
	src/lib.rs
	src/platform/linux/mod.rs
	src/window.rs
2016-09-19 19:53:28 +03:00
Richard Lettich 117069ef90 Changed MouseMoved((i32, i32)) to MouseMoved(i32, i32), breaking change 2016-03-27 14:39:20 -04:00
Pierre Krieger 007ad0f911 Fix the test and the examples 2016-03-26 18:10:19 +01:00
Rengierof d2ac6cfa11 Fixed grabbing example. 2015-12-26 16:47:25 +02:00
Pierre Krieger 2b35a6c9d1 Fix the examples 2015-10-04 18:39:17 +02:00
Josh Matthews 77b3743117 Warning fixes for OS X. 2015-09-28 12:19:36 -04:00
Pierre Krieger 9261408cc8 Use modern GL code for the examples 2015-08-05 22:31:34 +02:00
Pierre Krieger 39128dd7e1 Remove the is_closed function 2015-06-16 14:03:58 +02:00
Felix Kaaman a8fef35dbf Make legacy functions crash on osx core contexts 2015-06-16 09:00:02 +02:00
Steven Sheldon 9c21758bb7 Removed unused features from build and examples. 2015-04-03 02:31:15 -07:00
Pierre Krieger bae1e42b8b More work on win32 implementation 2015-03-30 11:42:19 +02:00
Pierre Krieger 3d692870e2 Change grab_cursor and ungrab_cursor to set_cursor_state 2015-03-26 17:15:18 +01:00
Eduard Bopp 77d033d672 Add an example for (un-)grabbing the mouse cursor 2015-03-25 13:17:47 +01:00