Commit Graph
971 Commits
Author SHA1 Message Date
Kovid Goyal 296f512bfb Forgot you cant use sizeof on arrays passed as function parameters 2019-12-28 08:44:32 +05:30
Kovid Goyal c8f20d0edf Ensure key name is null terminated 2019-12-28 08:33:13 +05:30
Kovid Goyal 286f3630d7 Merge branch 'macos_fix_keyboard_shortcut_encoding' of https://github.com/Luflosi/kitty 2019-12-28 08:26:03 +05:30
Luflosi 38423505b1 Remove numpad keys from macOS keyboard shortcuts
See previous commit message for the reason.
2019-12-27 15:12:26 +01:00
Luflosi 9a3c621eb6 Fix macOS keyboard shortcut encoding
`glfwGetCocoaKeyEquivalent()` in `glfw/cocoa_window.m` expects the returned characters to be of type `unichar`, which won't work for all unicode characters because it is defined as `unsigned short` according to https://developer.apple.com/documentation/foundation/unichar?language=objc, which is only guaranteed to be at least 16 bits in size. The code calling this function also expects the encoding to be UTF-16.
When I added the various keys in https://github.com/kovidgoyal/kitty/pull/1928, I missed these facts. This means, that `glfwGetCocoaKeyEquivalent()` will behave unexpectedly when called with any of the new-ish keys. Luckily this function is currently only used for determining the macOS shortcut for `new_os_window` but I plan on using it more in the future.
Some of the constants, e.g. `NSBackspaceCharacter` are UTF-16 constants, so we can't just use UTF-8 everywhere.
I fixed the problem by using either UTF-8 characters packed into a `uint32_t` or UTF-16 characters in a `unichar` and then converting them to a UTF-8 encoded char string.

`NSEventModifierFlagNumericPad` isn't guaranteed to fit in a `unichar`, which made this undefined behaviour. It also didn't work. I tried to make it work using `NSEventModifierFlagNumericPad` as a modifier instead, as can be seen in this commit, but couldn't get it to work either because the constants used are native key codes and not unicode characters. Therefore the numpad keys will be removed in the next commit.
2019-12-27 12:42:51 +01:00
Luflosi 46dd648380 Use the correct pointer type instead of void* 2019-12-25 11:51:40 +01:00
Luflosi b2d428618c Add circumflex (^) key 2019-12-22 18:41:07 +01:00
Luflosi 4a3686c16c X11: Cleanup
From upstream: https://github.com/glfw/glfw/commit/73a8ebb691813ccdc1531c1bd916c352ac0b7574.
2019-12-19 12:38:56 +01:00
Luflosi ca2eda2c5b X11: Cleanup
From upstream: https://github.com/glfw/glfw/commit/4e70c95aa3bcb666320e17f2097f33d18a7fc225.
2019-12-19 12:35:44 +01:00
Luflosi 0981828493 X11: Fix updating GLFW_FLOATING on a hidden window
From upstream: https://github.com/glfw/glfw/commit/9db156421f038e5a269a63d59e509f4fb1e2392b.
2019-12-19 12:31:31 +01:00
Luflosi 79532a315c X11: Fix invalid read when clearing GLFW_FLOATING
From upstream: https://github.com/glfw/glfw/commit/0b652a44d2afe593d6eca8a0d586c20555a0497c.
2019-12-19 12:27:36 +01:00
Luflosi e40616a0db X11: Fix missing checks for EWMH attention atoms
From upstream: https://github.com/glfw/glfw/commit/9b6d68ec70da775c4e2bf6481f86117cf9d9f551.
2019-12-19 12:25:09 +01:00
Luflosi 5eff3897de X11: Fix maximization of hidden windows
From upstream: https://github.com/glfw/glfw/commit/4837b78ffe48aa9fab7a9657347b77cba104979a.
2019-12-19 12:20:58 +01:00
Kovid Goyal 2baa34beb8 Move a couple of functions to where they are actually needed 2019-12-19 16:43:51 +05:30
Kovid Goyal 87e2f7f86d Missed a couple of macOS timer calls 2019-12-19 16:34:47 +05:30
Kovid Goyal e142083d53 Remove unused code
Strip out the GLFW timer code, since we use our own kitty based
monotonic clock.
2019-12-19 16:27:25 +05:30
Luflosi aec9c31bca Formatting
From upstream: https://github.com/glfw/glfw/commit/506a6aafdee2bb043da5cef6e28377466dda2f09.
2019-12-18 18:34:55 +01:00
Luflosi ba201c4c92 Add curly braces
From upstream: https://github.com/glfw/glfw/commit/9486ec0c0223dc4e5f51a44fdc9c7d28b5a1d059.

