Commit Graph

649 Commits

Author SHA1 Message Date
Camilla Löwy 0ac013381b X11: Fix CJK IME input when locale CTYPE is "C"
Fixes #1587.
Fixes #1636.

(cherry picked from commit 4381b86b6b)
2020-02-13 22:03:51 +01:00
Camilla Löwy 64c7aa50d0 Start 3.3.3 2020-02-13 22:01:33 +01:00
Camilla Löwy 0a49ef0a00 Update OpenGL bits of build documentation slightly
This removes most references to GLU, replaces the legacy CMake cache
variables for OpenGL with the modern namespaced target and switches to
$() for command substitution.

Fixes #1580.

(cherry picked from commit d973acc123)
2020-01-19 23:43:31 +01:00
Camilla Löwy ad12b97acd Update changelog and add credit
Related to #1602.

(cherry picked from commit 13479ed27d)
2020-01-17 15:51:05 +01:00
Camilla Löwy e53538010a Win32: Fix scancode when key message only had VK
Some synthetic key messages come with a scancode of zero, causing them
to be translate to GLFW_KEY_UNKNOWN.  This fills in the missing scancode
by translating the provided virtual key.

Rather than further complicate a single-use function, its body is merged
into the key message handler.

Fixes #1623.

(cherry picked from commit 789a2bcb39)
2020-01-17 15:46:40 +01:00
Camilla Löwy ec28696994 Check scancode before use in glfwGetKeyName
(cherry picked from commit 5f1631cb0e)
2020-01-17 15:46:18 +01:00
Camilla Löwy 8552152f80 Win32: Fix no Super key release event after Win+V
The Win+V hotkey brings up a clipboard history IME that consumes the key
release.  This adds left and right Super to the modifier keys manually
polled for undetected release during event processing.

Fixes #1622.

(cherry picked from commit 562c17d131)
2020-01-17 15:44:45 +01:00
Camilla Löwy 85172703db Cocoa: Add fully dynamic loading of Vulkan loader
If the application is not linked against the Vulkan loader and relies on
a third-party loader library or glfwGetInstanceProcAddress, then our
call to dlopen will fail without a custom dyld environment variable.

This adds a fallback of looking in the directory of the main executable,
which matches the bundle structure recommended by the Vulkan SDK, making
that finally work out of the box for fully dynamic loading.

(cherry picked from commit 7da87aaae7)
2020-01-17 15:42:39 +01:00
Camilla Löwy d33084447d Cocoa: Select Vulkan surface extension at runtime
This mostly just follows the pattern established by X11.

Related to #1619.

(cherry picked from commit 15d91801b7)
2020-01-17 15:40:48 +01:00
Camilla Löwy 977e2b51b0 Update changelog
This is a fix relative to 3.3.1 but not 3.3.

Related to #1620.
2020-01-14 21:29:07 +01:00
Camilla Löwy 487e0419a7 X11: Fix BadMatch focusing a window on non-EWMH WM
When the WM does not support EWMH or there is no WM running, GLFW falls
back to XSetInputFocus, which will emit BadMatch if the window is not
viewable, which will terminate the program.

Bug spotted on IRC.

(cherry picked from commit aa5e313561)
2020-01-12 17:54:49 +01:00
Camilla Löwy 0938462616 Start 3.3.2 2020-01-05 14:50:14 +01:00
Camilla Löwy ecda86fa4f X11: Fix no window position events during resize
A window resize action that also resulting in the window being moved did
not emit any window positions events, as the position of real
ConfigureNotify events was ignored.  The real events use parent
coordinates instead of root coordinates so this adds parent tracking and
conditional translation.

Fixes #1613.

(cherry picked from commit fe57e3c292)
2020-01-01 17:24:44 +01:00
Camilla Löwy 359f0e103c Update changelog and add credit
(cherry picked from commit bf292f0083)
2020-01-01 01:55:35 +01:00
Camilla Löwy 9fc5fd1375 Cocoa: Replace display link with IOKit query
This removes the final dependency on CoreVideo, using a display link to
get the refresh rate of monitors where Core Graphics report a refresh
rate of zero.  Instead we now query the I/O registry directly, similarly
to what the display link does at creation.

Thanks to @OneSadCookie for pointers to this solution.

(cherry picked from commit 4ec7daf3e9)
2019-12-31 23:10:11 +01:00
Camilla Löwy ccb54c3e05 NSGL: Remove problematic swap interval workaround
Fixes #1483.

