Commit graph

1677 commits

Author SHA1 Message Date
tomaka 28eddb64a9 Merge pull request #238 from GuildMasterInfinite/gui-thread
Use `IsGUIThread` to initialize message queue
2017-07-18 20:53:59 +02:00
tomaka 2066909845 Merge pull request #223 from Determinant/xim-send-spot
XIM support for sending spot to IME
2017-07-18 20:09:02 +02:00
Gabriel Majeri 8add21b04f Use IsGUIThread to initialize message queue 2017-07-18 20:57:22 +03:00
Alex Butler 58b800c344 Fix wayland vertical scroll sign 2017-07-18 12:47:01 +01:00
Benjamin Saunders 506e830cb0 Fix X11 scroll direction
This was inconsistent with the documented semantics of MouseScrollDelta.
2017-07-17 23:52:28 -07:00
Benjamin Saunders b09e3b2568 Fix windows build
An inconsistency was introduced by the independent merging of #211
with #213.
2017-07-17 17:57:25 -07:00
tomaka 2e079fe9a2 Merge pull request #211 from Ralith/transparent-ids
Transparent axis/button IDs
2017-07-17 07:37:26 +02:00
Rukai e1e21ded28 Fix x11 ModifiersState 2017-07-15 09:58:32 -07:00
Pierre Krieger 7a1a2667b1 Reimplement platform_window on win32 2017-07-13 21:14:32 +02:00
Determinant 9cd370fa4c Merge branch 'master' of https://github.com/tomaka/winit into xim-send-spot 2017-07-12 13:46:01 -04:00
Determinant d6b9faacc9 rename the field 2017-07-12 13:26:11 -04:00
tomaka 9462a51f32 Merge pull request #203 from Determinant/xim-improvement
XIM: Increase the string lookup buffer size and add IC focus/unfocus.
2017-07-12 19:14:11 +02:00
Determinant 8e13f85fac Merge branch 'xim-improvement' into xim-send-spot 2017-07-12 01:24:30 -04:00
Determinant f2ee78bcf5 Merge branch 'master' of https://github.com/tomaka/winit into xim-send-spot 2017-07-12 00:04:12 -04:00
Determinant aea61a74fb remove the the redundant code, fix a bug 2017-07-12 00:00:51 -04:00
Rukai 117beed0b5 Fix x11 mouse scroll wheel 2017-07-11 17:15:23 +10:00
Imanol Fernandez 5ebeb8ab5f Fix Android compilation error 2017-07-06 23:33:42 +02:00
tomaka 90a81cca29 Merge pull request #214 from tomaka/rm-cgl
Remove dependency on cgl on OSX
2017-07-05 09:38:26 +02:00
Lucien Greathouse 0371b6573f Implement raw mouse motion for Windows 2017-07-05 00:28:08 -07:00
Pierre Krieger ac0d6c890a Remove dependency on cgl on OSX 2017-07-05 09:13:39 +02:00
Determinant 75856e0e39 dynamically reallocate buffer; release mutex before callback 2017-07-01 12:24:35 -04:00
Benjamin Saunders 3d9e8da9ec Transparent axis/button IDs 2017-07-01 02:22:02 -07:00
Brendan Zabarauskas 886eab5c7e Fix build on nightly
Nightly recently fixed some soundness issues related to `Sized`. This had to be fixed in the cocoa crates as well, and also affects our ios bindings.
2017-07-01 17:48:47 +10:00
Pierre Krieger 61ba6dce7f Switch win32 implementation to new design 2017-06-26 21:46:26 +02:00
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
Victor Berger 66a12d5332 linux: stop exposing wayland_client's types 2017-06-23 20:20:49 +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 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
tomaka 34d2c7517d Merge pull request #610 from mbrubeck/android-touch
Support multi-touch events on Android
2015-09-22 19:55:43 +02:00
Matt Brubeck 1827910927 Support multi-touch events on Android
Depends on tomaka/android-rs-glue#64.
2015-09-22 09:25:49 -07:00
Tim Neumann 9f6806ba2e make glutin compile on all iOS targets 2015-09-21 18:57:35 +02:00
Pierre Krieger e466cfb2d6 Make some fields in WindowBuilder and HeadlessRendererBuilder public 2015-09-21 15:42:24 +02:00
tomaka 1b28e32e31 Merge pull request #587 from neivv/win32-alt
Handle events for Alt-<Key> and F10 presses in windows
2015-09-21 14:43:10 +02:00
Pierre Krieger 62bafe2130 Remove BuilderAttribs 2015-09-21 14:03:05 +02:00
Pierre Krieger a8d3342468 Switch OS/X to new design 2015-09-21 12:47:14 +02:00
Pierre Krieger 5182023fd6 Switch X11 and wayland to the new design 2015-09-21 12:04:33 +02:00
Pierre Krieger b5d0a3eb67 Convert GLX to the new design 2015-09-21 12:03:59 +02:00
Pierre Krieger 8f3ec7998d Finish converting windows to the new design 2015-09-21 12:03:58 +02:00
Pierre Krieger 932e565391 Remove extract_non_static 2015-09-21 12:03:58 +02:00
Pierre Krieger 1b836f6040 Switch WGL and part of win32 to the new system 2015-09-21 12:03:57 +02:00
Pierre Krieger 3054e2ee02 Switch EGL to use only pf_reqs and opengl 2015-09-21 12:03:57 +02:00
Pierre Krieger 3ff08d747c Add GlAttributes::map_sharing 2015-09-21 12:03:56 +02:00
Pierre Krieger 58b3bfb4fb Extract PixelFormatRequirements from BuilderAttribs 2015-09-21 12:03:56 +02:00
Pierre Krieger 48fe9b2644 Extract WindowAttributes from the BuilderAttribs 2015-09-21 12:03:55 +02:00
Pierre Krieger c244f8c033 Extract GlAttributes from BuilderAttribs 2015-09-21 12:03:55 +02:00
Pierre Krieger 82bb047fda Report the error from x11-rs when failing to open shared libraries 2015-09-20 08:48:53 +02:00
Pierre Krieger b9a4f5fbe9 Err when a X connection cannot be created instead of panicking 2015-09-20 08:42:32 +02:00
Paul Rouget da51a60595 add resizable mask to decoration-less windows 2015-09-17 08:57:43 +02:00
Felix Kaaman b029233e54 Add focus and defocus events on cocoa. Fixes #595 2015-09-10 19:36:53 +02:00
tomaka 8092fd6409 Merge pull request #590 from tomaka/glx-non-conformant
No longer filter out non-conformant formats
2015-09-04 20:55:59 +02:00
tomaka 08cb668037 Merge pull request #580 from mbrubeck/scroll-lines
Fix smooth-scrolling increment on some X11 devices
2015-09-01 07:29:59 +02:00
Pierre Krieger cb749ad904 No longer filter out non-conformant formats 2015-08-30 18:19:31 +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
Markus Heikkinen 84d5db91af Handle events for Alt-<Key> and F10 presses in windows 2015-08-29 17:00:05 +03:00
Mariusz Ceier 5392ba0db0 Correct event type
KeymapNotify should not be handled by calling XRefreshKeyboardMapping.

XRefreshKeyboardMapping expects XMappingEvent.
2015-08-28 11:23:44 +02:00
Glenn Watson 7d43ca32bb Fix android build 2015-08-28 08:58:17 +10:00
Matt Brubeck 576720fd97 Read scroll axis info from all devices
When multiple scrolling devices are attached, XIAllMasterDevices does not
include the scroll axes for all hardware devices.
2015-08-27 06:52:32 -07:00
Dylan Ede 3427308c60 Modified Windows key event handling to support modifier keys. 2015-08-26 14:37:05 +01:00
Matt Brubeck c310f7bb80 Take XIScrollClassInfo::increment into account
From the "Smooth Scrolling" section of [XI2Proto.txt][1]:

> One unit of scrolling in either direction is considered to be equivalent to
> one button event, e.g. for a unit size of 1.0, -2.0 on an valuator type
> Vertical sends two button press/release events for button 4. Likewise, a
> button press event for button 7 generates an event on the Horizontal
> valuator with a value of +1.0. The server may accumulate deltas of less than
> one unit of scrolling.

