Commit graph

1197 commits

Author SHA1 Message Date
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
cd71271f0d Fix api_transition ControlFlow update compile errors 2017-06-09 07:33:22 -07:00
mitchmindtree
4b42af910b Make x11 backend take &mut self in poll_events method 2017-06-09 22:55:48 +10:00
mitchmindtree
0af3c04900 Update api transition to use ControlFlow 2017-06-09 22:55:32 +10:00
mitchmindtree
0237526999 Complete macos backend update to addition of ControlFlow 2017-06-09 22:13:30 +10:00
mitchmindtree
c5b9bd3612 Update macos backend to addition of ControlFlow (untested) 2017-06-09 19:40:22 +10:00
mitchmindtree
db9e80bdb6 Update examples and tests to addition of ControlFlow 2017-06-08 00:12:41 +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
2b55b2e0ef Temporarily remove windows window-specific awakened event. Needs to be updated to non-window-specific Event. 2017-05-31 16:11:06 +10:00
mitchmindtree
8f0ef514b1 Fix incorred Awakened import in windows backend 2017-05-31 15:52:15 +10:00
mitchmindtree
647a1727d0 Attempt to update api_transition to addition of EventsLoopProxy 2017-05-31 15:35:08 +10:00
mitchmindtree
339318f295 Update macOS backend to removal of Send+Sync and addition of EventsLoopProxy 2017-05-31 15:00:49 +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
06a5ec35b3 [WIP] Remove Sync and Clone from EventsLoop. Add EventsLoopProxy.
This commit only updates the top-level API to get some early feedback.
None of the platform-specific code has been updated yet. I'm hoping to
get around to this over the next couple days however if someone more
familiar with the windows backend would like to do a PR against this
fork that would be a great help.

Closes #187.
2017-05-25 20:13:54 +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
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
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
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
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
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
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
Victor Berger
08254e68fb Readd pub import erroneously removed 2017-03-15 10:11:43 +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
Imanol Fernandez
f961bdd668 Implement android events and wake event loop. 2017-03-06 14:39:42 +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
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
Victor Berger
64c8f66e72 wayland: implement modifiers 2017-03-03 22:28:02 +01:00
Yasuhiro Fujii
d72a345878 implement Window::hidpi_factor() for X11. 2017-03-03 21:25:26 +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
Joe Wilm
2ee658048a Fix busy loop in X11 WaitEventsIterator
WaitEventsIterator implements waiting by first calling XPeekEvent which
will block until at least 1 event is queued, and then it delegates to
PollEventsIterator to actually handle the new event. PollEventsIterator
was previously picky about which events it would process. Events of
other types would get stuck at the head of the X event queue, and
PollEventsIterator would return None. This initiated a busy loop in the
WaitEventsIterator because it would XPeekEvent, see that something is
there, and then PollEventsIterator would return None, and the process
would repeat.

This is resolved by using XNextEvent in the PollEventsIterator instead
of XCheckTypedEvent. Any event in the queue will be popped. Even if
winit isn't interested in the event, this means XPeekEvent will block
again to wait for another event instead of the previous behavior.
2017-02-15 08:34:24 -08:00
mitchmindtree
24b44e3b8e Remove confusingly named event import alias 2017-02-05 20:41:26 +11:00
mitchmindtree
ba71f6fb77 Add missing unsafe block to check for main thread macOS 2017-02-05 19:53:13 +11:00
mitchmindtree
926e03039f Panic if the user attempts to create window on non-main thread 2017-02-05 19:47:39 +11:00
mitchmindtree
b62ecfd517 Fix comments on macOS backend UserCallback methods 2017-02-05 19:37:00 +11:00
mitchmindtree
30e00f0454 Fix comment on event conversion special case 2017-02-05 19:21:51 +11:00
mitchmindtree
06c1b5903b Fix bug where an NSEvent is produced when a user opens spotlight while
the NSApplication is in focus.

This NSEvent produces an undocumented NSEventType value `21` that has no
associated variant within the cocoa-rs crate's `NSEventType` enum, thus
causing a segfault when attemptingt to match on the value.

This commit adds a check for `21` to avoid the segfault.

This fixes #104.
2017-02-05 19:01:27 +11:00
mitchmindtree
cbadc4bc31 Fix issue where window would not focus on startup.
Fix issue where key window would lose all mouse events once mouse left
that window.

Make sure that only window under mouse receives mouse scroll wheel
events.
2017-02-05 18:12:32 +11:00
mitchmindtree
3482c53c89 Rename old glutin ivar to winit 2017-02-05 13:28:56 +11:00
mitchmindtree
3ce7904e01 Wrap the temporarily stored user callback in a type to enforce
invariants

This also removes the need for "box"ing the callback in favour of
storing a raw `*mut` pointer. We can do this by ensuring that we never
store the pointer for longer than the lifetime of the user callback,
which is the duration of a call to `poll_events` or `run_forever`.

