This renames 'raw input' to 'raw mouse motion' as there are other kinds
of raw input. The update path is restructured to avoid reinitializing
all of disabled cursor mode. Modification of shared state is moved out
into shared code. Raw mouse motion is disabled by default for
compatibility.
Related to #1401.
click events would have an incorrect position after changing workspace,
if the mouse didn't move in between.
(Another example where this matters is a new window, if it appears under
the cursor, clicking would lead the application to think the user clicked
at 0,0)
This adds the GLFW_SCALE_TO_MONITOR window hint for automatically
resizing the content area of a window to the requested size times the
monitor content scale each time it is placed on a new monitor. This
only applies to windowed mode windows and includes the initial placement
at window creation.
This hint only has an effect on platforms where screen coordinates and
pixels always map 1:1 such as Windows and X11. Platforms like macOS
instead change the resolution of the framebuffer independently of the
window size.
Related to #676.
Related to #1115.
Allow window creation despite video mode setting failure.
Video mode setting failure is ignored the rest of the time and the
desired video mode has never been a hard constraint anyway.
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.
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.
Don't advertise native functions in public API guides. Don't list
primary selection access as most notable new feature. Don't have
different levels of abstraction among selection helper functions. Don't
forget to take credit.
Related to #1056.
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.
X11 event processing currently discards events that can not be mapped to
a current GLFW window. However, this breaks clipboard functionality by
failing to respond to SelectionRequest and SelectionClear events.
This commit moves processing of these important clipboard events to
before the NULL window test so that they are always considered.
Fixes#961.
Closes#963.
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.
These window properties do no harm if they're declared even if the WM
doesn't support them. This makes GLFW slightly more tolerant of WM
changes as well as things like Ubuntu Unity reading _NET_WM_ICON without
declaring support for it.