Commit graph

1765 commits

Author SHA1 Message Date
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
Victor Berger 9aaa788434 linux: Remove dead code from wayland & fix some trivial warnings. 2017-03-04 11:26:12 +01:00
tomaka 503df767dc Merge pull request #151 from vberger/wayland_new_api
linux: Add missing Window2::id() impl
2017-03-04 11:05:51 +01:00
Victor Berger 4e75c1e668 linux: Add missing Window2::id() impl 2017-03-04 10:48:44 +01:00
tomaka 6bdc0fd824 Merge pull request #150 from vberger/wayland_new_api
Re-organize platform/linux to prepare for API transition
2017-03-04 09:22:13 +01:00
Victor Berger e6e96ab6f4 tests: don't instanciate an event loop to check EventsLoop: Send+Sync 2017-03-04 09:09:09 +01:00
Victor Berger 624a422f20 linux: move api transition boilerplate to x11/wayland submodules 2017-03-04 09:09:09 +01:00
Victor Berger 4acf437221 Move api module into platform::linux 2017-03-04 09:09:09 +01:00
tomaka d0ae5bda16 Merge pull request #148 from vberger/master
wayland: implement modifiers
2017-03-04 08:47:59 +01:00
Victor Berger 64c8f66e72 wayland: implement modifiers 2017-03-03 22:28:02 +01:00
tomaka d1e434b131 Merge pull request #149 from y-fujii/x11_hidpi_factor
implement Window::hidpi_factor() for X11.
2017-03-03 14:33:16 +01:00
Yasuhiro Fujii d72a345878 implement Window::hidpi_factor() for X11. 2017-03-03 21:25:26 +09:00
tomaka 4c6e4e827a Merge pull request #112 from rigtorp/keyboard-mods
Add keyboard modifiers to input event
2017-03-02 20:37:33 +01:00
tomaka 8d79748cfb Merge pull request #147 from sotaroikeda/upcgl
Update cgl to v0.2
2017-03-02 07:44:32 +01:00
Sotaro Ikeda 3b1df2c585 Update cgl to v0.2 2017-03-02 14:48:03 +09:00
Erik Rigtorp 290040dbd8 Implement KeyboardEvent ModifiersState for macOS 2017-02-27 13:38:47 -06:00
Erik Rigtorp 5d41067a05 Implement KeyboardEvent ModifiersState for win32 2017-02-27 13:36:15 -06:00
Erik Rigtorp a2c6fb720c Implement KeyboardEvent ModifiersState for X11 2017-02-27 13:36:15 -06: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
tomaka 449f7d9d90 Merge pull request #144 from jwilm/fix-x11-wait-event-busy-loop
Fix busy loop in X11 WaitEventsIterator
2017-02-15 19:18:12 +01:00