Also removes old commented out event code from the window module.
2017-02-05 12:51:09 +11:00
mitchmindtree
c03311fa2d Add a method to simplify emitting an event from the macos poll_events and run_forever methods 2017-02-04 13:30:34 +11:00
mitchmindtree
fd0ddee63c Panic if the user attempts to run an event loop on a non-main thread on macOS 2017-02-04 02:55:42 +11:00
mitchmindtree
ea19409960 Make sure EventsLoop::interrupt awakens the waiting event loop 2017-02-04 02:54:40 +11:00
mitchmindtree
35dcf8dab9 Only return Awakened on NsApplicationActivated, rather than on every unknown event. 2017-02-04 00:51:38 +11:00
mitchmindtree
be09639b69 Update the macOS backend to the new futures-compatible API.
This is a follow up to the new API introduced in #20.

This also fixes the issue where window resize events would not be
emitted until the end of the resize. This PR fixese #39 by ensuring that
the user callback given to either `EventsLoop::poll_events` or
`EventsLoop::run_forever` can be called by each window delegate's resize
callback directly.
2017-02-03 23:05:57 +11:00
Pierre Krieger
885b927d23 Merge remote-tracking branch 'origin/master' into impl-20 2017-02-03 09:14:24 +01:00
Pierre Krieger
b988c174fe Add WindowId type 2017-02-03 09:13:11 +01:00
tomaka
ae53bb0f14 Merge pull request #102 from cjhowe/master
iOS Support
2017-02-03 09:09:02 +01:00
Pierre Krieger
9cd0430ec7 Remove stuff from Window's API 2017-02-03 06:48:58 +01:00
Pierre Krieger
5025db2d59 Unix fix attempt 2017-01-28 16:09:22 +01:00
Pierre Krieger
148f507272 Wayland fix attempt 2017-01-28 15:56:53 +01:00
Pierre Krieger
c3d2289b0c Remove resize_callback from WindowsAttributes 2017-01-28 15:34:15 +01:00
Pierre Krieger
bcb242983b Add documentation for the new API 2017-01-28 15:33:54 +01:00
Pierre Krieger
d86fdb48d1 Remove the window from the events loop on destruction 2017-01-28 15:14:23 +01:00
Pierre Krieger
0242daa242 Add interrupting the events loop 2017-01-28 15:09:01 +01:00
Pierre Krieger
e7d43174e7 Implement the transition API 2017-01-28 15:05:36 +01:00
Pierre Krieger
422b332c1b Add a transition macro system 2017-01-28 15:00:17 +01:00
tomaka
f1d70d351e Merge pull request #82 from tomaka/documentation
Some documentation improvements
2017-01-28 13:31:36 +01:00
Pierre Krieger
8277b26862 No longer use an api_dispatch module for linux 2017-01-28 13:14:20 +01:00
tomaka
6738f7cc2e Merge pull request #118 from ojacobson/macos-window-resize
Naive implementation of resize events for OS X.
2017-01-25 07:58:08 +01:00
Owen Jacobson
6f82ccfba9
De-duplicate resize events.
This tracks resizes separately, and synthesizes them for the event iterators as needed, so that OS X apps don't generate a whole set of resize events after each resize.
2017-01-24 13:46:46 -05:00
Pavel Potocek
bf1585b819 Use a hand pointing a finger in X11 as MouseCursor::Hand 2017-01-24 15:35:38 +01:00
Owen Jacobson
7d6b4c3fe5
Naive implementation of resize events for OS X.
These events are batched, and delievered en masse at the end of the resize. This isn't a great developer experience (and it should probably be called out in the docs), but it makes it possible for winit client applications to detect and respond to resizes without special-casing Mac OS targets.

See #39. This is only a partial fix, and does not provide on-the-fly resize events.
2017-01-24 00:13:45 -05:00
mitchmindtree
95b7d5326e Fix patterns_in_fns_without_body warning on macos 2017-01-22 17:55:30 +11:00
mitchmindtree
9b15440b62 Fix non_upper_case_globals warnings on macos 2017-01-22 17:54:45 +11:00
tomaka
41ac24b107 Merge pull request #113 from samdphillips/mac-middle-mouse-button
Add middle mouse button events for MacOS.
2017-01-19 20:45:51 +01:00
Jeff Muizelaar
3b1fdc0f55 macos: Map our user generated event to Event::Awakened
This fixes propagation of Event::Awakend from wakeup_event_loop() when
using poll_event() on macOS.

