Commit graph

195 commits

Author SHA1 Message Date
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
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
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
Pierre Krieger
a97cbd1729 Attempt to fix issues with sRGB 2015-07-25 15:11:29 +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
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
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
bb96e8a58a Merge pull request #511 from thelink2012/drop-win32
[0.3] DroppedFile event for Win32
2015-07-09 11:06:38 +02:00