Commit graph

2434 commits

Author SHA1 Message Date
tomaka
a17f7328c9 Merge pull request #186 from LPGhatguy/patch-2
Update README example to use EventsLoop
2017-05-22 09:00:27 +02:00
Lucien Greathouse
b8c6afb96a Update README example to use EventsLoop 2017-05-21 22:03:22 -07:00
Lucien Greathouse
622b3b248e Update 'winit' dependency in README
It now matches the current release line, 0.6.x
2017-05-21 21:41:06 -07:00
tomaka
4a50fa6c44 Merge pull request #181 from vberger/master
wayland: Fix deadlock in poll_events
2017-05-14 17:09:21 +02:00
Victor Berger
c2c27c1b37 wayland: Fix deadlock in poll_events 2017-05-14 15:28:27 +02:00
tomaka
c33bedce5e Merge pull request #178 from jwilm/fix-x11-poll-events
Fix poll_events on x11 not draining completely
2017-05-12 09:10:25 +02:00
tomaka
ce8682be2e Merge pull request #179 from jwilm/clone-winit-eventsloop
Derive Clone on winit::EventsLoop wrapper
2017-05-12 09:09:57 +02:00
Joe Wilm
55b5054d50 Derive Clone on winit::EventsLoop wrapper
Resolves #177.
2017-05-11 23:04:28 -07:00
Joe Wilm
4ec5078bdb Fix poll_events on x11 not draining completely
If the interrupted flag were set going into poll_events, it would only
ever handle the first event in the queue. Now, the flag is reset at the
start so events are processed until the caller requests otherwise.
2017-05-11 23:00:22 -07:00
tomaka
ad8d2b0470 Merge pull request #176 from vanderlokken/vanderlokken-fix
Fixed some obsolete comments and strings
2017-05-11 11:58:16 +02:00
vanderlokken
f034017ab2 FIxed obsolete strings 2017-05-11 03:14:38 +03:00
vanderlokken
5645941a14 Fixed obsolete comments 2017-05-11 03:10:07 +03:00
tomaka
4f2515f91e Merge pull request #174 from jwilm/x11-fixes
X11 fixes
2017-05-10 16:44:46 +02:00
Joe Wilm
46057d7122 Remove unnecessary locking
For X11 interrupt, we can just use the root window which doesn't require
taking a lock to find.
2017-05-09 21:30:31 -07:00
Joe Wilm
6c5bc52a5f Bump Cargo.toml version to match crates.io
This makes is possible for consumers to use cargo [replace] with the
latest Glutin.
2017-05-09 09:55:10 -07:00
Joe Wilm
f3db0ba641 Fix x11 interrupt to actually wake event loop
This is the same behavior as with WindowProxy::wakeup_event_loop in
previous versions.

Unfortunately, `EventsLoop::interrupt` is also the recommend way to exit
a `run_forever` loop from within the event handler callback. Pushing an
extra event on the queue in that case is simply wasteful. Changing this
would require a refactor taking one of two possible forms:

1. Add a method *in addition* to interrupt intended for waking up the
   event loop
2. Add a return type to the event callback like

    enum Continue { True, False }

   which would be used in lieu of the atomic interrupt flag.
2017-05-09 09:51:00 -07:00
Joe Wilm
8288d419fd Remove unnecessary mut 2017-05-09 09:50:16 -07:00
Joe Wilm
c92ac695af Fix x11 poll_events to drain queue
It was only processing a single event per call. The docs say

> Fetches all the events that are pending, calls the callback function
> for each of them, and returns.

which suggests that was incorrect.
2017-05-09 09:20:35 -07:00
tomaka
8f9f2352cf Merge pull request #173 from jwilm/consistent-event-order-key-char
Make keyboard input event order consistent
2017-05-08 11:15:09 +02:00
Joe Wilm
0b75a6b60c Make keyboard input event order consistent
All platforms should now receive events in the following order:

1. KeyboardInput(ElementState::Pressed, ..)
2. ReceivedCharacter
3. KeyboardInput(ElementState::Released, ..)