(cherry picked from commit 54e8e0b092)
2019-12-31 23:08:05 +01:00
Camilla Löwy 94bb2a138e X11: Fix updating GLFW_FLOATING on a hidden window
(cherry picked from commit 9db156421f)
2019-12-19 06:56:58 +01:00
Camilla Löwy 85a27e9f74 X11: Fix invalid read when clearing GLFW_FLOATING
(cherry picked from commit 0b652a44d2)
2019-12-19 06:56:27 +01:00
Camilla Löwy 8dd40f1c48 X11: Fix maximization of hidden windows
This fixes glfwMaximizeWindow having no effect on hidden windows by
manually appending the maximization states to the EWMH state property.

(cherry picked from commit 4837b78ffe)
2019-12-19 06:56:14 +01:00
Camilla Löwy 2b1e2d2e49 Fix typo
(cherry picked from commit 7e03bce138)
2019-12-19 06:49:59 +01:00
Luflosi 39c5e90d94 Fix typo
Fixes #1601.

(cherry picked from commit ac30ef3e0c)
2019-12-19 06:49:54 +01:00
Camilla Löwy 365321a9af Add dependency name hints to CMake error messages
Fixes #1605.

(cherry picked from commit a43f545677)
2019-12-19 06:49:44 +01:00
Camilla Löwy e135210cb3 NSGL: Fix disabling of Retina resolution
It appears the default is now YES.

Fixes #1442.

(cherry picked from commit fa60269245)
2019-12-19 06:38:22 +01:00
Camilla Löwy 2da4adce40 Cocoa: Fix pre-window-creation event processing
Polling the event queue before NSApp had been allowed to finish
launching, in our case by starting our self-terminating run loop,
triggered an assertion inside NSApplication.

This fix, which makes all event processing functions capable of starting
it, makes that assertion less likely.

A more Cocoa-friendly fix would be to finish launching NSApp during
glfwInit and let people annoyed by the menu bar disabled it with
GLFW_COCOA_MENUBAR.  That may not be suitable for 3.3-stable, though.

Fixes #1543.

(cherry picked from commit 6e6805000a)
2019-12-19 06:37:23 +01:00
Camilla Löwy df4bda44fc Wayland: Fix pointing hand cursor shape
Related to #1432.

(cherry picked from commit 80fde12fda)
2019-12-03 17:19:14 +01:00
Camilla Löwy 129a5ccb19 Cocoa: Process events after window destruction
On macOS a destroyed window remained on screen until the next time
events were processed.  This makes the behavior more consistent with
other platforms.

Fixes #1412.

(cherry picked from commit c819f27ce3)
2019-11-14 21:33:48 +01:00
Camilla Löwy 399c082033 X11: Fix content scale fallback value on KDE
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)
2019-11-05 18:03:11 +01:00
Camilla Löwy 1bf892f603 X11: Fix decoration enabling after window creation
This fixes the enabling of window decorations after creation.  Instead
of removing the _MOTIF_WM_HINTS property, we now set or unset the
MWM_DECOR_ALL bit of the decorations field.

Fixes #1566.

(cherry picked from commit 5fc4c01302)
2019-11-05 18:02:03 +01:00
Camilla Löwy 91c6a542ff Cleanup
Related to #1585.

(cherry picked from commit 04f7f55f07)
2019-11-05 18:01:05 +01:00
Pablo Prietz 411d4dd51e Fix CMake 3.0 - 3.6 support regression
Replaces `VERSION_GREATER_EQUAL` with `VERSION_EQUAL OR
VERSION_GREATER`.  `VERSION_GREATER_EQUAL` was only added in CMake 3.7.

Fixes #1584.
Closes #1585.

(cherry picked from commit 4d0ae4ffa7)
2019-11-05 18:00:50 +01:00
Camilla Löwy 161e9e1215 Update changelog
(cherry picked from commit 36c547875c)
2019-11-05 17:59:27 +01:00
Corentin Wallez afcefcb5f7 Fix -Wextra-semi warnings
Closes #1440.

(cherry picked from commit 3a37a08998)
2019-11-05 17:59:15 +01:00
Camilla Löwy 857951419a Use HTTPS for Discourse forum
(cherry picked from commit 1e20218b3d)
2019-11-05 17:59:03 +01:00
Camilla Löwy 17f1cceb32 Add credit
Related to #1576.

