tomaka
342d5d8587
Remove api_transition macro ( #279 )
...
* Remove api_transition macro
* Rename Window2 to Window
* Try fix X11 code
2017-09-06 17:32:24 +02:00
tomaka
2a4b381384
Update iOS for EventsLoop design ( #275 )
...
* Inline gen_api_transition! in the ios module
* Event loop proxy work
* Monitors
* Use freestanding functions
* Finish conversion
2017-09-04 12:41:10 +02:00
tomaka
fe1deb83ae
Update Android code with EventsLoop ( #272 )
...
* Update Android code with EventsLoop
* Fix run_forever
2017-09-04 12:41:02 +02:00
Pedro Côrte-Real
5b57b73fe8
Remove dead code causing warnings ( #278 )
2017-09-04 08:45:56 +02:00
tomaka
3d1c18ded9
Events loop backend ( #269 )
...
* Don't use UNIX_BACKEND in Window2::new
* Move get_available_monitors and get_primary_monitor to EventsLoop
* Remove UNIX_BACKEND
* Restore choosing the Linux backend
* Return a XNotSupported for new_x11()
* Fix fullscreen example
2017-09-01 11:04:57 +02:00
tomaka
e65cacbc86
Use a sync::Barrier on win32 to sync threads instead of a channel ( #271 )
2017-08-31 19:45:17 +02:00
Victor Berger
1b22e39fb2
wayland: internal event buffer & wait for xdg configure ( #255 )
2017-08-31 19:43:24 +02:00
tomaka
7dc6fcdedc
Rework MonitorId::get_native_identifier ( #267 )
...
* Rework MonitorId::get_native_identifier
* Try fix compilation
* Returns the monitor ID on wayland as well
* Try fix compilation
* Fix iOS compilation
2017-08-30 08:49:18 +02:00
Pedro Côrte-Real
60b575a7c1
Get rid of FullScreenState::get_monitor()
2017-08-29 02:53:13 +01:00
Pedro Côrte-Real
9693f7caa9
Convert new fullscreen API in all platforms
2017-08-29 02:16:16 +01:00
Pedro Côrte-Real
1382adbf11
Unify fullscreen and fullscreen_windowed APIs
...
Use the enum to make a single fullscreen API that's much more
consistent. Both set_fullscreen() and with_fullscreen() take the
same enum and support all the variations so you can build the window
however you want and switch between the modes at runtime.
2017-08-29 01:36:24 +01:00
Pedro Côrte-Real
b35c4a5ee5
maximized/fullscreen as noops for other platforms
2017-08-28 02:23:55 +01:00
Pedro Côrte-Real
eff04394c9
Slight maximize/fullscreen X11 cleanup
2017-08-28 02:23:55 +01:00
Pedro Côrte-Real
1d97a2a506
Implement Windowed Fullscreen
...
There are two kinds of fullscreen. One where you take over the whole
output the other where you just set the window size to the screen
size and get rid of decorations. The first one already existed,
implement the second which is more common for normal desktop apps.
Use an enum to consolidate all the fullscreen states.
2017-08-28 02:23:55 +01:00
Pedro Côrte-Real
a4052b8693
Add window maximization API
...
Implement a simple API to set a window to maximized. Implement it
only for the X11 backend.
2017-08-28 01:28:42 +01:00
Lloyd Cunningham
f81d6ddf93
Derive Clone for CreationError
2017-08-23 20:52:06 -05:00
tomaka
200ef9c307
Merge pull request #244 from robsaunders/mac-file-drag-and-drop
...
Mac file drag and drop
2017-08-18 11:35:19 +02:00
tomaka
63fdc3f903
Merge pull request #241 from rukai/add-windows-virtual-key-codes
...
Add missing windows virtual key codes
2017-08-07 07:59:51 +02:00
Lloyd Cunningham
24f5b0b591
Derive Clone for MonitorId
2017-08-05 18:15:50 -05:00
Osspial
786666aca8
Revise Mutex+Convar implementation based on PR feedback
2017-08-05 02:51:30 -04:00
Osspial
657860a233
Re-implement resize patch using Mutex + Convar
2017-08-05 02:07:58 -04:00
Osspial
d2034b1700
Add null terminator to custom events
2017-08-02 20:50:55 -04:00
Osspial
13bd116891
Fix laggy rendering when resizing win32 window
2017-08-02 20:49:50 -04:00
tomaka
a582df443b
Merge pull request #229 from swiftcoder/master
...
Implement raw mouse movement for Mac
2017-08-02 15:30:58 +02:00
tomaka
718e0f8551
Merge pull request #247 from zpgaal/issue_240_simple
...
Issue 240 alternative fix
2017-07-31 19:32:33 +02:00
zpgaal
d868510cc8
Comment to describe message order
2017-07-31 18:00:29 +02:00
Benjamin Saunders
c508d68d1d
Fix evdev emulated scroll events
...
When X's evdev input module is configured to emulate scroll events (as
used with e.g. trackpoints), it generates non-emulated scroll button
presses and does not generate motion events. This is contrary to the
behavior of all other hardware I've tested, and contrary to the
behavior of libinput, but nonetheless should be supported.
2017-07-30 11:40:52 -07:00
Tristam MacDonald
15c4641758
Unwrap axis id in raw mouse motion on Mac
2017-07-29 08:11:46 -07:00
Tristam MacDonald
6820e2a826
Implement raw mouse motion for Mac
2017-07-29 08:04:37 -07:00
Tristam MacDonald
ed761bef7d
Also hide the cursor when grabbed
2017-07-29 08:04:37 -07:00
gzp
c57ec33c00
also call default window handle on wm_close
2017-07-28 13:12:16 +02:00
gzp
28cdce99c0
replace wm_destroy by wm_close
2017-07-28 13:09:50 +02:00
Umur Gedik
d65d9950f2
Fixes window inner size calc for hidpi windows X11
...
X11 always return the geometry in pixel units. Since
window.get_inner_size returns the size in points in other window manager
implementations X11 should also return in points instead of pixels.
2017-07-27 14:04:04 +09:00
Rob Saunders
06e01e4cb3
Added event for cancelling a drag and drop.
2017-07-27 10:56:34 +08:00
Rob Saunders
5f00028f6b
Mac module emits the winit events DroppedFile and HoveredFile.
2017-07-27 10:51:00 +08:00
Rob Saunders
4ef7c71c66
Initial drag and drop support for Mac OS, printing filenames to stdout.
2017-07-27 00:59:42 +08:00
Lucas Kent
32eea41b1b
add missing windows virtual key codes
2017-07-24 20:21:04 +10:00
Victor Berger
8d5b23d56c
Update wayland-window to support xdg_shell
2017-07-19 18:28:14 +02:00
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