Currently wait_event() translates all unknown events into
Event::Awakened so doesn't need the explicit translation.
2017-01-19 14:17:55 -05:00
Sam Phillips
55e52d6071 Add middle mouse events for MacOS. 2017-01-17 19:47:36 -08:00
rerion
941c8d3344 Add TODO & bump version 2017-01-07 15:00:15 +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
Christian Howe
ba94b8edf8 Fix Travis iOS build 2016-12-15 21:34:37 -06:00
Christian Howe
5146bce88e Fix iOS build and add to Travis CI 2016-12-13 07:29:17 -06:00
tomaka
3b93c7c664 Merge pull request #95 from frewsxcv/transparent
Implement window transparency on macOS.
2016-12-04 07:59:51 +01:00
Corey Farwell
cb0811faf3 Implement window transparency on macOS.
Fixes https://github.com/tomaka/winit/issues/57.
2016-11-30 14:36:51 -05:00
k-brac
7f2ee9a09a remove useless pub 2016-11-29 14:02:19 +01:00
k-brac
3e2154a922 child window created using a winapi::HWND instead of a WindowProxy 2016-11-29 13:02:42 +01:00
k-brac
2b25bf1480 child window creation improvement 2016-11-28 13:50:07 +01:00
k-brac
5a09e8ba21 first try to allow child window on windows 2016-11-25 17:05:39 +01:00
Corey Farwell
57d1e162ee Update min/max window constraints to support MacOS 10.10. 2016-11-23 10:50:12 -05:00
Corey Farwell
e3fce3d5ec Implement min/max window dimension constraints for MacOS.
Fixes https://github.com/tomaka/winit/issues/80.
2016-11-23 09:31:41 -05:00
mitchmindtree
53065bda40 Move resize_callback field from WindowBuilder into WindowAttributes struct 2016-11-12 02:55:21 +11:00
mitchmindtree
eb18b3d8b6 Add a WindowBuilder::with_window_resize_callback method.
This allows for passing the window_resize_callback fn during the window
building stage. More importantly, this allows setting the callback
without the need for mutable access to the Window, making it possible
to set the callback in the downstream glium crate.

This may solve tomaka/glium#1232 for most folk.
2016-11-11 22:08:46 +11:00
Pierre Krieger
2c58e85584 Some documentation improvements 2016-11-06 09:51:20 +01:00
Pierre Krieger
712b27086f Fix win32 panicking all the time and make events work 2016-11-05 13:44:23 +01:00
Victor Berger
f371621dd9 linux: remove outdate comment 2016-11-03 22:48:58 +01:00
Andy Barron
db45e58390 Add MouseEntered/MouseLeft for Windows, X11, Wayland, & Cocoa 2016-11-03 01:31:16 -07:00
Victor Berger
ce6d2496d3 wayland: sync drawn border size on window creation 2016-11-02 20:07:49 +01:00
Pierre Krieger
cf7c691bd6 Remove emscripten implementation 2016-11-01 16:16:59 +01:00
tomaka
9e404f2fe6 Merge pull request #28 from tomaka/win32-cleanups
Cleanups in the win32 code
2016-11-01 16:10:14 +01:00
Pierre Krieger
ef61a46182 Removed pub fields when not needed 2016-10-31 17:30:19 +01:00
Pierre Krieger
158543f336 Remove obsolete comment 2016-10-31 17:29:12 +01:00
Pierre Krieger
aace1c0373 Remove dependency on libc when possible 2016-10-31 17:26:26 +01:00
Pierre Krieger
751b0a7ed7 Move the win32 implementation to platform/windows 2016-10-31 17:23:00 +01:00
Pierre Krieger
188ecae101 Move some implementations around 2016-10-31 17:13:11 +01:00
Andrey Lesnikov
f5daac771e Prepared winit for glutin porting 2016-10-20 11:06:57 +03:00
Victor Berger
76f5613496 wayland: properly fetch new events with Window::poll_events() 2016-10-16 23:29:29 +02:00
Victor Berger
0663269482 wayland: Implement wakeup_event_loop() 2016-10-16 22:53:53 +02:00
Victor Berger
db6b4606a1 wayland: Support for wheel scrolling 2016-10-16 22:35:18 +02:00
Victor Berger
44996acf94 wayland: expose internals as side unsable methods 2016-10-10 08:01:58 +02:00
Victor Berger
42d73a1488 wayland: fix event dispatch, avoid double wait 2016-10-09 18:26:46 +02:00
Victor Berger
2d025a4a35 wayland: gracefully handle missing libxkbcommon 2016-10-09 18:26:24 +02:00
Victor Berger
c6f8ed2f81 wayland: handle Focused event 2016-10-09 16:33:29 +02:00
Victor Berger
6483e7f408 wayland: Some Window methods 2016-10-09 16:19:06 +02:00
Victor Berger
a5ba9983c9 wayland: basic mouse & keyboard support 2016-10-09 16:08:10 +02:00
Victor Berger
34c00aa153 wayland: window creation & resizing 2016-10-09 16:08:10 +02: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
Pierre Krieger
fe77a55a67 Fix WindowExt implemented on the wrong Window 2016-10-08 09:18:00 +02:00
Pierre Krieger
d5b88f1d5f Add get_nsview to WindowExt for MacOS 2016-10-06 20:41:15 +02:00
Andrey Lesnikov
2def6d5fff Fixed macos 2016-09-19 21:05:48 +03: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
tomaka
614276eb0b Merge pull request #12 from Osspial/master
Fix win32 bug where window resize cursors would not show
2016-09-07 07:13:19 +02:00
Glenn Watson
1eb2052bcf Add support to Linux headless implementation for specifying OpenGL version.
This allows creation of GL3+ headless OSMesa contexts on Linux.
2016-08-22 09:16:47 +10:00
Victor Koenders
5ce48523cd Added a couple more PartialEq's 2016-08-17 20:42:45 +02:00
Nicolas Koch
32d01b288e Add support for xcb
Due to XCB and Xlib compability, we can take a shortcut and use X11's
underlying xcb_connection. This way, a complete XCB backend implementation can
be avoided.
2016-07-31 00:00:43 +02:00
Emilio Cobos Álvarez
952ca7cfed
x11: handle X11's multi-key, a.k.a compose key. 2016-07-04 16:40:47 -07:00
mraof
f6ead48378 owner_events is now true when grabbing the pointer 2016-06-29 23:28:03 -04:00
mitchmindtree
8076255ba8 Make sure the window does not set itself to autorelease upon closing. 2016-06-26 11:44:27 +10:00
mitchmindtree
cbb734b5a1 Remove unnecessary global imports in favour of explicitly importing traits and using namespacing for constants, types and functions. 2016-06-22 15:50:34 +10:00
tomaka
0c4cf714a1 Merge pull request #790 from mitchmindtree/remove_unused_imports
Addresses unused import and `non_upper_case_globals` warnings emitted on OS X
2016-06-22 07:43:55 +02:00
tomaka
572af951e9 Merge pull request #791 from mitchmindtree/remove_unused_private_fields
Remove unused private fields from cocoa HeadlessContext struct.
2016-06-22 07:43:17 +02:00
mitchmindtree
9a6b6b3f35 Remove imports of enum variants in favour of using the type name paths. 2016-06-22 13:32:36 +10:00
mitchmindtree
c2537d81e8 Remove unused private fields from cocoa HeadlessContext struct. 2016-06-22 12:45:42 +10:00
mitchmindtree
561349669a Addresses several warnings emitted on OS X by removing unused imports and allowing non_upper_case_globals in cocoa event conversion function. 2016-06-22 12:40:48 +10:00
Andrey Lesnikov
7a8429e499 android: Fixed Window::get_pixel_format 2016-06-19 11:24:26 +03:00
tomaka
11faacefd7 Merge pull request #772 from ozkriff/master
Update to android_glue 0.2
2016-05-25 21:22:13 +02:00
Jan Segre
e0f36b80c9 Make WindowBuilder and HeadlessRendererBuilder derive Clone. 2016-05-23 03:17:31 -03:00
Victor Berger
c49c6bcd6e
wayland: WindowExt implementations. 2016-05-08 09:28:54 +02:00
Ivan Ukhov
54f442ea06 Generalize WindowBuilder::with_title 2016-05-08 09:28:42 +02:00
Victor Berger
14323656b6
wayland: Remove EGL-dependent code.
This removes all EGL-specific code from the wayland backend.