The upstream commit mainly changes some cmake stuff, which we don't use and only really adds curly braces to `egl_context.c` (and changes some formatting).
2019-12-18 18:12:48 +01:00
Luflosi 2804e1ff81 Cocoa: Update outdated comment
From upstream: https://github.com/glfw/glfw/commit/b3544ca43e2fd328aa084f118789c7eeda5869a8.
2019-12-18 15:41:31 +01:00
Kovid Goyal ae27d36902 Fix previous merge 2019-12-18 18:42:59 +05:30
Luflosi 778474f436 Wayland: Unset the cursor shape on border exit
From upstream: https://github.com/glfw/glfw/commit/ef6189f348d7f911afe640e6b817e2e945dc86a1.
2019-12-18 14:01:29 +01:00
Kovid Goyal b92f95b092 NSGL: Fix disabling of Retina resolution
From upstream: https://github.com/glfw/glfw/commit/fa602692455d87e11c9ff5a5fb0681ca6403772a
2019-12-15 20:54:21 +05:30
Anders Eurenius 4619259e26 Implement resize by increment 2019-12-09 08:33:32 +01:00
Kovid Goyal 7bf0afa621 Fix #2187 2019-12-08 22:37:47 +05:30
Luflosi 4fc733a9c8 Comment commented out code back in
This piece of code is not run when the `GLFW_COCOA_MENUBAR` init hint is set to `0`, which kitty does.
This reduces the difference to GLFW upstream a little.
2019-11-24 13:29:06 +01:00
Luflosi e0edef6719 Change return type of two functions
`on_application_reopen()` and `intercept_cocoa_fullscreen()` both only have two possible return values and can therefore have a return type of `bool`.
2019-11-24 13:06:46 +01:00
Luflosi f9fd39b8c1 Create macOS menu bar where GLFW creates it
GLFW creates the menu bar in the applicationWillFinishLaunching method, while kitty creates it in `create_os_window()`. This patch changes the behaviour to match GLFW.
In practice, without this change, there can be a short time where the menu bar is not fully populated.
2019-11-24 08:43:01 +01:00
Luflosi c05cbed5b2 Reduce difference to GLFW upstream 2019-11-23 13:19:06 +01:00
Luflosi 468468ab9f Wayland: Don’t update cursor position in the frame
From upstream: https://github.com/glfw/glfw/commit/a80788c17f3376177b45d52f983d4d98f1175af2.
2019-11-22 12:38:56 +01:00
Luflosi aed7a197c7 Wayland: Don’t reload the cursor on every pointer motion
From upstream: https://github.com/glfw/glfw/commit/a9f674e719cd663560418de2a7fa1147ce6c6c9b.
2019-11-22 02:35:14 +01:00
Luflosi d6072f6218 X11: Assume 96 DPI if RandR monitor size is zero
From upstream: https://github.com/glfw/glfw/commit/e96dc5d2199032d565b55c4177820ab28b1d67c9.
2019-11-22 02:07:34 +01:00
Luflosi 89b07a1c6b Cocoa: Fix full screen window iconification
From upstream: https://github.com/glfw/glfw/commit/2c519709be0dacc7af2908982a7ab80b889a8126.
2019-11-22 01:56:55 +01:00
Luflosi 6feb906953 Cocoa: Cleanup
From upstream: https://github.com/glfw/glfw/commit/bd452016be99e10d7fa8282cd75b1c53e0d5a8cc.
2019-11-21 18:30:03 +01:00
Luflosi fae51d4e00 Cocoa: Add comments for Cocoa symbol macros
From upstream: https://github.com/glfw/glfw/commit/94cb0347abdc4e8ebf8dcf133894a764d395b84c.
2019-11-21 14:40:34 +01:00
Kovid Goyal d8dd22048a Wayland: Ensure that glfw window content scale and kitty window content scale are in sync after the window is placed on a monitor 2019-11-16 10:47:05 +05:30
Kovid Goyal 65fa7da24a Wayland: Use the primary monitor scale for windows on creation
This is needed because on creation the window may not have been assigned
to any monitors, so we fallback to using the scale of the primary
monitor. Fixes #2133. Fixes #2135
2019-11-16 10:00:41 +05:30
Luflosi b42f4ac288 Restore proper error reporting functionality
In 841c907efc, the `%m` format specifier was replaced by `%%m`, which just prints `%m`. To keep the functionality of `%m` without using `%m`, the error string can be printed manually.
2019-11-05 00:42:29 +01:00
Kovid Goyal 61a77e19ef X11: Fix content scale fallback value on KDE
From upstream: https://github.com/glfw/glfw/commit/75294462b354d147aa5914c30e3005551cc04e4a
2019-10-31 09:10:01 +05:30
Kovid Goyal 82e88b54c7 X11: Fix decoration enabling after window creation
From upstream: https://github.com/glfw/glfw/commit/5fc4c01302b0729fd9f39e8c504e28cf7347153c
2019-10-31 09:04:45 +05:30
Benoit de Chezelles 4d6472128c Rename scancode to keycode for cocoa implementation 2019-10-17 20:41:48 +02:00
Benoit de Chezelles 28525766a5 Final changes before 'ready for review' 2019-10-16 02:47:14 +02:00
Benoit de Chezelles d8fc23c38f remove outdated 'fixme' 2019-10-16 02:41:26 +02:00
Benoit de Chezelles 8cae70fa36 Update doc 2019-10-16 02:36:55 +02:00
Benoit de Chezelles 7f2b98fad7 Rename all uses of 'scancode' to 'native_key' where relevant 2019-10-16 02:25:20 +02:00
Benoit de Chezelles 2b6dde2ac5 Wish: rename scancode → native_key in glfw codebase 2019-10-16 02:00:24 +02:00
Benoit de Chezelles 0c254fa7c7 GLFWkeyevent: rename scancode → native_key 2019-10-16 02:00:24 +02:00
Luflosi b6ee88056e Minor grammar correction 2019-10-16 00:46:52 +02:00
Luflosi 81f31ca215 Reduce difference of glfw/glfw3.h to GLFW upstream 2019-10-15 15:37:35 +02:00
Luflosi 087376b44d GLFW: Documentation work
From upstream: https://github.com/glfw/glfw/commit/a43d1a4937d77fe9ee4560084840fd8f3e960aba.
2019-10-15 14:37:41 +02:00
Luflosi c117f36009 GLFW: Cleanup
From upstream: https://github.com/glfw/glfw/commit/d5ab3e919a4f163f4010f7112a9cf1bdcd80f805.
2019-10-15 14:25:46 +02:00