(cherry picked from commit 545f409592)
2019-11-05 17:58:59 +01:00
Camilla Löwy a1b65e8542 Cocoa: Fix glfwSetWindowSize anchor point
This makes glfwSetWindowSize use the top-left corner as anchor point
instead of the bottom-left corner.

Fixes #1553.

(cherry picked from commit 7f02898264)
2019-09-23 15:27:00 +02:00
Camilla Löwy 934f0e9ff1 Update changelog and add credit
Related to #1556.

(cherry picked from commit 26aac53e1d)
2019-09-23 15:26:43 +02:00
Camilla Löwy 30e67357be Win32: Fix GLFW_MAXIMIZED not maximizing window
The window rect adjustment for content scale broke the initial, correct
maximization performed when creating the window with WS_MAXIMIZE.  This
switches to updating the restored rect instead of the current rect.

Fixes #1499.
Closes #1503.

(cherry picked from commit 711b9694a1)
2019-09-23 15:25:51 +02:00
Camilla Löwy 1e8dc836a0 Fix Vulkan triangle test segfault on resize
The command buffer handle was not reset after being freed on window
resize, leading to a segfault when the stale handle was used.

(cherry picked from commit 65748fb8f3)
2019-09-23 15:25:28 +02:00
Camilla Löwy b1309dd42a Add credit
(cherry picked from commit b0692d73ddb66461549cda0a009f867dab9de0fd)
2019-07-22 23:26:02 +02:00
Camilla Löwy 8e923e592d Documentation work
[ci skip]

(cherry picked from commit a4d910b4a7)
2019-07-16 14:41:23 +02:00
Leon Linhart 9fc035a562 Win32: Fix cursor enter/position event order
This fixes the cursor enter event being emitted after the first cursor
position event on Windows.

Closes #1490.

(cherry picked from commit 4f0b8b0dda)
2019-07-16 14:41:16 +02:00
Camilla Löwy ce7cd3e288 Add credits
(cherry picked from commit 7bd0af3089)
2019-07-16 14:41:10 +02:00
Camilla Löwy 248e827673 Win32: Fix symbol redefinition warnings
When both GLFW_INCLUDE_VULKAN and VK_USE_PLATFORM_WIN32_KHR were
defined, the GLFW header would define replacement versions of APIENTRY
and WINGDIAPI /before/ including the Vulkan header, which would include
windows.h, which (justifiably) defines APIENTRY and WINGDIAPI blindly.

Fixes #1524.

(cherry picked from commit 773f4495f0)
2019-07-16 14:40:52 +02:00
Camilla Löwy 95e7ad7e5b Update changelog
Related to #1528.

(cherry picked from commit 5bea122211)
2019-07-16 14:40:39 +02:00
Camilla Löwy 5416e347ad Enable CMake policy CMP0077 where available
This will let higher-level projects override GLFW CMake options with
normal variables instead of having to use cache variables.

This means with CMake 3.13 and later you can now do:

set(GLFW_BUILD_TESTS ON)
add_subdirectory(path/to/glfw)

Instead of the more verbose:

set(GLFW_BUILD_TESTS ON CACHE BOOL "" FORCE)
add_subdirectory(path/to/glfw)

(cherry picked from commit 71e6ff386d)
2019-05-27 16:34:40 +02:00
Camilla Löwy 4d99045e87 Add credit
Related to #1480.

(cherry picked from commit 57bf6b2f75)
2019-05-19 18:32:28 +02:00
Camilla Löwy 9cc83cf07f X11: Fix CMake not checking for XInput2 headers
Fixes #1480.

(cherry picked from commit 090b16bfae)
2019-05-19 18:27:06 +02:00
Camilla Löwy e826f839a4 Update changelog and add credit
(cherry picked from commit 42a3e4434f)
2019-05-19 18:27:01 +02:00
Camilla Löwy a9343d641c Start 3.3.1 2019-04-16 14:48:16 +02:00
Camilla Löwy b079610962 Documentation work 2019-04-16 01:40:30 +02:00
Camilla Löwy 186e9372d5 Add credit 2019-04-16 01:05:57 +02:00
Camilla Löwy 3c3981a4f0 Cocoa: Fix coordinate transformations
Window relative mouse locations provided via NSWindow and NSEvent are
based at 0,1 while screen relative locations use 0,0.  Incorrect
handling of this had crept into other coordinate transformations.  Note
that most of these errors canceled each other out, so the reported
positions of windows, monitors and work areas are unaffected.  This
corrects the cursor position for glfwGetCursorPos and glfwSetCursorPos.