Notable unresolved question: due to wayland design, the resizing
methods will only get/set the size of the drawn borders, not of the
actual content drawn. This latter size cannot be controlled by winit.
2016-05-08 09:11:15 +02:00
Osspial
b2cf70b342 Fixed some warnings when building on Windows 2016-05-07 21:05:45 -04:00
Osspial
163563073f Fixed win32 bug where resizing window wouldn't show resize cursors 2016-05-07 21:00:50 -04:00
Andrey Lesnikov
18f846403b Updated to android_glue 0.2 2016-05-06 00:01:40 +03:00
Corey Farwell
dc49156fe6 Allow OSX WindowBuilder to specify 'activation behavior'. 2016-04-29 10:43:30 -04:00
Pierre Krieger
764bf7ce4b Update the android glue to 0.2 to use the new cargo-apk crate 2016-04-26 13:43:48 +02:00
Pierre Krieger
180aae3ada Remove OpenGL from Android code 2016-04-19 19:31:36 +02:00
Emilio Cobos Álvarez
0918fe4d9c
x11: Refactor NoneCursor logic so it applies to CursorState::Hide too 2016-04-17 18:14:53 +02:00
Emilio Cobos Álvarez
51aeb27d7e
x11: Add cursor hiding
The created cursor could be cached and whatnot, but I'm not sure it
deserves the complexity.
2016-04-17 17:41:58 +02:00
est31
7fb6450d17 Improve X11 cursor symbols handling
1. Make it non failing. Before we tried to call XFreeCursor with a
   cursor of 0 if we couldn't find a cursor. This has then caused a panic.

2. Introduce a system where multiple special cursors are tried
   in order to work with different themes and desktop environments.
   This way we get less often into the situation where we have to use a
   default cursor.

3. Also set names for some cursors that previously only had a placeholder.