From [What's new in XI 2.1 - smooth scrolling][2]:

> The increment defines what delta the driver considers to be one scroll
> event. For an increment of +5, each delta of 5 should be regarded as one
> scroll unit down. For an increment of -3, each delta of 3 should be regarded
> as one scroll unit up (i.e. inverted).

[1]: http://www.x.org/releases/X11R7.7/doc/inputproto/XI2proto.txt
[2]: http://who-t.blogspot.com/2011/09/whats-new-in-xi-21-smooth-scrolling.html

This fixes scrolling with my Microsoft mouse in X11 on Debian 8.1.
2015-08-24 15:44:02 -07:00
Pierre Krieger e28a0bdb97 Do not crash in case of buggy EGL implementations that are missing eglGetPlatformDisplay 2015-08-24 14:57:13 +02:00
Victor Berger f3e67128db wayland: Resized event 2015-08-21 18:48:08 +02:00
Victor Berger bfc709fdd1 wayland: fix events Moved -> MouseMoved 2015-08-21 18:47:54 +02:00
Peter Atashian 9d387b4f98 Cleanup unused import stuff
Also support i686-pc-windows-msvc

Signed-off-by: Peter Atashian <retep998@gmail.com>
2015-08-21 11:49:10 -04:00
Paul Rouget cb78383da0 Do not call nextEventMatchingMask twice
wait_event used to call nextEventMatchingMask twice. Once with untilDate:distantFuture,
and dequeue:NO to wait until the next event but witout consuming it, and again with
untilDate:distantPast and dequeue:YES to retrieve the event (via poll_events).

For some reason, with osx 10.11, calling nextEventMatchingMask with dequeue:NO never
returns if the user scrolls, freezing the app.

So we now call nextEventMatchingMask only once, with dequeue:YES.
2015-08-20 10:53:44 +02:00
Matt Brubeck 93ce9c24f5 Handle touch events on X11 2015-08-18 15:17:25 -07:00
Colin Sherratt 72fc0dc3a3 Enable grave key on X11 2015-08-17 23:28:34 -04:00
Victor Berger f7f52c21a0 wayland: properly handle 'decorated' option. 2015-08-16 16:21:26 +02:00
Victor Berger 1cea6a65a4 Update wayland backend to draw decorations.
Integrate with wayland-window crate to draw decorations
allowing resize & move of the window.

Leaving the wayland backend as disabled until full usability
is ensured.
2015-08-16 14:12:21 +02:00
Zetok Zalbavar 6c73209746
Prefer GLX over EGL
fixes #314 for me.

I've "tested" change by running examples (which prior to change simply
crashed), but since I did not run those examples successfuly ever before,
I don't know whether they worked as intended.
2015-08-14 15:08:44 +01:00
tomaka 5c60456e16 Merge pull request #567 from paulrouget/opengl-profile-selection-fix
Fix OpenGL profile selection
2015-08-13 08:14:44 +02:00
Paul Rouget 26139f8c5c Fix OpenGL profile selection 2015-08-11 04:41:59 +02:00
Glenn Watson 86408438fc Fix a rare crash in some X11 implementations (details below). 2015-08-11 04:16:01 +02:00
Pierre Krieger 587dedaa9e Correctly handle eglGetDisplay 2015-08-07 16:22:31 +02:00
Pierre Krieger bee3e0e0f0 Get the list of extensions only once 2015-08-07 15:33:33 +02:00
Sven Nilsen ce13975f15 Removed dot in error message
Closes https://github.com/tomaka/glutin/issues/562
2015-08-05 12:10:38 +02:00
Braden Evans 3b76b01cce Typo in error message 2015-08-04 18:02:55 -07:00
Braden Evans 9bcfad9f75 Implement Display, Error for ContextError 2015-08-04 18:01:38 -07:00
tomaka be0440666b Merge pull request #553 from tomaka/egl-default
Use EGL by default with X11
2015-08-02 14:00:50 +02:00
Pierre Krieger be9c8c0186 Try libEGL.so.1 before libEGL.so 2015-07-28 20:48:12 +02:00
tomaka 829d7a6afc Merge pull request #551 from tomaka/android-headless
Implement headless contexts on android
2015-07-28 19:59:49 +02:00
Pierre Krieger 743cc317d7 Use EGL by default with X11 2015-07-28 19:54:17 +02:00
Pierre Krieger 1f6c4d65a6 Implement headless contexts on android 2015-07-27 10:18:45 +02:00
Pierre Krieger f7cc80fbb1 Headless contexts now create an EGL pbuffer on win32 2015-07-27 10:13:00 +02:00
Pierre Krieger c9b1b91b8c Load the EGL library in platform/windows 2015-07-27 09:52:51 +02:00
tomaka 991b15df87 Merge pull request #548 from tomaka/egl-pbuffer
Add support for creating a pbuffer with EGL
2015-07-27 09:21:13 +02:00
Pierre Krieger 653fbde987 Add support for creating a pbuffer with EGL 2015-07-27 08:33:48 +02:00
Pierre Krieger 6f7a2fa1e7 Indicate the exact error when eglMakeCurrent or eglSwapBuffers fail 2015-07-26 16:56:13 +02:00
tomaka 37b4089015 Merge pull request #547 from tomaka/better-choice
Better choice for the pixel format
2015-07-25 16:12:33 +02:00
Pierre Krieger 2d4c382f0b Better choice for the pixel format 2015-07-25 15:57:03 +02:00
Pierre Krieger a97cbd1729 Attempt to fix issues with sRGB 2015-07-25 15:11:29 +02:00
Sven Nilsen 79b8cf2cc8 Keep existing function for backward compatibility 2015-07-25 13:57:52 +02:00
Sven Nilsen 05175c1d80 Split get_inner_size
Closes https://github.com/tomaka/glutin/issues/542

* Splits `get_inner_size` into `get_inner_size_points` and
`get_inner_size_pixels`

This is a breaking change.
2015-07-25 13:40:33 +02:00
Sven Nilsen 5f98e510e4 Fixed docs for get_inner_size
Closes https://github.com/tomaka/glutin/issues/388
2015-07-25 12:01:20 +02:00
Daggerbot 6d6290df6e Implement Window.set_inner_size on X11. 2015-07-23 22:50:25 +00:00
Akos Kiss 07c8154cb7 Add aarch64-unknown-linux-gnu support
* Adding dependencies
* Replacing `i8` with `c_char` ot `_` (since `c_char` can be
  unsigned on some platforms, aarch64 is one of them)
2015-07-23 06:19:54 +00:00
Pierre Krieger 4b17b7fdbb Filter invalid FBConfigs 2015-07-22 15:15:35 +02:00
tomaka 0e3ce75969 Merge pull request #536 from tomaka/fix-using-freed-memory
Fix calling XFree before reading from memory
2015-07-22 09:39:04 +02:00
Pierre Krieger 65d56e5521 Fix calling XFree before reading from memory 2015-07-22 08:39:31 +02:00
Robert Knight 602a737440 Only listen for mouse events from master devices
XInput2 has a concept of master and slave devices,
where a slave device is the actual physical device,
attached to a master device representing the cursor or keyboard
focus.

See http://who-t.blogspot.co.uk/2009/05/xi2-recipes-part-1.html

Mouse events were being received from both the master and slave
devices, but we are only interested in events from the master device.