cc https://github.com/tomaka/glutin/issues/878
2017-05-07 21:16:48 -07:00
tomaka
15aafc2908 Merge pull request #164 from Ralith/rich-input
Richer input events
2017-05-07 08:35:03 +02:00
tomaka
689d0521f5 Merge pull request #168 from jonhoo/set_class_before_map
Set WM_CLASS and WM_NAME before mapping window
2017-05-05 07:40:41 +02:00
Jon Gjengset
4087627b12
Set WM_CLASS and WM_NAME before mapping window
ICCCM 4.1.2.5 (https://tronche.com/gui/x/icccm/sec-4.html#WM_CLASS)
states that:

> This property must be present when the window leaves the Withdrawn
> state and may be changed only while the window is in the Withdrawn
> state.

Previously, we would first map the window, and then set these
properties, causing sadness for window managers (#167,
tomaka/glutin#879). This patch changes that by setting the class and
name attributes immediately after the window is created, and before it
is mapped.

Fixes #167.
2017-05-04 17:37:24 -04:00
tomaka
6c99546035 Merge pull request #161 from torkleyy/repr
Set #[repr] of VirtualKeyCode to u32
2017-04-26 08:52:24 +02:00
torkleyy
c4cdb9aa5c Set repr of VirtualKeyCode to u32
This allows to have an array of bools for the key states.
2017-04-26 07:53:20 +02: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
mitchmindtree
544ee13bf3 Merge pull request #160 from mitchmindtree/publish
Publish 0.6.3 with recent non-breaking macOS fixes
2017-03-25 15:39:32 +11:00
mitchmindtree
517bb3692b Try and use regular rustup command for adding ios target 2017-03-25 15:32:44 +11:00
mitchmindtree
2179d49656 Try fix travis by switching install script to use rustup.rs
travis-ci/travis-build#993 recently switched rust builds to use
rustup.rs instead of rustup.sh.
2017-03-25 15:18:12 +11:00
mitchmindtree
9363ee20f3 Publish 0.6.3 with recent non-breaking macOS fixes 2017-03-25 14:51:58 +11:00
mitchmindtree
ef57b4bda0 Merge pull request #157 from mitchmindtree/macos_fixes
Several fixes for the macOS backend
2017-03-22 21:56:32 +11:00
mitchmindtree
cccc48b84d [macos] Emit a resize event when Window changes screens 2017-03-19 20:30:54 +11:00
mitchmindtree
4656540417 Close NSWindow when Window is dropped if not already closed.
Previously, if a `Window` was `Drop`ped while open, the window would
remain open until the user pressed the x button. This fixes the
behaviour so that the window is closed when dropped if it has not
already been closed.
2017-03-19 19:32:24 +11:00
mitchmindtree
27bd796c2a [macos] Remove Window from EventsLoop's Window list on close and drop
Previously, a Window was only removed from the list when dropped.
2017-03-19 19:20:38 +11:00
mitchmindtree
41e7572147 [macos] Avoid panic when callback is None.
This can happen when window is destroyed/created during a call to user
callback as this causes WindowDelegate method to be called.

Instead if the user callback is `None` store the event in
`pending_events`.
2017-03-19 19:09:20 +11:00
mitchmindtree
4b39f81621 Avoid leaking Windows by storing Weak pointers in EventsLoop 2017-03-19 18:19:24 +11:00
tomaka
c6968782b1 Merge pull request #156 from vberger/master
Readd pub import erroneously removed
2017-03-15 10:29:46 +01:00
Victor Berger
08254e68fb Readd pub import erroneously removed 2017-03-15 10:11:43 +01:00
tomaka
65034f2edf Merge pull request #155 from vberger/master
wayland: Update to wayland 0.8.6
2017-03-13 21:06:35 +01:00
Victor Berger
50f38e2f76 wayland: Update to wayland 0.8.6 2017-03-13 19:18:49 +01:00
tomaka
2e82cac69a Merge pull request #154 from vberger/wayland_new_api
Port wayland to the new API
2017-03-11 09:04:09 +01:00
Victor Berger
d3356763dc wayland: add some comments 2017-03-10 23:56:31 +01:00
Victor Berger
3ff9eb08e8 wayland: cleanup signal to prune dead windows 2017-03-10 23:40:31 +01:00
Victor Berger
17fde48ed7 wayland: move input logic to the event loop 2017-03-10 23:22:59 +01:00
tomaka
6850a2f76f Merge pull request #153 from MortimerGoro/android_events
Implement android events and wake event loop
2017-03-06 15:03:34 +01:00
Imanol Fernandez
f961bdd668 Implement android events and wake event loop. 2017-03-06 14:39:42 +01:00
tomaka
aa9678454d Merge pull request #152 from mystal/fix_decorations
Support removing window decorations in x11 and macOS
2017-03-06 10:47:08 +01:00
Gabriel Martinez
deeda59689 Clean up macOS window style logic
* Remove NSTitledWindowMask for windows with no decorations. This
makes sure that they do not have a title bar.
* Transparency is not be taken into account as we could have a window
with a titlebar or without that is transparent.
2017-03-05 14:50:39 -08:00
Gabriel Martinez
0b530b026d Support disabling window decorations in X11
This uses the incredibly old and ugly _MOTIF_WM_HINTS property:
http://stackoverflow.com/questions/5134297/xlib-how-does-this-removing-window-decoration-work

Using _NET_WM_WINDOW_TYPE from the Extended Window Manager Hints spec
(https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html)
would be preferred, but it requires knowing up front what the user
intends their window to be. _MOTIF_WM_HINTS should work for now.
2017-03-05 09:42:24 -08:00
Victor Berger
7336cacf07 wayland: mugrate to new API 2017-03-04 14:04:01 +01:00