Fixes #1461.
2019-04-15 14:52:17 +02:00
Camilla Löwy d7e30b1c74 Replace glad and the Vulkan SDK with glad2
This removes all dependencies from the GLFW test programs on the Vulkan
SDK.

It also removes support for linking the GLFW shared library (dynamic
library, DLL) against the Vulkan loader static library.
2019-04-15 02:45:48 +02:00
Camilla Löwy 422bf79e8f Documentation work 2019-04-05 03:26:52 +02:00
Camilla Löwy 6e382c9b7f Add credit 2019-04-01 18:23:21 +02:00
Camilla Löwy 8055dad7e4 Update changelog and add credit 2019-03-05 20:22:00 +01:00
Camilla Löwy a43d1a4937 Documentation work
Fixes #920.
Related to #1322.
2019-03-05 16:59:46 +01:00
Felipe Ferreira da Silva be295ccbea Add glfwGetMonitorWorkarea
This function retrieves the work area rectangle of the specified
monitor.

Related to #920.
Closes #989.
2019-03-05 16:10:59 +01:00
Camilla Löwy 1155c83013 Rename raw input to raw mouse motion, cleanup
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.
2019-02-22 13:04:11 +01:00
Nathan Poirier 9e29f556fd Add GLFW_RAW_INPUT and glfwRawInputSupported
This adds runtime per-window control of whether accelerated or raw mouse
motion is provided when the cursor is disabled.

Fixes #1400.
Closes #1401.
2019-02-22 13:04:11 +01:00
Camilla Löwy e2fa82ffbb Cleanup
Related to #1431.
2019-02-13 23:21:05 +01:00
Camilla Löwy 463ef7eb71 Cocoa: Fix handling of analog joystick buttons
The reported state was not clamped to [0,1], i.e. GLFW_RELEASE and
GLFW_PRESS.

Fixes #1385.
2019-01-31 01:54:49 +01:00
Camilla Löwy 51ca41dd9f Cocoa: Add missing IOHID page and usages
Related to #1385.
2019-01-31 01:53:55 +01:00
Camilla Löwy 530b37f4db Cocoa: Disable automatic tabbing for GLFW windows
Related to #1250.
2019-01-31 00:20:24 +01:00
Camilla Löwy 78e6a0063d X11: Fix EWMH state update for hidden windows
The EWMH window state code assumed the window was mapped.

Fixes #1358.
2019-01-31 00:02:16 +01:00
Camilla Löwy 55b1a16f90 Remove window requirement for all event functions
This lets an application wait for non-window events without needing to
create a window.

Fixes #1317.
2019-01-15 19:28:17 +01:00
Camilla Löwy 9a9568212c Cocoa: Move slightly towards modern Objective-C 2019-01-10 23:20:56 +01:00
Camilla Löwy 72c3908e14 X11: Fix glfwSetWindowMonitor not flushing buffer 2019-01-02 21:55:30 +01:00
Camilla Löwy cde0aaaab1 X11: Fix glfwSetWindowMonitor not updating hints
This makes glfwSetWindowMonitor update the WM_NORMAL_HINTS when resizing
non-user-resizable windowed mode windows.
2019-01-02 21:55:30 +01:00
Camilla Löwy c90c7b9710 Add credit
Related to #1383.
2018-12-26 15:22:36 +01:00
Camilla Löwy 1635fe2826 Cleanup
Put the non-client painting related message cases with the client ones
so that they can be happy together.

Related to #1383.
2018-12-26 15:22:20 +01:00
Camilla Löwy 3531c320af Fix glfwSetGamma generating ramps of invalid sizes
This makes glfwSetGamma generate a gamma ramp of the same size as the
monitor's current ramp, which will avoid failure on non-256 entry
monitors on X11 and avoid ramp interpolation on macOS.

Closes #1387.
Fixes #1388.
2018-12-26 15:00:39 +01:00
Camilla Löwy a533c9b3ca Add credit
Related to #1387.
2018-12-26 14:59:31 +01:00
Camilla Löwy 91c1ff1b7d Cleanup 2018-12-25 21:40:48 +01:00
Keith Bauer c4903d9267 Cocoa: Fix half of all key events for Caps Lock
This adds reporting of those Caps Lock key events that cause the lock
state to change.

The full fix involving IOHID is being worked on in #1368.