Fixes #533
2015-07-22 06:44:51 +01:00
Pierre Krieger 7fe828bed3 Add smaall TODO 2015-07-20 19:43:36 +02:00
Pierre Krieger 57a1d546e7 Add CreationError::NoAvailablePixelFormat 2015-07-20 19:42:32 +02:00
Pierre Krieger 43dabf131a Add CreationError::OpenGlVersionNotSupported 2015-07-20 19:38:57 +02:00
Pierre Krieger ba5adfa1e1 Add CreationError::RobustnessNotSupported 2015-07-20 19:34:34 +02:00
tomaka 8c364d5cfc Merge pull request #530 from tomaka/glx-enumerate
Enumerate the FBConfigs instead of calling glxChoose
2015-07-19 21:41:26 +02:00
tomaka 8aa6fea832 Merge pull request #529 from tomaka/fix-win32
Fix the windows build
2015-07-19 16:13:24 +02:00
Pierre Krieger 3914d3f801 Enumerate the FBConfigs instead of calling glxChoose 2015-07-19 16:11:45 +02:00
tomaka d838ff7d44 Merge pull request #527 from tomaka/split-glx
Correct window creation on X11
2015-07-19 15:04:51 +02:00
Pierre Krieger b573a161a9 Fix the windows build 2015-07-19 15:03:48 +02:00
Pierre Krieger 9299de0256 Fix EGL context creation 2015-07-19 14:32:41 +02:00
Pierre Krieger baf9b92d3f Correct window creation on X11 2015-07-19 13:53:40 +02:00
tomaka 896640f2e0 Merge pull request #523 from tomaka/egl-split
Split creating an EGL context in two parts
2015-07-19 09:42:56 +02:00
tomaka 7d1d035d9a Merge pull request #510 from robertknight/x11_xinput2
Use XInput2 for event handling
2015-07-18 19:03:13 +02:00
Pierre Krieger 4eacfce59e Split creating an EGL context in two parts 2015-07-18 18:43:23 +02:00
Ty Overby 5af2d6e84c Update events.rs 2015-07-15 09:37:15 -07:00
Robert Knight d960753360 Address code review feedback
* Fix an issue where PollEventsIterator::next() would fail to return
   keyboard input and mouse events immediately but instead only
   return them on the next call to next()

 * Inline process_generic_event() and queue_event()
2015-07-13 07:26:07 +01:00
tomaka a15d42069e Merge pull request #519 from tomaka/win32-err
Better win32 error messages
2015-07-09 11:06:51 +02:00
tomaka d3fd00968e Merge pull request #513 from meh/key-consistency
Fix some inconsistencies in VirtualKeyCode variant names
2015-07-09 11:06:44 +02:00
tomaka bb96e8a58a Merge pull request #511 from thelink2012/drop-win32
[0.3] DroppedFile event for Win32
2015-07-09 11:06:38 +02:00
Pierre Krieger bbd31608e8 Better win32 error messages 2015-07-09 08:55:29 +02:00
meh cd6577065f Fix some inconsistencies in VirtualKeyCode variant names 2015-07-02 09:52:44 +02:00
tomaka 836e53e55a Merge pull request #477 from rozaliev/feature/ios
[WIP] ios support
2015-06-29 09:29:46 +02:00
Robert Knight 573a7aeaf1 Report focus in/out events under X11
Fixes #377
2015-06-28 22:16:43 +01:00
Robert Knight edc95d554d X11 - Ignore scroll events that happen outside of Glutin windows
Scroll deltas are calculated in X11 by comparing the current and
previous absolute values for the scroll axis when a scroll motion
event is received. If the user scrolls whilst the cursor is outside
of the window then an incorrect delta is reported when the cursor
re-enters the window.

Fix this by resetting the last-seen axis values whenever the cursor
re-enters the window.
2015-06-28 22:09:26 +01:00
Robert Knight cb08d9b05b Remove XInput2 code for handling keyboard events
* For the moment we're still using plain core X11 events
   for handling keyboard activity, so remove the XInput2 code for that

 * Small refactoring of X11 input handling and documentation fixes
2015-06-28 21:55:54 +01:00
Robert Knight 94c31e42a4 Use XInput2 for event handling
This provides smooth scrolling for touchpad devices and will
enable support for touch events etc. in future.
2015-06-28 13:25:09 +01:00
Pierre Krieger 23f6f177fe Ignore errors generated by SwapBuffers on windows 2015-06-27 16:16:54 +02:00
Pierre Krieger 942e2a8e85 Fix fullscreen mode on X11 2015-06-26 17:13:22 +02:00
tomaka 86300dfb79 Merge pull request #500 from tomaka/no-error
Add support for the EGL_KHR_create_context_no_error extension
2015-06-26 11:34:14 +02:00
Pierre Krieger 29261c8b50 Fix the discovery of the WGL_EXT_swap_control extension 2015-06-25 20:29:10 +02:00
Pierre Krieger bff79c02ce Add support for the EGL_KHR_create_context_no_error extension 2015-06-25 09:35:58 +02:00
Denilson M. Amorim 826931e2c2 DroppedFile event for Win32 2015-06-23 19:05:37 -03:00
tomaka 40b84577c3 Merge pull request #497 from tomaka/robustness
Add with_robustness and handle robustness on all implementations
2015-06-23 16:46:52 +02:00
tomaka 717ea3d5ba Merge pull request #495 from tomaka/fix-multisampling
Makes sure that the pixel format has the same multisampling settings as the requirements
2015-06-23 16:46:49 +02:00
Victor Berger 2ac78cadf6 Update wayland dependency to 0.2. 2015-06-23 11:23:10 +02:00
Pierre Krieger dbaca24cde Add with_robustness and handle robustness on all implementations 2015-06-22 19:42:03 +02:00
Pierre Krieger 3c889636ad Makes sure that the pf has the same multisampling settings as the requirements 2015-06-21 13:07:24 +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
tomaka 90b28c2052 Merge pull request #486 from tomaka/context-error
Handle errors from MakeCurrent and SwapBuffers
2015-06-17 07:36:00 +02:00
ecoal95 0a1a7208c3 glx: Unbind the context if it's the current one 2015-06-17 06:29:25 +02:00
Pierre Krieger 39128dd7e1 Remove the is_closed function 2015-06-16 14:03:58 +02:00
Felix Kaaman bbaa129842 Add transparency support for cocoa. Closes #472 2015-06-16 11:29:17 +02:00
Pierre Krieger f6c26ec593 Handle errors from MakeCurrent and SwapBuffers 2015-06-16 10:44:44 +02:00
Felix Kaaman a8fef35dbf Make legacy functions crash on osx core contexts 2015-06-16 09:00:02 +02:00
tomaka e48c853b9c Merge pull request #484 from pinumbernumber/master
Implement transparency for X11
2015-06-16 08:52:29 +02:00
Robert Knight b2c2f300dc Correct MouseWheel doc comment.
Remove incomplete sentence and obsolete comment
about the meaning of the parameter.
2015-06-15 23:57:07 +01:00
pinumbernumber da4bcad6e3 Implement transparency for X11 2015-06-14 22:20:32 +01:00
Robert Knight 5b08220df5 Report scroll deltas in lines for non-touch devices on OS X
Scroll deltas on OS X may be reported either as pixel deltas
to scroll by if supported by the device or line/row deltas
otherwise.
2015-06-14 18:09:02 +01:00
Robert Knight 5e626b7fdf Correct typo in MouseScrollDelta docs 2015-06-13 23:22:51 +01:00
Robert Knight f0bab95c4d Express scroll deltas as either line or pixel deltas
Depending on the platform and device, scroll deltas may either
be represented as pixel deltas specifying the amount
in pixels to scroll or they may be expressed in 'lines' or 'chunks'
for low resolution devices (eg. a traditional mouse wheel).

