Emmanuel Gil Peyrot
a80788c17f
Wayland: Don’t update cursor position in the frame
...
That way the application only sees the cursor moving when it is inside
of its area, it won’t go back to the top or left side when trying to
resize the window or just hovering the fallback decorations.
2019-11-21 13:53:08 +01:00
Emmanuel Gil Peyrot
a9f674e719
Wayland: Don’t reload the cursor on every pointer motion
...
Previously, any pointer motion in the window decorations when using the
fallback implementation would obtain the wl_cursor again, and do the
attach danse for no benefit.
This will ultimately allow animated cursors to not reset to the first
frame on motion, once these will be implemented.
2019-11-21 13:52:37 +01:00
Camilla Löwy
56aad76b16
Add C dialect reminders to each source file
...
Files built for Win32 must use C89 style declarations for compatibility
with VS 2010 and 2012, which are still supported by GLFW.
2019-05-24 14:43:49 +02:00
Emmanuel Gil Peyrot
599fb3de34
Wayland: Remove wl_shell support
...
This protocol is part of the core Wayland, but it is pretty badly
designed and is missing quite a few features, and is in the process of
being phased out in compositors. Its support in GLFW requires
duplicating pretty much every single window management codepath.
This bumps the required compositor versions to the ones which have
implemented xdg-shell, approximately two years ago, which seems sensible
to me.
2019-04-20 10:05:15 +02:00
Camilla Löwy
a337c56848
Start 3.4
2019-04-16 23:08:39 +02:00
Camilla Löwy
3461d1c2a5
Fix missing context APIs in version strings
2019-04-08 20:51:34 +02:00
Emmanuel Gil Peyrot
5f9cbd0ebc
Wayland: keyboard repeat rate is given in Hz
...
It was currently interpreted as ms, which is obviously wrong.
Thanks to https://github.com/Smithay/client-toolkit/pull/62 for making
me notice this issue.
2019-02-20 15:56:04 +01:00
Emmanuel Gil Peyrot
c08abffc50
Wayland: Implement clipboard copy
2018-10-24 14:03:08 +02:00
Emmanuel Gil Peyrot
8b54e28c4e
Wayland: Implement clipboard paste
2018-10-24 14:03:08 +02:00
Emmanuel Gil Peyrot
3c4b9a7eef
Wayland: Add boilerplate for clipboard handling
2018-10-24 14:03:08 +02:00
Ricardo Vieira
92b3fd02e5
wayland: save serial from all input sources
2018-10-24 14:03:08 +02:00
emersion
5afcd0981b
wayland: add support for XCURSOR_THEME and XCURSOR_SIZE
...
These can be set by the compositor or the user to configure the
xcursor theme and size.
2018-10-11 00:58:23 +02:00
Emmanuel Gil Peyrot
dcd2a19d90
Wayland: Add support for xdg-decoration
...
This allows compositors which prefer to draw the decorations around
clients to do so, rather than letting GLFW draw its own decorations.
The appearance is thus entirely subject to the compositor used, but
should generally be better than the current solid colour decorations we
have, which we continue to use when the compositor doesn’t support this
protocol or tells us to draw the decorations ourselves.
This new protocol has been tested against wlroots’s rootston compositor.
Fixes #1257 .
2018-10-01 16:37:24 +02:00
Emmanuel Gil Peyrot
4d3f0fb5df
Wayland: Split long lines for function declaration
2018-09-29 18:11:13 +02:00
Emmanuel Gil Peyrot
e0b83bbe8d
Wayland: Use HiDPI cursors on decorations
2018-09-11 14:28:44 +02:00
Emmanuel Gil Peyrot
321062833a
Wayland: Load a bigger cursor theme for HiDPI
2018-09-11 14:28:44 +02:00
Emmanuel Gil Peyrot
5ea6e6cda2
Wayland: Add support for animated standard cursors
2018-09-09 13:12:20 +02:00
Emmanuel Gil Peyrot
dede6d6886
Wayland: Add a timerfd for animated cursors
2018-09-09 13:12:20 +02:00
Emmanuel Gil Peyrot
685f2a5f91
Wayland: Close forgotten timerfd on terminate.
2018-09-09 13:12:20 +02:00
Greg V
0a3c4f5d80
Add support for Wayland on FreeBSD and other OSes
2018-03-27 22:03:37 +02:00
Emmanuel Gil Peyrot
0d4534733b
Wayland: Destroy subcompositor and viewporter on terminate
2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
a8e551cffa
Fix resizing and moving under xdg-shell
2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
9f7ec6b094
Implement window decorations
2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
9dc18a62a6
Rename wl_pointer to pointer
2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
5b65b9b860
Prevent a crash when giving focus to a non-GLFWwindow surface
2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
552e40a4be
Add wl_subcompositor support
2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
79e16baca3
Add wp_viewporter support
2018-02-25 16:54:44 +01:00
Emmanuel Gil Peyrot
d6b9d00ceb
Wayland: Handle monitor removal
2018-02-24 22:18:39 +01:00
Emmanuel Gil Peyrot
608f055c72
Wayland: Open the timerfd with cloexec
2018-02-24 21:06:25 +01:00
Emmanuel Gil Peyrot
84d10b32c3
Wayland: Ask xkbcommon whether to repeat a key
2018-02-24 21:06:25 +01:00
Emmanuel Gil Peyrot
8bc0c5c2c0
Wayland: dlsym() xkb_keymap_key_repeats
2018-02-24 21:06:25 +01:00
Emmanuel Gil Peyrot
97bf16e5b6
Wayland: Check for wayland protocol version
...
wl_keyboard version 4 is more recent than the libwayland available in
Ubuntu 14.04.
2018-02-24 21:06:25 +01:00
Emmanuel Gil Peyrot
90f5edc0b8
Wayland: Use a timerfd for key repeat
2018-02-24 21:06:25 +01:00
Emmanuel Gil Peyrot
c14a35e21e
Wayland: Obtain keyboard repeat_info
...
This had to bump the seat version, we now may get the seat name but we
don’t do anything with it.
2018-02-24 21:06:25 +01:00
Camilla Löwy
53b193a161
Wayland: Fix uninitialized variable warning
...
Related to #1143 .
Fixes #1197 .
2018-02-06 13:10:41 +01:00
Emmanuel Gil Peyrot
525ad7bfb8
Close the libwayland-cursor handle after destroying the cursor theme
...
Fixes a segfault on glfwTerminate().
2018-01-29 04:55:55 +01:00
Emmanuel Gil Peyrot
14856e8b60
Wayland: Bind, listen and destroy xdg_wm_base
2018-01-29 03:59:47 +01:00
Emmanuel Gil Peyrot
440e7e36f3
Fix typography of error messages
2018-01-29 02:34:10 +01:00
Emmanuel Gil Peyrot
407a3e2860
Load libwayland-cursor at runtime
2018-01-29 02:34:10 +01:00
Emmanuel Gil Peyrot
5fbf4ddde8
Load libwayland-egl at runtime
2018-01-29 02:34:10 +01:00
Emmanuel Gil Peyrot
6e69f63ffa
Use the _glfw_dlopen/dlsym/dlclose define
2018-01-29 02:26:12 +01:00
Emmanuel Gil Peyrot
eb732457ea
Prevent a race between surface destruction and focus
...
The Wayland protocol is asynchronous, by the time we destroy a surface,
the compositor may have sent a wl_keyboard::enter or wl_pointer::enter
events which now point to no surface, yet we receive it after.
To prevent this race, we can just ignore any enter event targetting a
NULL surface.
Fixes #1150 .
2018-01-29 02:03:24 +01:00
Emmanuel Gil Peyrot
93186e4999
Wayland: Fix glfwTerminate segfault on failed init
...
Closes #1172 .
2018-01-09 22:13:28 +01:00
Camilla Löwy
ee9dffcd66
Add GLFW_HOVERED for polling cursor hover state
...
This window attribute corresponds to the cursor enter/leave callback.
Fixes #1166 .
2018-01-09 18:02:52 +01:00
Camilla Löwy
8dab9f6ab1
Wayland: Clarify assertion
...
Related to #1143 .
2017-12-13 21:57:32 +01:00
Camilla Löwy
0e8c4ea7ce
Add lock key modifier bits input mode
...
This adds the GLFW_MOD_CAPS_LOCK and GLFW_MOD_NUM_LOCK modifier bits.
Set the GLFW_LOCK_KEY_MODS input mode to enable these for all callbacks
that receive modifier bits.
Fixes #946 .
2017-12-06 18:01:34 +01:00
Emmanuel Gil Peyrot
65166858ff
Wayland: Add support for the idle-inhibit protocol
...
Closes #955 .
2017-11-20 22:27:37 +01:00
Emmanuel Gil Peyrot
d18431338a
Wayland: Disable the compose key on old xkbcommon
2017-11-20 18:24:30 +01:00
Emmanuel Gil Peyrot
cc87d5ab10
Wayland: Assert that we only get a known axis
2017-11-20 18:06:29 +01:00
Emmanuel Gil Peyrot
a7a70cf34d
Wayland: Add dynamic loading of libxkbcommon
2017-10-30 12:01:17 +00:00
Emmanuel Gil Peyrot
0019f7a45e
Wayland: Stop crashing when Compose is unavailable
...
There was a missing check for when no Compose key was configured in the
xkb file, making _glfw.wl.xkb.composeState NULL and crashing on key
press.
Closes #1059 .
2017-08-13 21:25:22 +02:00
Camilla Löwy
549308051d
Linux: Update joystick API in version strings
2017-08-09 12:20:51 +02:00
pengo
4884232360
Wayland: Update serial on button callback
...
The serial needs to be update for starting operations like moving and
resizing a window.
Closes #992 .
2017-04-13 03:59:49 +02:00
Camilla Löwy
aaf2800c9c
Add internal TLS support
...
Related to #970 .
2017-03-19 00:52:46 +01:00
Camilla Löwy
67a55efa27
Add null joystick backend
...
This prepares the X11 backend to support other joystick APIs, for
example the FreeBSD libusb one.
2017-02-01 03:07:25 +01:00
Camilla Löwy
f474b6da85
Wayland: Fix missing scancode for Space key
...
Fixes #936 .
2017-01-26 17:02:10 +01:00
Camilla Löwy
04f559e28d
Restructure monitor enumeration
...
This way is both kinder on event-based enumeration and less work to
unwind allocations for when properly implementing GLFW_OUT_OF_MEMORY.
2017-01-02 06:03:02 +01:00
Emmanuel Gil Peyrot
046d281abc
Wayland: Implement compose key for character input
...
This commit has been copied almost verbatim from Bryce Harrington’s
patch against Weston’s toytoolkit[1]. He gave his agreement to
relicense it under zlib[2].
[1] https://patchwork.freedesktop.org/patch/114661/
[2] https://github.com/glfw/glfw/pull/879#issuecomment-252988257
2016-10-16 13:51:59 +01:00
Emmanuel Gil Peyrot
a49601ba87
Wayland: Rename snake_case identifiers to camelCase for consistency
2016-10-12 14:13:52 +01:00
Emmanuel Gil Peyrot
aa10ec6e45
Wayland: Replace all deprecated xkbcommon aliases.
2016-10-11 01:49:23 +01:00
Emmanuel Gil Peyrot
be935debe9
Wayland: Properly unref all xkbcommon objects.
2016-10-11 01:49:23 +01:00
Emmanuel Gil Peyrot
1c8a74b661
Wayland: Properly destroy all bound objects.
2016-10-11 01:49:23 +01:00
Emmanuel Gil Peyrot
2eb1657d91
Wayland: Only input a character on GLFW_PRESS action
...
Closes #804 .
2016-09-13 13:09:25 +09:00
Camilla Berglund
e6a32db7b9
Cleanup
2016-09-07 16:49:29 +02:00
Camilla Berglund
f17d60da64
Add scancode arrays for Wayland and Mir
...
Related to #830 .
2016-09-07 16:33:41 +02:00
Camilla Berglund
53fafad915
Start 3.3
2016-08-18 23:55:49 +02:00
Camilla Berglund
d5e00e6b0f
Initialize context creation APIs on demand
2016-07-20 13:10:51 +02:00
Camilla Berglund
797ee8d8e3
Move all cursor positioning to platform code
...
Due to Wayland, shared code cannot rely on cursor positioning being
supported by the underlying platform.
This implicitly fixes #617 as it moves cursor centering into
_glfwPlatformSetCursorMode, thus separating it from the stale value of
_glfw.cursorWindow.
Fixes #617 .
2016-05-29 15:33:49 +02:00
Jonas Ådahl
cb08dc574c
wayland: Implement 'DISABLED' cursor mode
...
This implements support for the 'DISABLED' cursor mode, which
effectively means locking the pointer to the surface. The cursor is also
explicitly hidden.
This adds two new build dependencies: wayland-scanner and
wayland-protocols.
Closes #708 .
2016-02-22 12:36:34 +01:00
Jonas Ådahl
cf6c11cfaa
wayland: Only set surface buffer scale when supported
...
Although very unlikely, the wl_compositor version might not support
wl_surface.set_buffer_scale while the wl_output emits a wl_output.scale
that is larger than 1. So for correctness, bail on changing the buffer
scale if we won't be able to set it later.
2015-12-27 10:46:23 +08:00
Emmanuel Gil Peyrot
06479ba535
Wayland: Implement HiDPI support
...
Windows now keep track of the monitors they are on, so we can calculate
the best scaling factor for them, by using the maximum of each of the
monitors.
The compositor scales down the buffer automatically when it is on a
lower density monitor, instead of the previous way where it was scaling
up the buffer on higher density monitors, which makes the application
look much better on those ones.
2015-12-27 10:35:46 +08:00
Camilla Berglund
2b52008405
Check Linux joystick init on Wayland and Mir
2015-12-13 14:51:44 +01:00
Camilla Berglund
12b6c56903
Add suffixes to platform specific helper functions
...
Also merge win32_tls.h into win32_platform.h.
2015-12-13 14:50:59 +01:00
Camilla Berglund
580c7da559
Make Wayland and Mir backends use key LUTs
2015-11-12 15:06:46 +01:00
Ricardo Vieira
e8f3de0f2e
Implement glfwCreateStandardCursor for Wayland
...
Closes #620 .
2015-10-24 23:31:11 +02:00
Camilla Berglund
0eccf75f65
Replace GL booleans with public macros
2015-10-13 00:46:02 +02:00
Camilla Berglund
95a07f3340
Start 3.2
2015-10-12 21:59:49 +02:00
Camilla Berglund
b00a7d0619
Simplified version string functions.
2015-06-02 03:32:29 +02:00
Camilla Berglund
ef6dec17ba
Added missing entries to Linux version strings.
2015-06-02 03:32:28 +02:00
Camilla Berglund
38ae319bea
Header inclusion cleanup.
2015-05-28 01:52:22 +02:00
Emmanuel Gil Peyrot
e253beaa2b
wayland: Implement glfwGetCursorPos
...
Closes #499 .
2015-04-19 13:27:43 +02:00
BrandonSchaefer
4674ed367d
Fix some memory leaks.
...
One in wl_init.c, need to clean up Joysticks.
Finish getting the monitor modes set up.
Finish adding Unsupported error messages.
2014-11-10 02:00:14 +01:00
Jonas Ådahl
4dd669661b
wayland: Coding style cleanup
...
Fixes * positioning, indentation and newline inconsistencies.
2014-09-28 21:54:09 +02:00
Jonas Ådahl
b1033a3443
wayland: Default to 32 cursor image size
...
This is the default across various toolkits (weston, GTK+ for example)
so lets stick to that.
2014-09-28 21:51:12 +02:00
Ricardo Vieira
25204b1ec7
wayland: Support for setting a cursor image
...
Closes #346 .
2014-09-09 16:38:47 +02:00
Ricardo Vieira
a7c9ca3b43
wayland: Release input focus when window is destroyed
...
This fixes a seg. fault on the reopen test because events might occur
after the window is destroyed (for example leave events).
2014-07-26 21:55:43 +01:00
Ricardo Vieira
08dccc390d
wayland: Remove unused code
2014-07-10 22:05:54 +01:00
Jonas Ådahl
2230a68e42
wayland: Follow _glfwInputChar() type change
2014-06-30 09:09:33 +02:00
Jonas Ådahl
9ac854b7bb
wayland: Add keyboard support
...
Adds libxkbcommon as a dependency when enabling the Wayland backend.
2014-06-29 23:21:06 +02:00
Jonas Ådahl
a75cf5a163
wayland: Add basic input support
2014-06-29 23:18:40 +02:00
Jonas Ådahl
4c68049d86
wayland: Fix indentation
2014-06-29 23:18:40 +02:00
Camilla Berglund
1127c0e6e5
Renamed Wayland files to match prefix.
2014-04-08 17:47:38 +02:00