Commit graph

101 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
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
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
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
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
Victor Berger 4e75c1e668 linux: Add missing Window2::id() impl 2017-03-04 10:48:44 +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
Pierre Krieger 422b332c1b Add a transition macro system 2017-01-28 15:00:17 +01:00
Pierre Krieger 8277b26862 No longer use an api_dispatch module for linux 2017-01-28 13:14:20 +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
Victor Berger f371621dd9 linux: remove outdate comment 2016-11-03 22:48:58 +01:00
Victor Berger a505eddf29 wayland: bases of backend and output handling 2016-10-09 16:08:10 +02:00
Victor Berger c991172a28 wayland: remove old code for new backend 2016-10-09 16:08:10 +02: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
Jan Segre e0f36b80c9 Make WindowBuilder and HeadlessRendererBuilder derive Clone. 2016-05-23 03:17:31 -03:00
Pierre Krieger d216d6b052 Merge remote-tracking branch 'glutin/master' into merge-glutin
Conflicts:
	Cargo.toml
	build.rs
	src/api/caca/mod.rs
	src/api/cocoa/mod.rs
	src/api/egl/ffi.rs
	src/api/egl/mod.rs
	src/api/glx/mod.rs
	src/api/osmesa/mod.rs
2016-03-26 17:55:03 +01:00
Kirill Zdornyy 74a28adba2 Fix this_platform_is_not_supported on OpenBSD.
I followed the steps of @mneumann.
2016-03-01 18:06:13 -08:00
Pierre Krieger 16f76b2407 Make it compile on Linux 2016-02-27 13:59:11 +01:00
Pierre Krieger ec76d991ad Unlocks platform-specific attributes 2016-02-10 17:39:35 +01:00
Mátyás Mustoha 11bbca7ca7 Replace i8 with libc::c_char 2016-01-26 12:44:34 +01:00
Pierre Krieger 82f5cd8272 Add better X error handling 2015-12-30 14:58:07 +01:00
Victor Berger 83e2924ac2 api/wayland: activate the backend 2015-12-22 14:36:42 +01:00
Emilio Cobos Álvarez a69ded9c8a x11: Improve xlib error reporting 2015-12-15 13:56:35 +01:00
Pierre Krieger 37262fb228 Remove public exports of gl_common and libc 2015-11-09 08:46:52 +01:00
Pierre Krieger 7a625ef3d8 Remove the window feature entirely 2015-10-03 10:33:37 +02:00
Pierre Krieger 86fa1b58e5 Rename MonitorID -> MonitorId 2015-09-24 09:11:59 +02:00
Pierre Krieger aa9cb99929 Add #[inline] attributes 2015-09-23 13:11:47 +02:00
Pierre Krieger 62bafe2130 Remove BuilderAttribs 2015-09-21 14:03:05 +02:00
Pierre Krieger 5182023fd6 Switch X11 and wayland to the new design 2015-09-21 12:04:33 +02:00
Pierre Krieger b9a4f5fbe9 Err when a X connection cannot be created instead of panicking 2015-09-20 08:42:32 +02:00
Michael Neumann b707959c2c Make it work on DragonFly/FreeBSD
Tested on DragonFly BSD. Should work similarily on FreeBSD.
2015-08-30 13:52:09 +02:00
Pierre Krieger baf9b92d3f Correct window creation on X11 2015-07-19 13:53:40 +02:00
tomaka 7773996d7b Merge pull request #488 from tomaka/rem-is-closed
Remove the is_closed function
2015-06-17 07:36:16 +02:00
Pierre Krieger 39128dd7e1 Remove the is_closed function 2015-06-16 14:03:58 +02:00
Pierre Krieger f6c26ec593 Handle errors from MakeCurrent and SwapBuffers 2015-06-16 10:44:44 +02:00
Pierre Krieger 3376332a85 Rework the X implementation to use only one X connection 2015-05-17 19:33:07 +02:00
Victor Berger 1dc2cb27cf Do the linux backend choice only once at startup. 2015-05-13 17:31:34 +02:00
Victor Berger 9a144a6869 Disable Wayland backend.
It is not ready for production yet.
2015-05-12 22:49:29 +02:00
Victor Berger 310b44f35b Make platform::linux generic over X11 and Wayland. 2015-05-12 22:49:03 +02:00
Pierre Krieger ace4808fac Remove the "headless" feature 2015-05-04 07:48:42 +02:00
Pierre Krieger a72e06cf1b Reorganize the Linux implementation and split OSMesa and X11 2015-04-24 15:40:17 +02:00
Pierre Krieger 3ad7f9a584 Create reorganization 2015-04-24 09:51:23 +02:00