This replaces the hardcoded keycode ranges and various kludgy range
checks with the actual ranges reported by Xlib and XKB.
(cherry picked from commit ee45b58647)
This fixes the issue where function keys would be reported as
GLFW_KEY_UNKNOWN if XKB was available and one of the configured keyboard
layouts was Arabic.
This is only part of #1598, because the full patch removed parts of the
fallback path for when XKB is unavailable.
Closes#1598.
(cherry picked from commit a41a58a95e)
KDE sometimes removes the Xft.dpi resource when it would be set to the
X11 default value of 96, causing GLFW to fall back to a value calculated
from the core display sizes in pixels and mm in a desktop environment
that supports Xft.dpi.
This moves to a hardcoded fallback value of 96 on the assumption that
there are more people running KDE with 96 DPI than there are people
running desktop environments that do not support Xft.dpi.
All of this is terrible please send help.
Fixes#1578.
(cherry picked from commit 75294462b3)
For users with multiple keyboard layouts configured, glfwGetKeyName
works fine only with the primary layout. Switching layouts results in
changing the group index. This commit querries the current group index
when initializing keyboard input and keeps track of any change to it.
As a result the scancode -> keyname mapping may change while the program
is running (needs to be documented).
Fixes#1462.
Closes#1528.
(cherry picked from commit 36f90800d8)
The EWMH feature detection atoms are now named and loaded the same way
as other X11 atoms. Detection is now performed after all
non-conditional atoms have been loaded. The EWMH detection now has
hopefully more readable comments.
(cherry picked from commit fad9896d38)
Files built for Win32 must use C89 style declarations for compatibility
with VS 2010 and 2012, which are still supported by GLFW.
(cherry picked from commit 56aad76b16)
This intersects the global work area from _NET_WORKAREA with the monitor
viewport. The monitor viewport falls back to the core display
dimensions where working RandR is missing. The _NET_WORKAREA query is
now checked for success. The _NET_WORKAREA extent array is now indexed
by _NET_CURRENT_DESKTOP. The _NET_WORKAREA atom is now checked for
availability.
Related to #1322.
This adds glfwGetWindowContentScale and glfwGetMonitorContentScale for
querying the recommended drawing scale factor for DPI-aware rendering.
Parts of this patch are based on code by @ferreiradaselva.
Fixes#235.
Fixes#439.
Fixes#677.
Fixes#845.
Fixes#898.
This completes support for window framebuffer transparency on Windows,
macOS and X11. Note that the hint/attribute may be renamed before
release to clarify its relationship to GLFW_OPACITY.
Fixes#197.
Closes#1079.
Related to #663.
Related to #715.
Related to #723.
Related to #1078.
This adds the native access functions glfwSetX11SelectionString and
glfwGetX11SelectionString under GLFW_EXPOSE_NATIVE_X11. They are
similar to glfwSetClipboardString and glfwGetClipboardString but operate
on the PRIMARY selection.
The primary selection is widely used in X11, and so seems important to
support. Primary selection is mostly an X11-specific thing, hence it's
exposed as an X11 native interface.
Fixes#894.
Closes#1056.
Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
The code blindly expected UTF8_STRING for files. It did not downgrade
based on source protocol version. It did not handle hostnames in
text/uri-list data. It did not specify the source time stamp when
converting the selection. It did not search the XdndTypeList when
necessary. It did not ignore sources that specified invalid versions.
While better, this is still not fully conformant. Hostnames are not
validated and it does not guard against source crashes.
Fixes#968.