Fixes #765.
Will fix https://github.com/servo/servo/issues/10475 as well.
2016-04-17 16:48:27 +02:00
Boris-Chengbiao Zhou
b9065f56ba glx: Always set CONFIG_CAVEAT to DONT_CARE 2016-04-13 13:39:03 +02:00
Pierre Chevalier
c68c0d96b2 Fix pixel format support detection in glx. #748
* by accepting GLX_EXT_framebuffer_sRGB as a sRGB capable framebuffer
* the new behaviour matches the wgl codel
2016-04-13 01:25:23 +01:00
tomaka
d2343106bc Merge pull request #755 from BonsaiDen/glx_multisampling_conformance
glx: Support non-conformant multisampling fbconfigs.
2016-04-06 16:34:05 +02:00
Ivo Wetzel
1b313df1ea glx: Support non-conformant multisampling fbconfigs. 2016-03-30 08:40:32 +02:00
Ivo Wetzel
0e9fad5d23 Merge branch 'master' of github.com:tomaka/glutin into x11_window_size_constraints 2016-03-30 08:21:01 +02:00
Richard Lettich
117069ef90 Changed MouseMoved((i32, i32)) to MouseMoved(i32, i32), breaking change 2016-03-27 14:39:20 -04: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
Ivo Wetzel
1b7a3cd31f Correctly apply initial size constraints for x11 windows. 2016-03-25 19:52:57 +01:00
Ivo Wetzel
7a5e47c446 Merge branch 'master' into x11_window_size_constraints 2016-03-25 02:54:40 +01:00
tomaka
8ae2df68e1 Merge pull request #744 from adamncasey/patch-1
Enable more Windows keys
2016-03-24 19:56:55 +01:00
tomaka
0cf1f01990 Merge pull request #746 from Thinkofname/hide-cursor-state-x11
Implement CursorState::Hide for x11
2016-03-24 07:37:58 +01:00
Thinkofname
5c4bfe1379 Remove a debug print added in 1de66e4ef 2016-03-21 18:49:00 +00:00
Thinkofname
267221af3e Implement CursorState::Hide for x11 2016-03-21 18:42:54 +00:00
Steven Sheldon
c5268309c3 Update objc to 0.2. 2016-03-20 16:04:11 -07:00
Adam Casey
9e2a179daa Enable more Windows keys
This should enable most required keys on Windows.