Related to #1368.
Closes #1373.
2018-12-25 21:39:48 +01:00
Camilla Löwy cf0857f79a Add credit 2018-12-25 20:52:58 +01:00
Emmanuel Gil Peyrot cc3552465d x11: Add a mention of #1366 in the ChangeLog. 2018-11-03 14:20:16 +01:00
meditator d9466050d9 X11: Fix missing check for NET_WM_STATE
Closes #1356.
2018-11-01 17:26:51 +01:00
Camilla Löwy 5595fa3ae6 Cocoa: Fix OpenGL rendering not being displayed
Fix based on information provided by @rcgordon.

Fixes #1334.
Closes #1346.
2018-10-26 16:24:16 +02:00
Camilla Löwy fac7d531ec Update changelog 2018-10-21 15:04:27 +02:00
Emmanuel Gil Peyrot cc805c0963 Mir: Remove this experimental backend
As of the release of Mir 1.0, libmirclient has been deprecated[1] and
its developers recommend clients using it to switch to Wayland.  This
patch removes support for libmirclient and instruct users to use the
experimental Wayland backend instead.

[1] https://discourse.ubuntu.com/t/mir-news-28th-september-2018/8184
2018-10-05 11:59:26 +02:00
Camilla Löwy 3238f2291f Update changelog
Related to #1316.
2018-08-30 13:47:54 +02:00
Camilla Löwy 018ab7229b Add credit 2018-08-09 19:03:57 +02:00
Doug Binks 0be4f3f75a Add GLFW_FOCUS_ON_SHOW window hint and attribute
This adds a window hint and attribute for controlling whether
glfwShowWindow gives the specified window input focus in addition to
making it visible.

Fixes #1189.
Closes #1275.
2018-05-29 15:51:36 +02:00
Camilla Löwy ab3bfb4205 Cocoa: Update MoltenVK support for LunarG SDK
GLFW now checks for the libvulkan.1.dylib loader instead of what is now
the ICD.  This removes checking for libMoltenVK.dylib to avoid cryptic
errors.  This unfortunately also breaks compatibility with the
standalone MoltenVK SDK.

This also removes support for the static loader library as that is not
present in the LunarG SDK.

Related to #870.
2018-03-01 21:45:46 +01:00
Camilla Löwy 77879736af Cocoa: Event polling did not initialize AppKit
Fixes #1218.
2018-03-01 02:23:27 +01:00
Ahmad Fatoum f940a97500 Linux: Add support for kernels < v2.6.39
Broke build for me on CentOS-6, which sports a 2.6.32 kernel:
http://www.cpantesters.org/cpan/report/d956d128-0339-11e8-b0d1-b6c4abd39192

CentOS-6 is supported till 2020-11-30.

Closes #1196.
2018-02-07 16:46:58 +01:00
Corentin Wallez 8a8eefa0d8 Fail Vulkan surface creation if window has context
OpenGL / OpenGL ES cannot share presentation on a window with Vulkan.
This adds an error to `glfwCreateWindowSurface` when it is called on a
window without the GLFW_CLIENT_API hint set to GLFW_NO_API.  This
prevents undefined bahevior and hard to debug crashes.

Fixes #1194.
Closes #1205.
2018-01-30 19:25:17 +01:00
Camilla Löwy 2c1fc13ee4 Update changelog 2018-01-09 20:36:13 +01:00
ocornut 20b12204af Win32: Fix GLFW_FOCUSED hint being ignored
The window was activated by _glfwPlatformShowWindow, causing the
GLFW_FOCUSED window hint to be ignored when set to false.

Fixes #1179.
Closes #1180.
2018-01-09 20:36:13 +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 370eac3c48 Add glfwSetWindowContentScaleCallback
Related to #677.
Related to #1115.
2018-01-09 18:00:22 +01:00
Camilla Löwy ac94014ef8 Update changelog and add credit 2018-01-05 11:35:44 +01:00
Camilla Löwy 7c2c7858c6 Add monitor and joystick user pointers 2017-12-19 15:08:28 +01:00
Camilla Löwy 9da2285b14 Cocoa: Make frame autosave hint a string 2017-12-19 15:08:28 +01:00
Camilla Löwy 6158801aeb Change glfwInitHintString to glfwWindowHintString
Fixes #1139.
2017-12-19 15:08:27 +01:00
Camilla Löwy 18ee28bf82 Add credits 2017-12-19 15:08:26 +01:00
Emmanuel Gil Peyrot c3cba58a71 Remove trailing whitespace 2017-12-14 15:36:55 +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
Camilla Löwy b8df6ae3c1 Finish deprecating charmods callback 2017-12-06 18:01:32 +01:00