Victor Berger
05cd9f2114
Merge pull request #199 from alexheretic/xwayland-env-var
...
Add a `WINIT_UNIX_BACKEND` environment variable to all the user to control the choice of x11/wayland backend.
2017-06-25 10:40:05 +02:00
Determinant
5e5debc48f
increase the buffer size; proper IC focus/unfocus
2017-06-23 14:27:48 -04:00
Victor Berger
e915454a9d
linux: update wayland dependencies
2017-06-23 20:25:06 +02:00
Alex Butler
3a89843767
Add WINIT_UNIX_BACKEND
documentation
2017-06-21 20:10:23 +01:00
Alex Butler
eaa92a4282
Improve unix backend env var docs
2017-06-21 19:59:56 +01:00
Alex Butler
789598fa84
Rename unix backend env var
...
Rename inline with stricter behaviour
Add docs explaining behaviour
2017-06-21 19:54:21 +01:00
Alex Butler
7a19ef1907
Make usage of env vars strict
...
Using `BACKEND_PREFERENCE_ENV_VAR=$backend` will no longer fallback on
any other backend
2017-06-21 19:41:26 +01:00
Alex Butler
9804cad7dd
Allow usage of XWayland
...
Will prefer X11 over wayland when the environment variable
`WINIT_PREFER_UNIX_BACKEND=x11` is set.
2017-06-21 18:34:16 +01:00
mitchmindtree
04ccad1dbc
Rename ControlFlow variant from Complete to Break
2017-06-20 21:25:53 +10:00
mitchmindtree
df1276d72a
Fix x11 EventsLoopProxy::wakeup implementation using a dummy, InputOnly window
2017-06-17 22:59:56 +10:00
mitchmindtree
4b42af910b
Make x11 backend take &mut self in poll_events method
2017-06-09 22:55:48 +10:00
mitchmindtree
f2dd2f0752
WIP - Make poll_events and run_forever take &mut self
...
This removes the need for the EventsLoop::interrupt method by inroducing
a ControlFlow type. This new type is to be returned by the user's
callback and indicates whether the `EventsLoop` should continue waiting
for events or break from the loop.
Only the wayland, x11 and api_transition backends have been updated so
far, and only the wayland backend has actually been tested.
2017-06-02 21:19:45 +10:00
mitchmindtree
38856b1c60
X11 - Move event insertion from interrupt to proxy wakeup.
2017-05-31 18:07:51 +10:00
mitchmindtree
9ca2f83784
Call flush so that the wayland eventsloop correctly breaks from dispatch when wakeup is called
2017-05-27 22:51:59 +10:00
mitchmindtree
f6587aed39
[WIP] Have EventsLoopProxy::wakeup return a Result. Begin linux impl.
...
X11 and Wayland implementations are now half implemented, however both
still do not correctly break from the inner blocking event dispatch
functions when `wakeup` is called, which they should do.
2017-05-25 23:19:13 +10:00
mitchmindtree
fdb1c56366
Move interrupt flag reset to beginning of run_forever in wayland backend
2017-05-25 02:54:32 +10:00
mitchmindtree
1523548d3e
wayland: Reset the intterupted
flag before breaking from run_forever
...
This is important for any code that re-enters `run_forever` after some
previous interrupt.
2017-05-25 00:19:30 +10:00
Victor Berger
148c751f32
wayland: Initially paint the window white so that they always exist
2017-05-23 21:53:17 +02:00
Victor Berger
c2c27c1b37
wayland: Fix deadlock in poll_events
2017-05-14 15:28:27 +02: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
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
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
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