Pixel deltas are currently available on OS X. X11 currently
supports only integer line deltas, though pixel deltas
are available via XInput2. Windows supports fractional
line deltas.
2015-06-13 23:19:31 +01:00
Evgeny Rozaliev 7053837ac1 [add] content scale 2015-06-08 12:26:42 +03:00
Pierre Krieger 30c525a5b1 Fix leaking color map and destruction of IM 2015-06-05 16:03:07 +02:00
Evgeny Rozaliev 84703027d6 [add] ios support 2015-06-05 16:38:35 +03:00
Jack Moffitt dbec1bf79d Switch to the official crates.
cocoa, core-foundation, and core-graphics are now on crates.io.
2015-06-03 23:06:54 -06:00
tomaka 70c88cf18f Merge pull request #475 from fkaa/cocoa-glcap
Add OS version detection on cocoa for selecting latest gl version. Fixes #470
2015-05-26 16:12:12 +02:00
Eduard Bopp 267b2c027a Fix set_cursor_state on X11
When the state is not changed, no code must be executed. Such no-ops previously
hit the unimplemented cursor hiding.
2015-05-25 21:01:39 +02:00
Felix Kaaman f74f0b52a3 Add OS version detection on cocoa for selecting latest gl version. Fixes #470 2015-05-24 17:37:41 +02:00
Pierre Krieger 9117bcf3d3 Switch to dwmapi 2015-05-24 09:10:45 +02:00
Pierre Krieger 81314f91d8 Add API for transparency and decorations and add support for win32 2015-05-24 09:10:44 +02:00
tomaka 1377f276b7 Merge pull request #469 from fkaa/cocoa-vsync
Fix vsync not being disabled by default in cocoa
2015-05-23 19:25:56 +02:00
Felix Kaaman e1ab181cdb Fix vsync not being disabled by default in cocoa 2015-05-23 18:35:47 +02:00
Pierre Krieger ead31e3ef8 Several WGL cleanups 2015-05-22 11:54:28 +02:00
Pierre Krieger 9c21899249 Fix the compilation on 32bits linux 2015-05-21 21:31:41 +02:00
Pierre Krieger 01ecd24fe2 Allow creating EGL contexts on win32 with the AMD DLLs 2015-05-21 18:59:30 +02:00
Pierre Krieger ea17038ac2 Detach wgl and win32 2015-05-21 16:47:19 +02:00
Avi Weinstock 966c2f2e54 fixup! Fix handling of numpad keys w.r.t. numlock (derived from fix mentioned at http://www.kaffe.org/pipermail/kaffe/2000-April/175201.html). 2015-05-18 13:02:23 -04:00
Avi Weinstock b6a63ad11f Fix handling of numpad keys w.r.t. numlock (derived from fix mentioned at http://www.kaffe.org/pipermail/kaffe/2000-April/175201.html).
Conflicts:
	src/api/x11/window.rs
2015-05-18 12:55:59 -04:00
Pierre Krieger 3376332a85 Rework the X implementation to use only one X connection 2015-05-17 19:33:07 +02:00
Pierre Krieger 848f6cd2a7 Fix GLX creating only 3.0 contexts 2015-05-16 11:37:58 +02:00
tomaka 129df983ce Merge pull request #452 from vberger/wayland
Implement Keyboard support for the wayland backend
2015-05-15 14:50:46 +02:00
Victor Berger 8150d1216e Implement most of the keysyms for wayland. 2015-05-15 13:04:23 +02:00
Victor Berger 178b7b133b UTF8 keyboard events for wayland. 2015-05-15 12:20:25 +02:00
Victor Berger 02bd3758ee Basic raw keyboard handling. 2015-05-14 21:46:29 +02:00
Victor Berger 1dc2cb27cf Do the linux backend choice only once at startup. 2015-05-13 17:31:34 +02:00
Victor Berger 9e489fee01 Update to new Platform structure. 2015-05-13 08:32:20 +02:00
Victor Berger 562d6cd1e3 Move WaylandContext in its own file. 2015-05-13 08:12:09 +02:00
Victor Berger 40322a2c69 Implement some more functions for wayland.
- set/get_inner_size()
 - set_title
2015-05-13 08:12:09 +02:00
Victor Berger 1278d9779d wayland: Fix MonitorID::get_dimensions() and fullscreen support. 2015-05-13 08:12:09 +02:00
tomaka 41af4406cb Merge pull request #448 from vberger/x-wayland-split
Make platform::linux generic over X11 and Wayland
2015-05-13 07:20:40 +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 b3044809c2 Fixes in EGL context creation 2015-05-12 21:28:56 +02:00
Mike Blumenkrantz 1519459471 implement get_platform_window() return for X11 2015-05-11 21:35:06 -04:00
Victor Berger a3921ea88a Continue wayland API: WindowProxy, MonitorID,
and some other little stuff.
2015-05-09 11:12:44 +02:00
Esption c973a1f83e Fixed build warnings 2015-05-08 12:31:56 -05:00
Esption 0d10dda72a Added mut so glutin can compile on nightly. 2015-05-08 06:35:38 -05:00
Daggerbot 68aff5ba0d Using x11_dl instead of x11. 2015-05-07 11:20:25 +00:00
Pierre Krieger 7ee416ab88 Make it work under the raspi 2015-05-07 13:49:33 +02:00
Pierre Krieger 2414f87ceb Make x11 dynamic 2015-05-07 13:14:09 +02:00
Victor Berger 1e0dd2290e Firsts steps of a wayland backend. 2015-05-06 23:30:45 +02:00
Daggerbot 9f13395cac Removed import of x11::xlib::xkb, which has been absorbed by x11::xlib. 2015-05-06 13:03:34 +00:00
tomaka 119bd6393f Merge pull request #405 from tomaka/win32-wheel
[Breaking change] Fix mouse wheel value on win32 and return a f64 instead of i32 in the MouseWheel event
2015-05-06 16:56:24 +02:00
tomaka 2d97e0380f Merge pull request #429 from tomaka/remove-headless
[Breaking change] Remove the "headless" feature entirely
2015-05-06 16:56:20 +02:00
Felix Kaaman 87e8018cf3 Add cursor grabbing on cocoa 2015-05-05 21:46:33 +02:00
Pierre Krieger 430ae43528 Remove the "headless" feature entirely 2015-05-04 18:36:26 +02:00
Sven Nilsen f68116fd76 Fix compiler errors on OSX
Closes https://github.com/tomaka/glutin/issues/425
2015-05-04 16:30:44 +02:00
Pierre Krieger ace4808fac Remove the "headless" feature 2015-05-04 07:48:42 +02:00
Tomaka17 de7b1aa2eb Basic implementation of emscripten 2015-05-03 10:24:42 +02:00
Kevin Butler 81d0dc97e1 Fix further compilation of cocoa 2015-05-02 06:41:36 +01:00
Pierre Krieger ad21d31b6b Fix compilation of cocoa 2015-05-02 06:56:47 +02:00
tomaka 4882a94080 Merge pull request #409 from kvark/core
GL core profile flag
2015-05-01 14:07:10 +02:00
Dzmitry Malyshau 171986c7e8 Introduced GlProfile enum 2015-05-01 07:32:48 -04:00
Pierre Krieger 0eaa8fd9eb Use the EGL API with Android 2015-05-01 09:44:35 +02:00
Dzmitry Malyshau a42f1f5833 Implemented gl_core flag 2015-04-30 22:50:15 -04:00
datalus 899e021666 Adding SWP_NOMOVE flag to prevent the window from moving to 0,0 when setting the inner size on Windows 8+ 2015-04-30 18:52:48 -05:00
Felix Kaaman c1ca5d1d87 Fix typo in cocoa module 2015-04-30 18:25:55 +02:00
Pierre Krieger aa58f4149a Add a GlContext trait 2015-04-30 16:57:07 +02:00
Pierre Krieger 36de5a5e5a Fix PixelFormat for x11, egl and win32 2015-04-30 16:15:37 +02:00
Felix Kaaman 80c49856b2 Add pixelformat for cocoa and remove individual color components 2015-04-30 15:53:27 +02:00
Pierre Krieger 9531174813 Rework EGL 2015-04-30 08:31:33 +02:00
Pierre Krieger d9f0d92584 Rework MouseWheel event and fix the values on win32 2015-04-29 14:35:09 +02:00
Pierre Krieger 9ed1a0ec19 Add a fallback on win32 if enumerate_arb_pixel_formats returns vec![] 2015-04-29 14:27:34 +02:00
Pierre Krieger d4dcff582e Extract headless context from api/win32 to platform/windows 2015-04-29 10:19:59 +02:00
Felix Kaaman f2bbb7d49c Add multisampling for cocoa, fixes #145 2015-04-27 15:46:31 +02:00
Pierre Krieger 7df4de2ce7 Use the shared_library crate instead of loading symbols manually 2015-04-27 14:31:26 +02:00
Pierre Krieger d3cc9064f4 Add libcaca backend 2015-04-26 17:26:48 +02:00
tomaka 2532357253 Merge pull request #398 from fkaa/cocoa-window-pos
Fix window position getters and setters on cocoa
2015-04-26 08:05:35 +02:00
Pierre Krieger 0417f7003f Allow using EGL with X11 2015-04-25 22:28:43 +02:00
Pierre Krieger 5561e58646 Split GLX and X11 in "api" 2015-04-25 12:10:40 +02:00
Felix Kaaman 32e14a9a0a Fix window position getters and setters on cocoa 2015-04-24 19:40:43 +02:00
tomaka 7eeb96909c Merge pull request #384 from fkaa/keypress-sound
Fix alert sounds on keypress for cocoa
2015-04-24 19:27:49 +02:00
Felix Kaaman 44e954895f Fix alert sounds on keypress on cocoa
Passing on keypress event to parent would make it think the event was
not consumed and emit an alert sound.
2015-04-24 15:53:02 +02:00
Pierre Krieger a72e06cf1b Reorganize the Linux implementation and split OSMesa and X11 2015-04-24 15:40:17 +02:00
Pierre Krieger 828500256c Add draft for the EGL API 2015-04-24 14:12:57 +02:00
Pierre Krieger 3ad7f9a584 Create reorganization 2015-04-24 09:51:23 +02:00
tomaka c1af76550f Merge pull request #391 from glennw/upstream-i3-vis
Add Expose event handler which is needed on some window managers.
2015-04-24 07:50:38 +02:00
Glenn Watson 4a83ab6e02 Set WM_CLASS based on initial window title. 2015-04-24 07:57:47 +10:00
Glenn Watson 0670b1ec2e Add Expose event handler which is needed on some window managers. 2015-04-24 07:32:36 +10:00
Tim Cuthbertson bc2472f32b Fix x11 XK_bracketright keycode 2015-04-22 11:06:47 +10:00
tomaka f81a430c6d Merge pull request #383 from tomaka/remove-deprecated
Remove functions marked as #[deprecated]
2015-04-19 11:29:29 +02:00
Pierre Krieger 1ec168fed0 Remove functions marked as #[deprecated] 2015-04-19 09:52:03 +02:00
Andrey Lesnikov 65c2884dc3 android: Updated for Rust be9bd7c93 2015-04-05 2015-04-18 21:12:40 +03:00
Felix Kaaman e294441049 Add mouse hiding and more cursors for Cocoa 2015-04-17 18:01:06 +02:00
Pierre Krieger 677e69fd3a Fix compilation on linux 2015-04-17 17:59:37 +02:00
tomaka 2d7a800aee Merge pull request #368 from Daggerbot/wip
Using `x11-rs` and `osmesa-rs`.
2015-04-17 17:42:46 +02:00
tomaka 079212961d Merge pull request #378 from bobakker/master
Fixes #358
2015-04-13 06:25:27 +02:00
Dzmitry Malyshau ac23d3114c Implemented get_pixel_format for X11 2015-04-12 13:45:41 -04:00
tomaka d5138d2708 Merge pull request #371 from tomaka/get-pixel-format
Adds get_pixel_format() to Window
2015-04-12 19:44:12 +02:00
Bo Bakker 53663d0ecc Fixes #358 2015-04-12 16:02:06 +02:00
Pierre Krieger b81cd0cd2f Fix get_primary_monitor on win32 2015-04-12 09:32:25 +02:00
Daggerbot c9194e922e Fixes for x11-rs/osmesa-sys conversion. 2015-04-11 18:17:49 -07:00
Pierre Krieger 1e94d85d35 Adds get_pixel_format() to Window 2015-04-11 09:06:08 +02:00
Daggerbot 2d20050b89 Using x11-rs and osmesa-rs. 2015-04-09 10:38:58 +00:00
Pierre Krieger 65f4809280 Add support for sRGB attribute and fix creation on windows 2015-04-08 09:44:19 +02:00
tomaka 41044c160a Merge pull request #364 from tomaka/x11-cursor-pos
Implement set_cursor_position() on X11
2015-04-08 09:03:36 +02:00
tomaka 3da91fbc92 Merge pull request #360 from SSheldon/delegate_refactor
Modify WindowDelegate to own its state
2015-04-07 21:58:55 +02:00
Pierre Krieger 5a31b2e438 Implement set_cursor_position() on X11 2015-04-07 21:54:53 +02:00
Pierre Krieger 80a9e2c316 Fix wait_events() not stopping when window is closed on X11 2015-04-06 16:47:39 +02:00
Steven Sheldon b87193c674 Modify WindowDelegate to own its state. 2015-04-05 20:56:58 -07:00
Bo Bakker 1a33192187 Fix OS X window closing bug 2015-04-04 01:00:10 +02:00
Pierre Krieger b99309bee2 Remove deprecated functions 2015-04-03 18:41:11 +02:00
tomaka 424cc5ea49 Merge pull request #347 from tomaka/win32-pixel-format-details
Fix missing parameter for pixel formats infos on win32
2015-04-03 13:54:20 +02:00
Steven Sheldon a65a4fd15a Removed unstable clone_from method so OSX can compile. 2015-04-03 02:30:29 -07:00
Pierre Krieger 0f7bd9071e Remove all features for 1.0 beta 2015-04-03 09:42:45 +02:00
tomaka 1c74614c4a Merge pull request #349 from binsoftware/update-rust-cocoa
updating use statements from recent rust-cocoa module changes
2015-04-03 08:15:13 +02:00
Ryan Stewart 348de5cbe4 updating use statements from recent rust-cocoa module changes 2015-04-02 15:19:51 -07:00
Pierre Krieger d33c138164 Rustup 2015-04-02 22:41:35 +02:00
Pierre Krieger 4d81cc2df1 Fix missing parameter for pixel formats infos on win32 2015-04-02 13:53:15 +02:00
tomaka aa97fac6ff Merge pull request #344 from tomaka/gles-win32
Add support for GLES on Win32
2015-04-02 13:22:59 +02:00
Pierre Krieger eabfa9e624 Add support for GLES on Win32 2015-04-02 11:17:14 +02:00
Pierre Krieger 8cf875434c Fix the default value for OpenGL flag again 2015-04-02 10:13:01 +02:00
tomaka e51b694d59 Merge pull request #340 from tomaka/winimpl-platform
Rename "winimpl" module to "platform"
2015-04-02 09:52:21 +02:00
Pierre Krieger eb430ff207 Fix default OpenGL debug flag being the opposite of what it should be 2015-04-02 09:06:33 +02:00
Pierre Krieger 414335e0fc Rename "winimpl" to "platform" 2015-04-02 08:27:32 +02:00
tomaka a0ac31b70f Merge pull request #338 from XMPPwocky/master
Fix WM_SETCURSOR
2015-04-01 19:41:26 +02:00
Nathaniel Theis e51dd82478 cursor state on w32 2015-04-01 10:12:53 -07:00
mitchmindtree ee2a5e4a2f Fixed error where rustc couldn't infer the type 2015-04-01 21:23:30 +11:00
Pierre Krieger 2089e9c476 Add draft for raw input 2015-03-30 13:12:37 +02:00
Pierre Krieger 9bef21048e Fix wrong grabbing rect 2015-03-30 12:56:08 +02:00
Pierre Krieger bae1e42b8b More work on win32 implementation 2015-03-30 11:42:19 +02:00
Pierre Krieger bb418efcc7 Partially implement cursor state on win32 2015-03-30 11:32:18 +02:00
Pierre Krieger 556e1b4caf Update for winapi 2015-03-30 05:58:13 +02:00
tomaka 9ce644618b Merge pull request #329 from tomaka/choose-pixel-format
choose_pixel_format now returns a Result
2015-03-28 20:40:46 +01:00
Pierre Krieger 697d42a64f choose_pixel_format now returns a Result 2015-03-28 20:17:30 +01:00
Steven Sheldon 0ef63cd9d3 Audit msg_send return types. 2015-03-28 08:55:50 -07:00
Pierre Krieger b27306f972 Fix compilation on win32 2015-03-28 11:07:41 +01:00
Pierre Krieger aaa1c76841 Fix compilation on x11 2015-03-28 10:30:46 +01:00
Pierre Krieger 3d692870e2 Change grab_cursor and ungrab_cursor to set_cursor_state 2015-03-26 17:15:18 +01:00
tomaka d6ebaaaf5c Merge pull request #227 from aepsil0n/grab-cursor
Implement grabbing of the mouse pointer for X11
2015-03-26 16:48:40 +01:00
Corey Farwell 82367772bb Fix typo in Window::get_position docs 2015-03-25 23:44:21 -04:00
Brendan Zabarauskas eeb314d3aa Merge pull request #321 from SSheldon/objc_lib
Use objc crate for Objective-C runtime functionality
2015-03-26 09:58:26 +11:00
Pierre Krieger cedc85c550 Rustup 2015-03-25 20:27:18 +01:00
Steven Sheldon 4b1cfe8801 Updated to use objc lib. 2015-03-25 10:08:42 -04:00
Eduard Bopp 18f9bc44c9 Implement grabbing of the mouse pointer for X11
Contains new methods in the Window API that closely mirror the Xlib API. The
methods are left unimplemented for other platforms for now.
2015-03-25 13:10:55 +01:00
tomaka 8c78cabcf2 Merge pull request #324 from binsoftware/win32-monitor
Win32 monitor handling
2015-03-25 06:17:35 +01:00
Cam Jackson 589c4d188a Fix compilation by replacing "range" with ".." syntax 2015-03-25 15:54:57 +11:00
Ryan Stewart 1c9c5c018a enumerate monitors in addition to adapters; this allows the MonitorID implementation to return a more useful monitor name, and the correct native monitor ID 2015-03-24 13:29:17 -07:00
Ryan Stewart 1c20ff87f1 honor top-left coordinates when requesting fullscreen to make sure window appears on the correct monitor 2015-03-24 13:25:24 -07:00
Brendan Zabarauskas 8a463f6643 Merge pull request #316 from binsoftware/cocoa-fixes
Cocoa fixes: memory leaks, monitor handling, is_current()
2015-03-24 18:33:53 +11:00
Sven Nilsen 9a5dd996cd Upgrade to latest Rust 2015-03-23 13:03:07 +01:00
tomaka a6485045f1 Merge pull request #318 from glennw/thread-wake-mac
Fix waking up mac event loop from thread.
2015-03-23 10:35:31 +01:00
Nicholas Bishop 3413a2d973 Fix compilation by replacing "range" with ".." syntax 2015-03-22 18:54:18 -04:00
Pierre Krieger 63f69d6f2f Rustup 2015-03-21 13:43:14 +01:00
Glenn Watson 918833b19f Fix waking up mac event loop from thread. 2015-03-20 08:06:46 +10:00
York Xiang 0be7b072f0 Update for latest Rust 2015-03-19 18:06:50 +08:00
Ryan Stewart cf630ec041 add and use IdRef::non_nil() instead of doing deref'd comparisons against nil 2015-03-18 14:49:16 -07:00
Ryan Stewart 1b2fd6e6d0 fix headless build by ensuring NativeMonitorId enum is available internally even without the window feature; add Eq/PartialEq to NativeMonitorId 2015-03-18 14:16:35 -07:00
Ryan Stewart 779f3ce888 fix X11 build issue due to missing import 2015-03-16 15:43:33 -07:00
Ryan Stewart 9cecb7ee55 implement Window is_current() for cocoa backend 2015-03-16 14:13:21 -07:00
Ryan Stewart 70776fab41 honor the passed-in MonitorID when using with_fullscreen() in cocoa backend 2015-03-16 14:13:21 -07:00
Ryan Stewart 9914d826b8 expose platform-native monitor identifier 2015-03-16 14:11:49 -07:00
Ryan Stewart 0fa5e541e8 handle retain/release on cocoa objects 2015-03-16 14:11:49 -07:00
Pierre Krieger daa086759c Redirect size_hint method to the underlying iterators 2015-03-16 13:50:23 +01:00
Pierre Krieger 330767d0c3 Pull all dependencies from crates.io 2015-03-13 21:24:59 +01:00
Pierre Krieger c61c33a833 Add set_cursor_position function 2015-03-10 10:29:07 +01:00
nwin 10490be8ba Fix scrolling wheel behavior on OSX
Fix regression introduced by #95b1c96 for the fix in #25fa4df
2015-03-05 11:54:48 +01:00
Pierre Krieger 689ace8b25 Add is_current function 2015-03-04 07:43:55 +01:00
Jan Niklas Hasse 4a56ac53de Fix doc 2015-03-02 00:01:36 +01:00
Pierre Krieger d091323b22 Minor changes in documentation 2015-03-01 14:07:50 +01:00
Pierre Krieger 4f98ea3128 Add a guard for the calls to MakeCurrent during initialization 2015-03-01 13:57:09 +01:00
Pierre Krieger cca23f8544 Add wrappers for safer error recovery during initialization 2015-03-01 13:41:00 +01:00
Pierre Krieger 65d5589e3c Fix various warnings 2015-03-01 13:18:36 +01:00
Pierre Krieger 36619ee40e Mark functions as unsafe instead of having a lot of blocks 2015-03-01 13:14:58 +01:00
tomaka 65046ffc41 Merge pull request #298 from andreasgal/master
Make headless rendering work on Mac OS X 10.10
2015-03-01 12:03:48 +01:00
Pierre Krieger 42d38e66ab Allow using non-hardware-accelerated pixel formats 2015-03-01 11:46:58 +01:00
Pierre Krieger 7ba8fdf3f3 Fix creating non-hardware-accelerated contexts 2015-03-01 11:07:46 +01:00
Pierre Krieger cf252c29b4 Use the WGL API to determine extended pixel format, plus fix creation 2015-03-01 10:33:25 +01:00
Bryan Bell 903c9b1aad Implement set_cursor for osx 2015-02-27 01:56:33 -08:00
Andreas Gal 9cb397fc92 simplify pixel format requirements for cocoa offscreen rendering 2015-02-23 22:42:06 +01:00
tomaka e04288f812 Do not call wglShareLists is ctxt is null 2015-02-23 15:37:23 +01:00
tomaka 6608cbb20c Fix win32 compilation 2015-02-23 14:46:47 +01:00
Andrey Lesnikov 2da557c0cc android: Updated to latest android-rs-glue 2015-02-22 22:58:08 +03:00
tomaka 07a584fd28 Merge pull request #290 from frewsxcv/cleanup
Various cleanup commits
2015-02-22 08:40:42 +01:00
mitchmindtree 246837adc8 Fix MouseMoved by checking for NSDrag events as well, closes #288 2015-02-22 15:58:37 +11:00
Corey Farwell 5ff649e5db Stop using deprecated CString::from_slice constructor 2015-02-21 18:32:05 -05:00
Corey Farwell 7fa19ab0df Remove deprecated 'allow' lint 2015-02-21 18:19:03 -05:00
Corey Farwell f4c9bd81bb Opt into features to silence warnings 2015-02-21 18:18:47 -05:00
Corey Farwell accf2f3cc3 Deref before matching
rust-guidelines encourages this
2015-02-21 18:07:35 -05:00
mitchmindtree 1055eed078 Removed as_slice_with_nul as CString now derefs to a CStr 2015-02-22 01:17:47 +11:00
mitchmindtree 0389c834e4 RingBuf -> VecDeque for other platforms, as_slice_with_nul -> as_bytes_with_nul 2015-02-22 00:40:23 +11:00
mitchmindtree 9bb41bf277 Fixed errors on latest nightly, RingBuf -> VecDeque 2015-02-21 23:59:37 +11:00
Ryan Stewart 25ce029cf6 expose the platform-specific window handle (currently Win only) 2015-02-20 12:33:25 -08:00
tomaka 8e1d0f7a97 Merge pull request #282 from tomaka/gl-api
Improve the OpenGL context request system
2015-02-19 21:55:15 +01:00
Pierre Krieger 1ee6f8fa1a Update for rustc 2015-02-19 20:18:50 +01:00
Pierre Krieger f4f84c6566 Improve the OpenGL context request system 2015-02-18 17:15:01 +01:00
Pierre Krieger ba7f2a923f Don't call MakeCurrent(null, null) when destroying 2015-02-18 09:00:00 +01:00
Pierre Krieger 1a33c9ce9f Extract load_opengl32_dll 2015-02-16 15:59:06 +01:00
Pierre Krieger 950fd58b77 Implement enumerate_arb_pixel_formats 2015-02-16 15:55:26 +01:00
Pierre Krieger d1bc85c011 Switch to create_context for the real context 2015-02-16 15:42:00 +01:00
Pierre Krieger 6bec85e0cc Implement better handling for pixel formats 2015-02-16 15:36:32 +01:00
Pierre Krieger dfbf2adf4a Extract and add create_context function 2015-02-16 15:07:03 +01:00
Pierre Krieger 353567b216 Start splitting win32::init into multiple functions 2015-02-16 13:58:48 +01:00
tomaka 40591806dc Merge pull request #274 from tomaka/cleanup
Cleanup crate root by moving headless and window to modules
2015-02-16 13:58:29 +01:00
tomaka 19debf3eb2 Merge pull request #277 from tomaka/win32-callback
Extract callback from win32/init.rs to its own module
2015-02-16 11:03:21 +01:00
tomaka cba56a208d Merge pull request #276 from tomaka/win32-headless
Extract win32 HeadlessContext to a "headless" module
2015-02-16 10:51:02 +01:00
Pierre Krieger 7f03400a2b Extract callback from win32/init.rs 2015-02-16 10:08:08 +01:00
Pierre Krieger 91c50ed046 Extract win32 HeadlessContext to a "headless" module 2015-02-16 10:01:47 +01:00
Pierre Krieger 94254521dc Style improvement in win32/event.rs 2015-02-16 09:53:01 +01:00
Pierre Krieger 009be2ab2b Cleanup crate root by moving headless and window to modules 2015-02-16 09:39:46 +01:00
tomaka 59220d35ce Fix poll_events returning None when it shouldn't 2015-02-12 18:42:02 +01:00
tomaka d1bf1e8ac0 Fix poll_events() blocking on win32 2015-02-11 15:34:08 +01:00
tomaka 4500702a02 Merge pull request #70 from tomaka/fix-iterators
Use platform-specific iterators instead
2015-02-10 22:34:18 +01:00
tomaka 4c8628ed67 Implement get_outer_size() on x11 2015-02-10 14:40:03 +01:00
Pierre Krieger e9a775c6b1 Implement win32 initialization in a cleaner way 2015-02-10 12:58:38 +01:00
Glenn Watson 95b1c96181 Mac: Use platform specific iterators. 2015-02-10 08:36:59 +01:00
Glenn Watson 8b3750ec3d Android: Use platform specific iterators. 2015-02-10 08:32:29 +01:00
Pierre Krieger 4bfcedad3e X11: use platform specific iterators instead 2015-02-10 08:31:31 +01:00
Tomaka17 49e3fbdd71 Win32: use platform-specific iterators instead 2015-02-10 08:27:52 +01:00
Glenn Watson 25fa4dfef6 Make the mouse wheel events match natural direction on osx. 2015-02-10 12:22:17 +10:00
Andrey Lesnikov 81dbaea29e android: Implemented color_bits and depth_bits 2015-02-08 02:32:29 +03:00
tomaka 6b52bf95a4 Merge pull request #254 from aepsil0n/mousebutton-renaming
Rename enum variants of MouseButton
2015-02-05 18:37:53 +01:00
Manish Goregaokar 256645cc3c Add some more support for X11 keys (partially fixes #251) 2015-02-05 22:28:54 +05:30
Eduard Bopp b2367fe2e6 Rename enum variants of MouseButton
With enums that are namespaced by default, it seems reasonable to be less
redundant in the variant naming here.
2015-02-05 16:52:53 +01:00
tomaka 03e9d78b3a Merge pull request #250 from bjz/osx-window
Add tempory fix for #248
2015-02-03 12:31:55 +01:00
Brendan Zabarauskas 4632e83156 Add tempory fix for #248 2015-02-03 22:17:59 +11:00
Akos Kiss e4469cfce7 Reorder the fields of XErrorEvent to match the struct layout found in recent Xlib.h
Fixes #244
2015-02-01 22:08:34 +00:00
tomaka be092183a6 Merge pull request #241 from tomaka/add-webgl
Add WebGL in the APIs list
2015-01-30 21:07:20 +01:00
Brendan Zabarauskas 9b530cdf40 Fix OSX build 2015-01-30 22:14:49 +11:00
Glenn Watson 1b73aeaa24 On some X11 driver implementations, calling XCloseDisplay from a different thread
causes memory corruption, resulting in a crash. Change window proxy to be a weak
reference so that the XCloseDisplay is always called from the main window.
2015-01-30 07:11:55 +10:00
Pierre Krieger 48ab960176 Add WebGL in the APIs list 2015-01-29 18:36:03 +01:00
Andrew Kelley 6a27fa9d26 fix for rust nightly 2015-01-28 12:43:44 -07:00
tomaka 1a9cf9bc5c Merge pull request #231 from bjz/osx-window
Implement some more Cocoa stuff
2015-01-26 10:55:35 +01:00
Brendan Zabarauskas 73078e0569 Rename osx->cocoa 2015-01-26 14:28:12 +11:00
Brendan Zabarauskas 44c21c4bbb Implement some more osx stuff 2015-01-26 14:22:50 +11:00
Peter Atashian 33cd252f99 Upgrade to latest winapi
Signed-off-by: Peter Atashian <retep998@gmail.com>
2015-01-25 21:52:17 -05:00
Brendan Zabarauskas 6b31fe9b1c {true, false}->{YES, NO} 2015-01-26 10:59:40 +11:00
tomaka f8c66ff2a9 Merge pull request #220 from tomaka/x11-vsync
Implement vsync for x11 and add vsync example
2015-01-25 12:56:15 +01:00
tomaka a2e03e7c15 Merge pull request #221 from tomaka/fix-rc
Fix race condition with XOpenIM
2015-01-25 12:55:58 +01:00
Andrew Kelley 02a57e0422 fix for latest rustc 2015-01-23 19:18:22 -07:00
Ms2ger 8005b012ce Fix a use-after-free in Android get_proc_address. 2015-01-23 19:24:42 +01:00
Pierre Krieger 56c6afd03c Fix race condition with XOpenIM 2015-01-23 11:10:23 +01:00
tomaka 36538b5634 Merge pull request #219 from bjwbell/remove-deadcode-warning
Remove deadcode warning in BuilderAttribs
2015-01-23 09:40:41 +01:00
Pierre Krieger b05ef16d81 Implement vsync for x11 and add vsync example 2015-01-23 09:33:22 +01:00
Bryan Bell 3e06c1c0e2 Remove deadcode warning in BuilderAttribs
In src/lib.rs remove the deadcode warning about the 'headless' builder
attribute. Headless is /actually/ set to false or true depending on if
HeadlessRendererBuilder is used.
2015-01-23 00:15:18 -08:00
Bryan Bell 6ea483dc78 Disable compiler unstable warnings
To cleanup the compiler output when building, disable
warnings about using unstable crates/features.
2015-01-22 23:40:17 -08:00
tomaka 1d6b863cd4 Merge pull request #217 from glennw/context-fallback
Some GPU/driver combinations have glxCreateContextAttribsARB present, bu...
2015-01-22 21:37:07 +01:00
Glenn Watson de3f354566 Fix log prefix 2015-01-23 06:01:22 +10:00
Glenn Watson 19475f8521 Some GPU/driver combinations have glxCreateContextAttribsARB present, but it fails with an X error. In this case, catch the X error and fall back to the old method of creating a context. 2015-01-22 12:07:31 +10:00
Josh Matthews e12e4bf38f Fix OS X build. 2015-01-21 10:58:08 -05:00
Akos Kiss 935e5a36a2 c_char isn't always i8 2015-01-20 21:49:23 +00:00
Brendan Zabarauskas 4d12d3ea3d Merge pull request #214 from bjz/osx-window
Move osx delegate stuff into separate type
2015-01-20 22:38:25 +11:00
Brendan Zabarauskas de8fe684e7 Move osx delegate stuff into separate type 2015-01-20 08:12:53 +11:00
tomaka d48ccb381a Merge pull request #213 from tomaka/permanent-iterators
Iterators returned by wait_events and poll_events are now persistent
2015-01-19 13:46:30 +01:00
Pierre Krieger 8fcd676714 Iterators returned by wait_events and poll_events are now persistent 2015-01-19 13:11:33 +01:00
Brendan Zabarauskas a203385e76 if letify 2015-01-19 22:35:34 +11:00
Glenn Watson 213f8b8534 Fix android API 2015-01-19 11:59:34 +10:00
Glenn Watson fd5e77f23e Add missing get_api stubs.
Add hidpi_factor() support for retina displays.
Fix Resize and MouseMoved events to handle retina displays.
Fix inverted y position for MouseMoved events on mac.
Fix initial painting on retina display.
2015-01-19 11:54:11 +10:00
Brendan Zabarauskas 1891764afd Clean up pattern matches 2015-01-18 20:22:33 +11:00
Brendan Zabarauskas f8f2950afd Remove unnecessary inner method 2015-01-18 20:11:52 +11:00
James Gilles 75c14c5213 Remove AsciiExt import, s/uint/u32/, delete some files I accidentally
committed (whoops)
2015-01-17 21:13:57 -05:00
James Gilles 211a326036 Merge PixelPirate's changes and fix merge conflicts 2015-01-17 20:42:44 -05:00
Bryan Bell e7e66b057d Change &mut self to &self in set_cursor 2015-01-17 08:28:52 +01:00
Pierre Krieger 3ce5fd08a8 More OS/X fixes 2015-01-15 21:01:09 +01:00
Pierre Krieger c3b2f45ca3 More OS/X fixes 2015-01-15 20:49:03 +01:00
Pierre Krieger 7652cc5860 Blind attempt to fix the OS/X build 2015-01-15 20:20:52 +01:00
Andrey Lesnikov 5a589b1783 android: Fixed depth buffer 2015-01-15 10:05:19 +03:00
Andrey Lesnikov 5a4fee967a x11, android, win32: [ui]size, [u]int -> [ui]32 2015-01-13 16:23:30 +03:00
Andrey Lesnikov d11f63a749 Fixed android: Added 'MouseCursor' import 2015-01-13 13:58:05 +03:00
tomaka 05a03fb6a1 Merge pull request #192 from bjwbell/mouse-cursors
Add mouse cursor support
2015-01-13 10:43:46 +01:00
Bryan Bell 0fba0a9a73 Code review comments
- Revert version back to 0.0.4
- Add comment that set_cursor has no effect on Android
2015-01-13 01:23:34 -08:00
Bryan Bell 5389c73b85 Fix OS X & Win32 builds 2015-01-12 19:45:20 -08:00
Bryan Bell 995bd37c78 Change uint/int to usize/isize
From https://github.com/rust-lang/rfcs/pull/544 the types uint/int were
renamed to usize/isize.
2015-01-12 19:33:31 -08:00
Bryan Bell 95f0990074 Refine X11 cursor selections
For MouseCursor::Cell, NotAllowed, NoDrop, Grab, Grabbing, ... set the
appropriate X11 cursor.

Also alphabetize the cursors listed in the MouseCursor enum.
2015-01-12 19:00:45 -08:00
Bryan Bell b532b8c65f Add mouse cursor support
Add a new api, window.set_cursor, for setting the cursor. The enum MouseCursor lists the possible cursors.

Only X11 is implemented. On OSX, Android, & Win32 the window.set_cursor function
either does nothing or calls the "unimplemented!" macro.
2015-01-12 16:22:37 -08:00
Sam Ward 879f61dbbc OSX compatibility for Rust 1.0 alpha 2015-01-10 01:56:47 -08:00
Pierre Krieger 469d0eafd1 Update for rust alpha 1.0 2015-01-10 08:23:20 +01:00
Andrey Lesnikov dbe38ff49a android: Updated for Rust ea6f65c5f 2015-01-06 2015-01-08 20:57:04 +03:00
Pierre Krieger 3920cd5e80 Merge remote-tracking branch 'cybergeek94/master' into update-rustc
Conflicts:
	examples/support/mod.rs
	src/lib.rs
	tests/headless.rs
2015-01-08 12:58:58 +01:00
Austin Bonander 8d9133d331 Update to latest Rust nightly 2015-01-08 03:45:46 -08:00
Pierre Krieger dbdb43f077 Update for Rustc 2015-01-08 09:28:22 +01:00
Pierre Krieger 885d5e9c38 Update for Rustc 2015-01-05 14:39:58 +01:00
Mike Dilger 53482b2a46 fix for Iterator now using associated types 2015-01-05 16:06:16 +13:00
Andrey Lesnikov 2b7e74d55a android: Updated for rust fc2ba1393 2015-01-03 2015-01-04 21:49:30 +03:00
Pierre Krieger 4c5e430dd3 Update for Rustc 2015-01-03 23:15:39 +01:00
Ty Overby a698146943 Change the way that events are represented.
The bulk of this commit is changing instances of Vec to RingBuf which is
optimized for the push_back() / pop_front() strategy that is used
internaly in the event system.

The glutin custom iterators are now just wrappers around the RingBuf
iterator type.  This will bring the running time of iterator traversal from
O(n^2) to O(n) because shifting-on-delete won't be performed.
2015-01-01 23:44:02 -08:00
Pierre Krieger c956559a51 Add missing with_* functions 2014-12-31 07:34:27 +01:00
Pierre Krieger e1b5d9c103 Add build_strict function on builders 2014-12-31 07:34:26 +01:00
Pierre Krieger b9710f05a9 Unify WindowBuilder and HeadlessRendererBuilder for easier implementations 2014-12-31 07:34:26 +01:00
Patrick Horlebein 0e64651db8 Removed NSOpenGLPFAOpenGLProfiles enum in favor of the one defined in the AppKit bindings 2014-12-30 17:02:49 +01:00
Patrick Horlebein b0dddb2d3f Fixed missing std::ascii::AsciiExt import 2014-12-30 17:01:37 +01:00
Pierre Krieger b9a6366f96 Update for changes in Send/Sync traits 2014-12-30 08:20:50 +01:00
Patrick Horlebein 09cf026a9d Minor match clause cleanup 2014-12-29 13:46:44 +01:00
Patrick Horlebein 1b0064f9f7 Fixed deprecation warnings 2014-12-29 13:27:24 +01:00
Patrick Horlebein 86af6b6387 Started adding support for selection OpenGL versions on OS X. Needs issue #176 to be fixed. 2014-12-29 13:26:44 +01:00
Andrey Lesnikov 9a5f02984d android: Implemented basic poll_events() 2014-12-26 01:29:54 +03:00
Andrey Lesnikov e441247d61 Removed 'extern crate gl_generator' 2014-12-26 01:28:48 +03:00
Pierre Krieger 7f6f4f8d04 Update for gl_generator's changes 2014-12-24 08:12:10 +01:00
tomaka 6b0dd62681 Merge pull request #170 from tomaka/update-rustc
Update for rustc
2014-12-23 17:18:08 +01:00
Pierre Krieger dbb82968ba Update for rustc 2014-12-23 17:12:29 +01:00
Glenn Watson bd28ebb34f Fix passing visibility through for mac. 2014-12-23 10:08:50 +10:00
Pierre Krieger faf5812d05 Fix win32 build without the "window" feature 2014-12-20 18:49:57 +01:00
Michael Powell 6e9969ccc0 Add semicolons after macro invocations, as required by the latest nightly. 2014-12-19 21:34:20 -08:00
Glenn Watson f8d3b232a5 Add support for visible parameter on mac. 2014-12-19 08:44:45 +10:00
Glenn Watson f2d112213b Add experimental attribute since this API will need to be cleaned up. 2014-12-19 05:44:47 +10:00
Glenn Watson fa5cb66cff Add resize example, fix warnings, make callback an option so it can be removed. 2014-12-19 05:44:47 +10:00
Glenn Watson 0ad9c3d453 Add callback function to allow resize messages to be sent on mac. 2014-12-19 05:44:20 +10:00
tomaka 0164449955 Merge pull request #161 from glennw/thread-proxy
Introduce a WindowProxy for accessing a subset of functionality
2014-12-18 20:36:37 +01:00
Glenn Watson 95f82927b3 Change todo to unimplemented 2014-12-19 05:00:43 +10:00
tomaka 9434811328 Merge pull request #164 from glennw/scroll-wheel
Add scroll wheel events for mac.
2014-12-18 08:03:41 +01:00