Mappings taken from: https://msdn.microsoft.com/en-gb/library/windows/desktop/dd375731%28v=vs.85%29.aspx and applied with some guesswork to the Glutin names.
2016-03-19 10:56:58 +00:00
UK992
28599a5d79 Uncomment more keys on win32 2016-03-18 02:49:15 +01:00
Manish Goregaokar
1de66e4efb Add support for navigation keys 2016-03-17 16:04:03 +05:30
Paul Rouget
a3543b700f Merge pull request #733 from fkaa/cocoa-memleak
Fix memory leak while creating NSEvent and swapping buffers (Fixes #514)
2016-03-17 03:08:47 +01:00
Patrick Walton
7249529654 Make Mac borderless windows resizable and draggable.
Despite the fact that the style mask contains `NSTitledWindowMask`, the
title doesn't show up for two reasons: (a) we draw over it; (b) we make
it invisible with a call to `-[NSWindow setTitleVisibility:]`.

Addresses servo/servo#9856 and servo/servo#9878.
Partially addresses servo/servo#9812.
2016-03-14 16:45:01 -07:00
Ivo Wetzel
7473d99c2f Implement min/max_dimensions for x11 windows.
Size hints are only being set for non-fullscreen windows, if
`max_dimensions` are set they'll override the normal `dimensions`
since X11 will not automatically resize the window after setting
the size hints.

`PSize` hint is currently set along with the `min/max` hints for
good measure.
2016-03-06 20:52:46 +01:00
Patrick Walton
7886ff9acd Add phases to wheel events.
Needed for apps to support overscroll on the Mac.
2016-03-03 16:49:35 -07:00
Felix Kaaman
08c311839f Fix memory leak while creating NSEvent and swapping buffers (Fixes #514) 2016-03-02 16:44:08 +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
Patrick Walton
bcd7999bf6 cocoa: Post Awakened events at the end of the queue to avoid floods.
Closes servo/webrender#179.
2016-02-29 15:12:35 -08:00
Pierre Krieger
16f76b2407 Make it compile on Linux 2016-02-27 13:59:11 +01:00
Paul Rouget
68818751f4 TouchpadPressure event 2016-02-26 11:08:46 +01:00
Felix Kaaman
778b8fa87a Purge OpenGL from cocoa 2016-02-23 13:25:33 +01:00
Pierre Krieger
10bb03c5f0 Remove most OpenGL stuff and make it compile on win32 2016-02-23 12:56:23 +01:00
Pierre Krieger
ec76d991ad Unlocks platform-specific attributes 2016-02-10 17:39:35 +01:00
Pierre Krieger
982279bc39 Update the emscripten port of glutin 2016-02-09 14:25:21 +01:00
Paul Rouget
202f8c5a2d allow non ascii character in ReceivedCharacter 2016-02-08 14:45:02 +01:00
tomaka
3246613a51 Merge pull request #709 from gdamjan/support-utf8-window-title
support utf8 window titles via _NET_WM_NAME standard
2016-02-03 10:13:14 +01:00
Paul Rouget
99073eec7b osx: scroll delta should take hidpi factor into account 2016-02-02 10:25:26 +01:00
Matt Brubeck
c67e43d076 Use double buffering by default on GLX 2016-01-28 13:23:06 -08:00
Mátyás Mustoha
11bbca7ca7 Replace i8 with libc::c_char 2016-01-26 12:44:34 +01:00
Michael Howell
0a43f8f733 Allow it to work under Xvfb.
Part of servo/servo#8641
2016-01-19 09:44:33 -07:00
tomaka
1113fa1c13 Merge pull request #703 from FredrikNoren/master
Fix cocoa headless. Fixes #635
2016-01-18 23:07:31 +01:00
Fredrik Noren
2a66d1cffc Construct cocoa headless context based on args 2016-01-18 13:12:40 -05:00
Damjan Georgievski
e9fc0eeb87 call set_title() in new()
…instead of low-level X11 calls that don't work with utf8
2016-01-17 18:52:21 +01:00
Damjan Georgievski
c923b27cad support utf8 window titles via _NET_WM_NAME standard
based on this freerdp patch
9767f7f042

thanks to emiliocobos on irc
2016-01-17 18:52:13 +01:00
Johan Sköld
c71b14afb9 Adding os::macos.
Also implements platform_window() for cocoa.
2016-01-17 01:02:27 -08:00
Emilio Cobos Álvarez
4d729164c7 x11: Poll the window until it is really visible
Fixes #697

It seems that `XSync` doesn't really makes the window viewable.

This feels hacky, other option to do it could be using `XIfEvent` or
similar to listen to `MapNotify` events, but we'll have a loop still.

In practice, this lasts between two and thre iterations on my machine,
which is something not noticeable.
2016-01-16 18:19:56 +01:00
David Hewson
8a7edc4e40 Prefer double buffer on wgl if unspecified
According to https://msdn.microsoft.com/en-us/library/windows/desktop/dd318284(v=vs.85).aspx if double buffer is unavailable then a single buffer will be returned
2016-01-14 15:50:42 +00:00
Fredrik Noren
c6c4dfdd1e Fix cocoa headless 2016-01-08 00:03:54 -05:00
tomaka
88e64a87a9 Merge pull request #700 from ecoal95/querydevice-leak
x11: Prevent leak on XIQueryDevice
2016-01-07 15:44:43 +01:00
Emilio Cobos Álvarez
21b9245ccc x11: Prevent leak on XIQueryDevice
Per http://linux.die.net/man/3/xiquerydevice:

> XIFreeDeviceInfo frees the information returned by
> XIQueryDevice.
2016-01-06 17:44:26 +01:00
Pierre Krieger
8319043298 Fix wrong screen ID used on GLX 2016-01-05 18:06:30 +01:00
Victor Berger
508e8cf665 Fix EGL for wayland. 2016-01-03 12:19:53 +01:00
Pierre Krieger
82f5cd8272 Add better X error handling 2015-12-30 14:58:07 +01:00
tomaka
8236564a52 Merge pull request #687 from Aceeri/master
Support for side buttons on mouse
2015-12-30 08:45:11 +01:00
Aceeri
47d9a7f1a6 Support for side buttons on mouse 2015-12-29 15:47:04 -08:00
Patrick Walton
cf3097f6a0 Add a useless call to glXQueryVersion() before doing anything in the GLX port to work around a bug in the VirtualBox OpenGL driver. 2015-12-29 18:09:19 -05:00
tomaka
c1a98a200b Merge pull request #684 from AnthIste/0.4.4-cocoa-api
Implement set_cursor_position on OSX with Cocoa
2015-12-29 21:21:17 +01:00
tomaka
0a598d7980 Merge pull request #680 from tomaka/xsync
Call XSync before XSetInputFocus
2015-12-29 21:21:15 +01:00
Ruben Bakker
d892ba168b Reduce cursor warp delay with CGAssociateMouseAndMouseCursorPosition 2015-12-29 21:52:18 +02:00
Ruben Bakker
2fb150b345 Implement set_cursor_position with CGWarpMouseCursorPosition 2015-12-28 21:47:27 +02:00
Rengierof
bc811fa587 Removed unnecessary unsafe code block 2015-12-26 20:23:20 +02:00
Rengierof
11e27889ae Fixes cursor behavior with windows 2015-12-26 16:38:00 +02:00
Pierre Krieger
033d92aae5 Only call XSetInputFocus if the window is visible 2015-12-24 11:58:50 +01:00
Pierre Krieger
360d2bf452 Call XSync before XSetInputFocus 2015-12-24 11:55:39 +01:00
Victor Berger
83e2924ac2 api/wayland: activate the backend 2015-12-22 14:36:42 +01:00
Victor Berger
6eba737fce api/wayland: fix cursor errors 2015-12-22 14:36:41 +01:00
Victor Berger
42551d20fd api/wayland: output and fullscreen handling. 2015-12-22 14:36:41 +01:00
Victor Berger
84f1aef100 api/wayland: add keyboard support. 2015-12-22 14:36:41 +01:00
Victor Berger
0792557f4b api/wayland: pointer events support. 2015-12-22 14:36:41 +01:00
Victor Berger
6294d3c7dd api/wayland: core windows and events structure. 2015-12-22 14:36:41 +01:00
Victor Berger
741311b619 api/wayland: core context 2015-12-22 14:36:41 +01:00
Victor Berger
1b25d705ce api/wayland: move window and monitor to mods. 2015-12-22 14:36:41 +01:00
Victor Berger
fad2e77a36 api/wayland: Reset to empty API.
In order to build the whole new structure.
2015-12-22 14:36:41 +01:00
tomaka
1f5f997a68 Merge pull request #677 from tomaka/pf
No longer manually enumerate pixel formats
2015-12-20 10:58:28 +01:00
tomaka
87f0edea7b Merge pull request #673 from ahihi/master
Fix fullscreen on OS X
2015-12-20 07:55:26 +01:00
Pierre Krieger
61bca52217 Fix compilation on linux 2015-12-19 15:00:32 +01:00
Pierre Krieger
67356b45a3 Fix compilation on cocoa 2015-12-19 14:42:51 +01:00
Pierre Krieger
ed1d76aaee Remove now unneeded function 2015-12-19 14:36:49 +01:00
Pierre Krieger
4c9348ab50 Update EGL implementation 2015-12-19 14:36:16 +01:00
Pierre Krieger
a428e0608f Update cocoa implementation with changes to pf_reqs 2015-12-19 13:56:25 +01:00
Pierre Krieger
6b3a3a4577 Update GLX to use glXChooseFBConfig 2015-12-19 13:56:13 +01:00
Pierre Krieger
95a60ee329 Switch WGL to ChoosePixelFormat 2015-12-19 13:06:50 +01:00
Pierre Krieger
0b6418fabb Change PixelFormatRequirements 2015-12-19 11:32:51 +01:00
Emilio Cobos Álvarez
a69ded9c8a x11: Improve xlib error reporting 2015-12-15 13:56:35 +01:00
Miranda Kastemaa
e3cb389c6a Fix fullscreen on OS X 2015-12-11 23:23:23 +02:00
tomaka
48a02a0c8c Merge pull request #659 from Aceeri/minmaxwindow
Minimum/maximum dimensions for windows in win32 API
2015-12-05 18:01:55 +01:00
Pierre Krieger
816fbb2165 Fix the windows build 2015-12-01 09:13:24 +01:00
Simon Sapin
24d9a70533 Try to fix Windows build 2015-12-01 03:04:00 +01:00
Simon Sapin
e4f1c7358d Update some libraries 2015-12-01 02:11:54 +01:00
Olaf Buddenhagen
32ed86a976 Fix compilation for 32 bit targets
Regression introduced in 47df0e9eaa

Casting fullscreen_atom (which is the result from XInternAtom, i.e.
c_ulong) as i64 is obviously wrong -- the whole point of types such as
c_ulong is that long in C does *not* always have the same bit size...

Cast it as c_long instead.

While this is the most straightforward fix, I'm not sure it's the best
one: perhaps the x11 crate should offer a set_ulong() method along with
set_long(), which could be used here instead of the cast?
2015-11-30 09:13:08 +01:00
tomaka
6a3ee2af75 Merge pull request #646 from adambadawy/master
Fix fullscreen on X11
2015-11-11 20:38:12 +01:00
Aceeri
2be3c142f0 Fixed wrong variable binding for WindowAttributes on asserts 2015-11-09 03:29:26 -08:00
Aceeri
9a05577df8 Not implemented asserts to prevent silent fails 2015-11-09 03:18:48 -08:00
Aceeri
c6ffedccbd Removed comments, fixed Some/None matches, removed unnecessary lock checks 2015-11-09 03:13:52 -08:00
Aceeri
d6a53cf5d3 Corrections to sharing data 2015-11-09 02:49:50 -08:00
Aceeri
78eb4a5990 Minimum/maximum dimensions for windows in win32 api 2015-11-09 01:42:54 -08:00
mitchmindtree
b02265fa11 Update to libc 0.2, remove unnecessary gl_common crate 2015-11-09 08:47:12 +01:00
Pierre Krieger
37262fb228 Remove public exports of gl_common and libc 2015-11-09 08:46:52 +01:00
mitchmindtree
228732877a Lock objc version, add casts to appease libc pointer type conflict. Closes #654 2015-11-08 21:13:25 +11:00
Daggerbot
7e4f795a53 Change some uses of c_void to avoid libc version conflicts. 2015-11-04 08:21:42 -08:00
Adam Badawy
c068a770f0 Update x11-dl 2015-10-27 03:22:13 -04:00
Adam Badawy
10f5528c14 Fix using garbage memory 2015-10-27 03:10:57 -04:00
Adam Badawy
d1a5730374 Remove deprecated comment 2015-10-27 03:09:52 -04:00
Adam Badawy
f9929fab2f Use mode when switching to fullscreen 2015-10-27 03:07:37 -04:00
Adam Badawy
4f8095816e Allow any mode larger than requested dimensions
We were previously allowing only fullscreen modes which were exactly as
tall as the requested dimensions, perhaps erroneously.
2015-10-27 00:33:48 -04:00
Adam Badawy
23a5104098 Comment fullscreen XClientMessage code 2015-10-26 05:33:01 -04:00
Adam Badawy
47df0e9eaa Fix misbehaving fullscreen window 2015-10-26 04:06:40 -04:00
Adam Badawy
ed8dfa9a52 Fix issue #509
Focusing the newly created window seems to grab the keyboard.
2015-10-25 21:56:49 -04:00
Adam Badawy
918dc67992 Fix issue #582
I switched `vsyncstart` and `vdisplay` again, as per the discussion on
issue #582.
2015-10-25 21:52:20 -04:00
tomaka
7f2c161704 Merge pull request #644 from mbrubeck/mouse-emulated
Change X11 events based on `multitouch` option
2015-10-23 17:25:04 +02:00
Matt Brubeck
8c0dfe19c2 Change X11 events based on multitouch option
* If `multitouch` is enabled, touch input generates touch events.
* If `multitouch` is disabled, touch input generates emulated mouse events.
2015-10-23 08:01:03 -07:00
Matt Brubeck
93bec2ffca Fix typo in WindowExt::get_xlib_display 2015-10-22 13:59:52 -07:00
wartman4404
f83e783b26 ensure server has GLX_ARB_create_context extension 2015-10-18 18:53:50 -05:00
Pierre Krieger
0c1f15f842 Fix vsync being enabled even when disabled 2015-10-04 18:36:05 +02:00
Pierre Krieger
7a625ef3d8 Remove the window feature entirely 2015-10-03 10:33:37 +02:00
tomaka
c8fd077e17 Merge pull request #617 from tomaka/platform-specific
Add an `os` module containing platform-specific traits
2015-10-03 10:11:11 +02:00
Pierre Krieger
8c6a27d426 Add an os module containing platform-specific traits 2015-10-03 09:53:37 +02:00
Andrey Lesnikov
b01897bfc7 android: Disabled multitouch by default 2015-10-01 23:05:05 +03:00
Josh Matthews
77b3743117 Warning fixes for OS X. 2015-09-28 12:19:36 -04:00
Pierre Krieger
86fa1b58e5 Rename MonitorID -> MonitorId 2015-09-24 09:11:59 +02:00
tomaka
7ab495b698 Merge pull request #614 from tomaka/windowproxy-sync
Fix WindowProxy not being Send and Sync on win32
2015-09-24 08:37:29 +02:00
tomaka
28029c8038 Merge pull request #613 from mvdnes/windows_set_size
Fix Window.set_inner_size() on win32
2015-09-24 08:29:12 +02:00
Pierre Krieger
9a459f94ff Fix WindowProxy not being Send and Sync on win32 2015-09-24 08:28:09 +02:00
tomaka
a448043b16 Merge pull request #606 from paulrouget/NSFullSizeContentViewWindowMask
Use NSFullSizeContentViewWindowMask for decoration-less windows
2015-09-23 13:29:28 +02:00
Pierre Krieger
aa9cb99929 Add #[inline] attributes 2015-09-23 13:11:47 +02:00
Mathijs van de Nes
4046a892ee Fix Window.set_inner_size() on Win32
Previously, the function would actually set the outer size of the window
instead of the inner size.
We fix this by first letting windows calculate the outer size based upon
the specified inner size.
2015-09-23 13:11:00 +02:00
tomaka
3820d307a3 Merge pull request #611 from vvuk/win32
fix up win32 support
2015-09-23 13:09:36 +02:00
Paul Rouget
67a31c6221 Use NSFullSizeContentViewWindowMask for decoration-less windows 2015-09-23 10:53:35 +02:00
Vladimir Vukicevic
6ece84f5c0 win32: remove unimplemented!() from platform_display() 2015-09-22 14:23:56 -04:00
Vladimir Vukicevic
059821a99c win32: implement wakeup_event_loop 2015-09-22 14:23:53 -04:00
tomaka
0f9693bde4 Merge pull request #608 from tomaka/pub-attribs
Make some fields in WindowBuilder and HeadlessRendererBuilder public
2015-09-22 20:22:41 +02:00