Kovid Goyal
4c9bd368c6
Implement alternate keys on macOS
2021-01-16 20:52:16 +05:30
Kovid Goyal
86ce72e725
Port the Cocoa backend to use unicode key numbers
2021-01-16 20:52:16 +05:30
Kovid Goyal
3c648c05ec
Report shifted and alternate keys from the XKB backend
2021-01-16 20:52:15 +05:30
Kovid Goyal
c12680895e
Fix key state tracking regression
2021-01-16 20:52:15 +05:30
Kovid Goyal
abc1e3f289
Remove the function used to init glfw key events
...
Instead use C99 struct initializers. Much less error prone.
2021-01-16 20:52:14 +05:30
Kovid Goyal
0714fd376b
Fix handling of ctrl key in legacy mode
...
Also change the glfw constants used for the modifiers to match those
used in the terminal encoding. Less likely to make mistakes translating
that way.
2021-01-16 20:52:14 +05:30
Kovid Goyal
5297f7474d
Remove another use of GLFW_KEY
2021-01-16 20:52:13 +05:30
Kovid Goyal
774a6c8c8b
Remove glfw key constants
2021-01-16 20:52:12 +05:30
Kovid Goyal
c8a9336160
Code to encode key events
2021-01-16 20:52:12 +05:30
Kovid Goyal
c0b6078438
Add more keypad keys
2021-01-16 20:52:11 +05:30
Kovid Goyal
ccce8c32a3
Mapping to unicode and back for XKB keys
2021-01-16 20:52:11 +05:30
Kovid Goyal
8f8be9c2b1
Add notice to not edit generated code
2021-01-16 20:52:11 +05:30
Kovid Goyal
eb8e2225e5
Add some more functional keys
...
Also define aliases for XKB codes
2021-01-16 20:52:11 +05:30
Kovid Goyal
397d7d044b
Change key data type in some functions
2021-01-16 20:52:11 +05:30
Kovid Goyal
a681162326
Start work on supporting arbitrary unicode keys
2021-01-16 20:52:11 +05:30
Kovid Goyal
cb5ac1fcf8
DRYer
2020-11-22 12:24:00 +05:30
Kovid Goyal
53797b9ead
Wayland: Fix key repeat being stopped by the release of an unrelated key
...
Fixes #2191
2020-11-22 12:14:52 +05:30
Kovid Goyal
9193a20b44
macOS: Fix minimize not working for chromeless windows
...
Fixes #3112
2020-11-20 07:30:46 +05:30
Kovid Goyal
bdcac9aed3
Partial fix for traditional full screen on Big Turd
2020-11-16 10:23:01 +05:30
Luflosi
3ccc2f538d
Fix memory leak in unlikely failure condition
...
Found with the Clang Static Analyzer.
2020-11-01 13:41:52 +01:00
Leonard König
bc2dcdf9db
wl: Fix destroying CSDs in correct order ( #3051 )
...
On Wayland, some compositors refuse to implement SSDs in which case we draw
primitive CSDs. However, the destructors were called in the wrong order,
leading to a dereference of an already freed object.
2020-10-28 18:57:37 +01:00
Luflosi
3df80545bd
Reduce the difference of GLFW to upstream
2020-10-26 11:02:55 +01:00
Luflosi
60719e7bff
Remove extra space
2020-10-26 10:22:14 +01:00
Luflosi
2832a73285
GLFW: Wayland: Assume 96 DPI if physical size is <= 0
...
From upstream: 0ef149c8f2 .
2020-10-14 14:43:40 +02:00
Luflosi
0edfa88755
Reduce the difference of GLFW to upstream
2020-10-04 17:34:51 +02:00
Kovid Goyal
229134cf31
Misc. fixes for issues reported by clang's static analyzer
...
Most of them are false positives. A couple of mem leaks after unlikely
failure conditions.
2020-09-10 10:47:28 +05:30
Luflosi
eb5ebfd304
GLFW: Fix typo in GLFWwindowmaximizefun documentation
...
From upstream: 1ed1489831 .
2020-09-08 12:57:00 +02:00
Luflosi
e8d8ced006
GLFW: Null: Fix out parameters not being set
...
From upstream: cd0dc76c7c .
2020-09-07 21:26:02 +02:00
Kovid Goyal
e2b1ca10c9
Save a line :P
2020-08-24 12:08:09 +05:30
Kovid Goyal
11942ed6dc
Fix compilation on OpenBSD
...
Fixes #2935
2020-08-24 12:05:39 +05:30
Ayan George
076ad850bb
Declare _glfwPlatformInitJoysticks() to return bool
...
This patch declares _glfwPlatformInitJoysticks() to return bool which
matches its prototype in glfw/internal.h.
2020-08-04 20:24:35 -04:00
Kovid Goyal
6b421fabd1
Wayland: Fix a typo in the previous release that broke reading mouse cursor size
...
Fixes #2895
2020-08-03 17:08:08 +05:30
Weng Xuetian
b1387d50f0
Register to bus when connect to ibus.
...
This is required when the actual dbus is not from ibus but session bus.
This may happen when other run a shim layer for ibus, or ibus is
running with flatpak mode.
2020-07-31 17:54:10 -07:00
Kovid Goyal
069f09c43c
Move wlc destructor to just before the functions are unloaded
2020-07-29 17:18:03 +05:30
Kovid Goyal
35f821f6a1
Ensure wl_cursor_theme_destroy is called before it is released
...
Fix #2884
2020-07-29 17:13:00 +05:30
Kovid Goyal
6f40b8d0a1
Simplify Wayland cursor theme handling
...
Now themes are loaded once per scale and stored centrally not per
window. They are not unloaded till application shutdown. Since there
is unlikely to be more than two or three scales this is not a big waste
of resources. Since cursor lifetime is tied to theme lifetime and cursors
are stored per window, destroying a theme requires destroying all
cursors win all windows referring to that theme, which is too much work.
Should hopefully fix #2810
2020-07-25 15:36:46 +05:30
Luflosi
a45651933c
GLFW: Cocoa: Support some sim page joystick elements
...
From upstream: 0d355379e0 .
2020-07-24 11:28:53 +02:00
Luflosi
6b3f774f05
GLFW: Cocoa: Fix potential leak of CFNumber object
...
From upstream: a2674a9034 .
2020-07-24 10:59:04 +02:00
Luflosi
bc61a81d7a
GLFW: X11: Fix joystick detection before joystick init
...
From upstream: c01acc267a .
2020-07-23 23:57:03 +02:00
Luflosi
06b30d1cc3
GLFW: Cleanup
...
From upstream: f771d41292 .
2020-07-23 23:56:32 +02:00
Luflosi
785973bb5e
GLFW: Make joystick platform code init on demand
...
From upstream: 782e6b6cef .
2020-07-23 23:56:30 +02:00
Luflosi
78efefcea1
Revert "Linux: Fix slow startup on some systems caused by GLFW searching for joysticks. Since kitty does not use joysticks, disable joystick support."
...
This reverts commit ab960ea12d .
2020-07-23 23:56:21 +02:00
Kovid Goyal
dc4762a69a
Dont crash if Wayland returns a cursor image array with some null images
2020-07-21 19:33:05 +05:30
Luflosi
1342767805
GLFW: Wayland: Fix scroll offsets being inverted
...
From upstream: f760b124ca .
This commit does not actually change any behaviour, it merely makes the code style of the two lines more similar to the new upstream code.
2020-07-18 19:32:03 +02:00
Luflosi
b1c3999a81
GLFW: Wayland: Fix partial framebuffer size retrieval
...
From upstream: 5f60c22cfa .
2020-07-17 21:10:32 +02:00
Luflosi
4d1b537f78
GLFW: Documentation work for GLFW_MOUSE_PASSTHROUGH
...
From upstream: a122d91303 .
2020-07-17 00:08:22 +02:00
Luflosi
dd54db47a9
GLFW: Move mouse passthrough before window showing
...
From upstream: dfeacee000 .
2020-07-17 00:07:36 +02:00
Luflosi
44775e4644
GLFW: Remove no-op call at window creation
...
From upstream: 1095a43708 .
2020-07-16 23:55:24 +02:00
Luflosi
805921d6a3
GLFW: Move management of shared state to shared code
...
From upstream: 6d2003d07a .
2020-07-16 23:54:16 +02:00
Luflosi
d7cd6edaa5
GLFW: X11: Include X Shape extension headers
...
From upstream: 68e4261d73 .
2020-07-16 23:50:26 +02:00
Luflosi
6a472bd6da
GLFW: X11: Fix disabling of GLFW_MOUSE_PASSTHROUGH
...
From upstream: e81d381256 .
2020-07-16 23:24:48 +02:00
Luflosi
d0c6ce9fd7
GLFW: Add support for mouse input transparency
...
From upstream: d285a9fdeb .
2020-07-16 22:25:12 +02:00
Luflosi
2b4b3bbf18
GLFW: Null: Fix typos in workarea retrieval
...
From upstream: 6c031af245 .
2020-07-16 20:01:57 +02:00
Luflosi
356e950122
X11: Fix cursor hover query retry behavior
...
From upstream: 49dbcfcb8c .
2020-07-11 18:59:28 +02:00
Luflosi
431d013d32
X11: Fix race in window hovered query
...
From upstream: ceb20c7f97 .
2020-07-11 18:18:33 +02:00
Luflosi
e17036a7a5
Remove trailing whitespace
2020-07-09 01:57:39 +02:00
Kovid Goyal
ee47a10b37
Simplify code a bit
2020-07-07 09:44:51 +05:30
Kovid Goyal
b81700144d
Silence another code scanning warning
2020-07-07 09:38:33 +05:30
Luflosi
973d98457f
EGL: Add support for EGL_ANGLE_platform_angle
...
From upstream: 0dea8a4441 .
2020-06-30 00:34:32 +02:00
Luflosi
bd31c2b484
Add GLFW_CONTEXT_DEBUG window hint alias
...
From upstream: b420ca7404 .
2020-06-29 15:30:38 +02:00
Luflosi
3040d4c83f
Re-word docs for GLFW_OPENGL_DEBUG_CONTEXT attrib
...
From upstream: 4e3b43383a .
2020-06-29 11:43:24 +02:00
Kovid Goyal
c68516ca8d
Wayland: Fix a crash when using animated mouse cursors
...
Fixes #2810
2020-06-29 08:03:25 +05:30
Kovid Goyal
75caafb5ac
Merge branch 'glfw_upstream' of https://github.com/Luflosi/kitty
2020-06-26 16:34:33 +05:30
Kovid Goyal
cf2f8165eb
Only ask application to abort once
2020-06-26 16:33:25 +05:30
Luflosi
a2f80740d7
Remove EGL and OSMesa struct member macros
...
From upstream: bcb8558189 .
2020-06-26 12:51:11 +02:00
Luflosi
c39e9e9c61
EGL: Add support for EGL_EXT_platform_base
...
From upstream: aec9fae8f3 .
2020-06-26 12:39:17 +02:00
Luflosi
d7a7509da6
EGL: Replace native handle macros with functions
...
From upstream: d7f7b0e1b5 .
2020-06-26 12:17:13 +02:00
Kovid Goyal
fbd0e8e26a
X11: Improve handling of multiple keyboards
...
Now pressing a modifier key in one keyboard and a normal key in another works. Fixes #2362
Don't rebuild keymaps on new keyboard events that only change geometry. Fixes #2787
Better handling of multiple keyboards with incompatible layouts (this is for free from the above fixes). Fixes #2726
2020-06-24 12:05:30 +05:30
Luflosi
2b884377d4
Fix typos
2020-06-23 16:35:13 +02:00
Luflosi
0a892b72e6
Fix GLU header inclusion being disabled
...
From upstream: 81f475bccb .
2020-06-21 18:07:31 +02:00
Kovid Goyal
064aa3a150
Wayland: Ensure cursor theme is loaded before trying to set cursor
2020-06-11 07:57:08 +05:30
Kovid Goyal
8a178ebe55
Wayland: Apply the same framebuffer selection optimisation
...
Not as much of a win, since EGL only causes approx 1K getpid() calls of
which this optimization eliminates only half
2020-06-09 21:59:25 +05:30
Kovid Goyal
9a97f0bced
X11: Further reduce startup time
...
Use the GLX 1.3 API function to choose the best framebuffer config
instead of doing it ourselves. Reduces the number fo getpid() calls by
a further ~15K
2020-06-09 20:18:07 +05:30
Kovid Goyal
27b6517594
X11: Reduce startup time by ~25% by only querying GLX for framebuffer configurations once
...
On my system reduces the number of getpid() calls from 67982 to 17327
I dont know why get framebuffer config attributes requires getpid() and
why it is so slow, probably a driver bug. Fixes #2754
2020-06-09 01:04:09 +05:30
Luflosi
e2be09e028
Remove GLFW_TRUE in comment
...
In 55ad228166 I forgot to replace `GLFW_TRUE` with `true` in a comment.
2020-06-05 18:51:50 +02:00
Kovid Goyal
c7c14f184c
X11: Recompile keymaps on XkbNewKeyboardNotify events
...
Hopefully fixes #2726
2020-06-05 22:11:15 +05:30
Luflosi
d8886edbeb
Null: Make platform more conformant
...
From upstream: e0c77f71f9 .
2020-06-05 00:27:47 +02:00
Luflosi
5263f6598c
Add feature available/implemented errors
...
From upstream: 9a87c2a4b4 .
2020-06-04 13:55:52 +02:00
Luflosi
c70e2f7d3e
Add statement to docs for glfwTerminate
...
From upstream: 7486e12f88 .
2020-06-03 20:07:09 +02:00
Luflosi
46b5e4513a
Win32: Fix VS /W4 compile warnings
...
From upstream: a84a30ab63 .
2020-06-03 19:05:05 +02:00
Luflosi
107f1af3c4
Fix desktop GL header not always being suppressed
...
From upstream: 105cf32e0b .
2020-06-03 11:32:59 +02:00
Kovid Goyal
03b1484c96
Wayland: Abort on fatal error should bypass quit confirmation
2020-06-03 14:39:27 +05:30
Luflosi
767da68239
Reduce difference to GLFW upstream
...
Only whitespace, formatting and comments were changed. This does not alter any functionality.
2020-06-02 11:45:08 +02:00
TheDaemoness
7f226f2ea1
Avoid incrementing hidden cursors' images
2020-06-02 05:10:51 +00:00
Kovid Goyal
1c82a39a6e
Merge branch 'glfw_upstream' of https://github.com/Luflosi/kitty
2020-06-02 08:13:33 +05:30
Kovid Goyal
b70cf276b4
Change the cursor image immediately on scale change
2020-06-02 08:09:27 +05:30
Kovid Goyal
80b2df2ef4
Better code when using a stack cursor
2020-06-02 07:59:32 +05:30
Kovid Goyal
ad27452275
Wayland: Avoid infinite timer fires if arrow cursor is animated
2020-06-02 07:53:15 +05:30
Luflosi
f356f63994
wayland: save serial from all input sources
...
From upstream: 92b3fd02e5 .
2020-06-01 21:29:14 +02:00
TheDaemoness
4947fb6b57
Fix a missing cursorWayland-scale assignment.
2020-06-01 17:41:16 +00:00
Kovid Goyal
c1f84ce603
cleanup for wayland hidpi cursors merge
2020-06-01 21:14:56 +05:30
Kovid Goyal
14912461ad
Use left_ptr as default arrow cursor on Wayland
...
Matches X11.
2020-06-01 20:33:54 +05:30
Kovid Goyal
a9f265e8b7
Initialize a couple of local vars
2020-06-01 20:33:54 +05:30
TheDaemoness
199ee20adb
Fixed an instance of eager cursor loading.
...
Also fixed a minor formatting issue.
2020-06-01 20:33:53 +05:30
TheDaemoness
7c3c87abf6
Initial implementation of proper HiDPI cursor support on Wayland.
2020-06-01 20:33:53 +05:30
Luflosi
3846286bee
Wayland: Implement raw mouse motion control
...
From upstream: 44af6bb936 .
2020-05-25 18:21:32 +02:00
Luflosi
c6b9cb759a
Wayland: Rename handlers for more unicity
...
From upstream: 754b7feaa1 .
1fa66ca45d didn't include the changes to `wl_window.c`.
2020-05-25 15:29:17 +02:00
Luflosi
fcc7a0255a
Align joystick axis to gamepad button behavior
...
From upstream: 02874d9c14 .
2020-05-25 11:44:14 +02:00
Luflosi
e7447f38cf
Fix half-axis to gamepad button value mapping
...
From upstream: c32dc3a085 .
2020-05-25 11:44:02 +02:00
Luflosi
55ad228166
Rename raw input to raw mouse motion, cleanup
...
From upstream: 1155c83013 .
2020-05-24 21:57:29 +02:00
Luflosi
48fb051253
Add GLFW_RAW_INPUT and glfwRawInputSupported
...
From upstream: 9e29f556fd .
2020-05-24 20:49:52 +02:00
Luflosi
803fba9cfd
Cocoa: Replace display link with IOKit query
...
From upstream: 4ec7daf3e9 .
2020-05-23 16:28:31 +02:00
Luflosi
7931654a7c
Ensure valid UTF-8 when cutting string
2020-05-23 13:59:23 +02:00
Luflosi
269f294d19
Use CALayer instead of NSView for EGLNativeWindowType
...
From upstream: 91eebe922d .
2020-05-23 12:48:26 +02:00
Luflosi
3b745b82db
X11: Clarify function name and comment
...
From upstream: 5f9dfe3d83 .
2020-05-23 11:34:17 +02:00
Luflosi
9da0ba52db
X11: Clarify code flow for Clang static analysis
...
From upstream: ef5220d6b1 .
2020-05-22 23:32:12 +02:00
Luflosi
7441cefdbb
Make paths to libraries configurable at build time
2020-05-19 18:36:46 +02:00
Kovid Goyal
707cb37212
Have the confirm on close also apply to quitting kitty
...
Use a dedicated API for handling quit requests on macOS rather than a
quit canary. Also create a mappable "quit" action for all platforms.
2020-05-18 16:06:40 +05:30
Kovid Goyal
2e63a4c83f
Wayland: Remove unused link-time dependency
...
6aca3e99f0
2020-05-01 15:00:38 +05:30
Kovid Goyal
9da5bee178
X11: Filter out Xlib errors from other connections
...
2c8e0512dd
2020-05-01 14:59:16 +05:30
Kovid Goyal
2fc6f3b542
Merge changes from upstream
...
e65de2941c
2020-05-01 14:57:55 +05:30
Kovid Goyal
aa9c3cd634
Report modifier key state when sending wheel events to the terminal program
2020-04-29 20:02:55 +05:30
James McCoy
0dff0d03f9
Use -fPIC instead of -fpic
...
With large objects, use of -fpic will fail to link on certain
architectures due to size limitations of the global offset table (GOT).
For example, the link stage for glfw-wayland.so fails on sparc64, as
below. Using -fPIC avoids these size limitations.
./glfw/osmesa_context.c:73:(.text+0xf2c): relocation truncated to fit: R_SPARC_GOT13 against symbol `_glfw' defined in .bss section in /tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o
/tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o: in function `swapIntervalEGL':
./glfw/egl_context.c:238:(.text+0xf68): relocation truncated to fit: R_SPARC_GOT13 against symbol `_glfw' defined in .bss section in /tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o
/tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o: in function `destroyContextOSMesa':
./glfw/osmesa_context.c:80:(.text+0x10a4): relocation truncated to fit: R_SPARC_GOT13 against symbol `_glfw' defined in .bss section in /tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o
/tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o: in function `data_offer_action':
./glfw/wl_window.c:1692:(.text+0x15e4): relocation truncated to fit: R_SPARC_GOT13 against symbol `_glfw' defined in .bss section in /tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o
/tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o: in function `data_offer_source_actions':
./glfw/wl_window.c:1683:(.text+0x1648): relocation truncated to fit: R_SPARC_GOT13 against symbol `_glfw' defined in .bss section in /tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o
/tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o: in function `keyboardHandleRepeatInfo':
./glfw/wl_init.c:471:(.text+0x1704): relocation truncated to fit: R_SPARC_GOT13 against symbol `_glfw' defined in .bss section in /tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o
/tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o: in function `checkScaleChange':
./glfw/wl_window.c:55:(.text+0x1768): relocation truncated to fit: R_SPARC_GOT13 against symbol `_glfw' defined in .bss section in /tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o
/tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o: in function `primary_selection_copy_callback_done':
./glfw/wl_window.c:1833:(.text+0x18bc): relocation truncated to fit: R_SPARC_GOT13 against symbol `_glfw' defined in .bss section in /tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o
/tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o: in function `clipboard_copy_callback_done':
./glfw/wl_window.c:1825:(.text+0x1910): relocation truncated to fit: R_SPARC_GOT13 against symbol `_glfw' defined in .bss section in /tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o
/tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o: in function `primary_selection_source_canceled':
./glfw/wl_window.c:1582:(.text+0x1968): relocation truncated to fit: R_SPARC_GOT13 against symbol `_glfw' defined in .bss section in /tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o
/tmp/glfw-wayland.so.SYvdxr.ltrans0.ltrans.o: in function `data_source_canceled':
./glfw/wl_window.c:1576:(.text+0x19c0): additional relocation overflows omitted from the output
collect2: error: ld returned 1 exit status
2020-04-25 10:08:28 -04:00
Kovid Goyal
601cf01222
Fix #2581
2020-04-24 19:24:11 +05:30
Trygve Aaberge
2e3f9dffa7
Ignore keys for switching keyboard layout
...
XKB has various options for using keys to switch the keyboard layout.
When these are set, XKB will return keysyms which are unknown to GLFW,
so kitty will fallback to using a keymap without the options set, which
causes the keys to be interpreted as the original keysyms.
However, when these options are set, kitty shouldn't interpret the keys.
Therefore, check for some specific keysyms and return before translating
to GLFW keysyms.
There may be more keysyms which should be ignored, but as far as I can
see from https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/blob/xkeyboard-config-2.29/symbols/group
these are the ones which can be triggered by XKB options.
Fixes #2519
2020-04-10 17:21:53 +02:00
Kovid Goyal
759a15ccbb
X11: Handle invalid data being sent with drag events by some applications
...
Fixes #2505
2020-04-02 21:01:19 +05:30
Kovid Goyal
76a6bba643
Fix #2466
2020-03-24 17:07:37 +05:30
Kovid Goyal
372d2008a6
Actually, we should use text/plain rather than text/uri-list since we are already converting to filesystem paths
2020-03-19 13:40:02 +05:30
Kovid Goyal
ab9a36f8c1
Port cocoa backend to use new drop API
2020-03-19 13:36:03 +05:30
Kovid Goyal
2458c3a7c6
Implement drag and drop of text/plain for Wayland as well
2020-03-19 13:28:21 +05:30
Kovid Goyal
e827e6fa21
X11: Allow drag and drop of text/plain in addition to text/uri-list
...
Fixes #2441
2020-03-18 22:37:23 +05:30
Kovid Goyal
5956277863
All defs are now typed
2020-03-14 14:37:11 +05:30
Kovid Goyal
eb12511646
The uber-fussy sway does not like calling wl_data_offer_finish on a version 1 data manager
2020-03-14 09:12:06 +05:30
Kovid Goyal
aa11ddf32c
Wayland: Fix a crash when drag and dropping into kitty
...
Fixes #2432
2020-03-14 08:20:44 +05:30
Kovid Goyal
8a34fede55
More typing work
2020-03-06 08:35:23 +05:30
Kovid Goyal
6609d219f4
Add type checking for glfw module as well
2020-03-06 07:59:55 +05:30
Kovid Goyal
56e5c8be32
macOS: When switching inpt method while a pending multi-key input is in progress, clear the pending input
...
Fixes #2358
2020-02-17 15:30:03 +05:30
Luflosi
f8ae048d60
X11: Fix setting the clipboard string to itself
...
From upstream: 0c27ed1d0e .
2020-02-17 01:12:52 +01:00
Luflosi
90a8ba3789
Fix typo in comment
2020-02-15 18:52:18 +01:00
Kovid Goyal
b235f411b0
X11: Fix arrow mouse cursor using right pointing instead of the default left pointing arrow
...
Fixes #2341
2020-02-06 21:11:09 +05:30
Kovid Goyal
8f1ec053ef
...
2020-01-27 08:50:29 +05:30
Kovid Goyal
2e3037ce3a
Wayland: Fix window titles being set to very long strings on the order of 8KB causing a crash
...
Fixes #1526
2020-01-27 08:49:25 +05:30
Kovid Goyal
1b5daf930a
Make the comment explaining wayland polling more detailed
2020-01-23 15:08:54 +05:30
Kovid Goyal
748ca81d4b
Wayland: Fix a freeze in rare circumstances when having multiple OS Windows
...
Fixes #2307
Fixes #1722
2020-01-23 15:07:22 +05:30
Luflosi
e4fd12001c
Cocoa: Add fully dynamic loading of Vulkan loader
...
From upstream: 7da87aaae7 .
2020-01-17 14:18:28 +01:00
Luflosi
3581ffe04b
Cocoa: Select Vulkan surface extension at runtime
...
From upstream: 15d91801b7 .
2020-01-17 14:18:21 +01:00
Luflosi
f6901e4a3d
Cocoa: Add support for VK_EXT_metal_surface
...
From upstream: c5cb4a253a .
2020-01-17 14:18:05 +01:00
Luflosi
ed9f9db1b0
X11: Fix parent window handle initialization
...
From upstream: 9372ba95fa .
2020-01-15 13:19:33 +01:00
Luflosi
74bed658e1
X11: Fix no window position events during resize
...
From upstream: fe57e3c292 .
2020-01-15 13:19:32 +01:00
Kovid Goyal
c68b302fa2
Merge branch 'wayland' of https://github.com/kennylevinsen/kitty
2020-01-15 06:51:24 +05:30
Kenny Levinsen
ca7cab1a2d
wayland: Consistently use errno for errors
2020-01-14 20:06:13 +01:00
Kenny Levinsen
083b294659
wayland: Simplify dispatch_pending error handling
...
wl_display_dispatch_pending does not return EAGAIN, and always sets an
error when it fails. This allows us to handle errors in a simpler
manner.
2020-01-14 20:04:23 +01:00
Kenny Levinsen
bc24716476
wayland: errno does not have to be cleared
...
As long as errno is only read on error from an errno-setting function,
then there is no need to reset errno between uses.
2020-01-14 20:04:23 +01:00
Kenny Levinsen
4acab65016
wayland: Only cancel display read after prepare success
...
The display reader count only increments when wl_display_prepare_read
succeeds. Calling wl_display_cancel_read when wl_display_prepare_read
has not succeeded results in a negative reader count, which does not
have well-defined behavior.
2020-01-14 20:00:47 +01:00
Kenny Levinsen
f6b03f106c
wayland: Cancel display read before abortOnFatalError
...
Calling wl_display_cancel_read immediately ensures that other readers
waiting on us will have a chance to wake up and discover the error in a
timely manner.
2020-01-14 19:59:02 +01:00
Kovid Goyal
ac72ac7af2
Wayland: On dispatch error cancel read before running fatal error handlers
...
Might help #1722
2020-01-14 19:48:28 +05:30
Luflosi
053de5763a
X11: Fix BadMatch focusing a window on non-EWMH WM
...
From upstream: aa5e313561 .
2020-01-08 19:50:17 +01:00
Kovid Goyal
321771b150
Merge branch 'resize-by-increments' of https://github.com/aes/kitty
2020-01-07 10:44:55 +05:30
Luflosi
b9a08eacb0
X11: Cleanup
...
From upstream: 8149a5fc00 .
2020-01-03 02:37:19 +01:00
Luflosi
e725c647ef
Cocoa: Only create per-monitor display link once
...
From upstream: b4a8eb9b19 .
2020-01-02 18:05:38 +01:00
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: 73a8ebb691 .
2019-12-19 12:38:56 +01:00
Luflosi
ca2eda2c5b
X11: Cleanup
...
From upstream: 4e70c95aa3 .
2019-12-19 12:35:44 +01:00
Luflosi
0981828493
X11: Fix updating GLFW_FLOATING on a hidden window
...
From upstream: 9db156421f .
2019-12-19 12:31:31 +01:00
Luflosi
79532a315c
X11: Fix invalid read when clearing GLFW_FLOATING
...
From upstream: 0b652a44d2 .
2019-12-19 12:27:36 +01:00
Luflosi
e40616a0db
X11: Fix missing checks for EWMH attention atoms
...
From upstream: 9b6d68ec70 .
2019-12-19 12:25:09 +01:00
Luflosi
5eff3897de
X11: Fix maximization of hidden windows
...
From upstream: 4837b78ffe .
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: 506a6aafde .
2019-12-18 18:34:55 +01:00
Luflosi
ba201c4c92
Add curly braces
...
From upstream: 9486ec0c02 .
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: b3544ca43e .
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: ef6189f348 .
2019-12-18 14:01:29 +01:00
Kovid Goyal
b92f95b092
NSGL: Fix disabling of Retina resolution
...
From upstream: fa60269245
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: a80788c17f .
2019-11-22 12:38:56 +01:00
Luflosi
aed7a197c7
Wayland: Don’t reload the cursor on every pointer motion
...
From upstream: a9f674e719 .
2019-11-22 02:35:14 +01:00
Luflosi
d6072f6218
X11: Assume 96 DPI if RandR monitor size is zero
...
From upstream: e96dc5d219 .
2019-11-22 02:07:34 +01:00
Luflosi
89b07a1c6b
Cocoa: Fix full screen window iconification
...
From upstream: 2c519709be .
2019-11-22 01:56:55 +01:00
Luflosi
6feb906953
Cocoa: Cleanup
...
From upstream: bd452016be .
2019-11-21 18:30:03 +01:00
Luflosi
fae51d4e00
Cocoa: Add comments for Cocoa symbol macros
...
From upstream: 94cb0347ab .
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: 75294462b3
2019-10-31 09:10:01 +05:30
Kovid Goyal
82e88b54c7
X11: Fix decoration enabling after window creation
...
From upstream: 5fc4c01302
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: a43d1a4937 .
2019-10-15 14:37:41 +02:00
Luflosi
c117f36009
GLFW: Cleanup
...
From upstream: d5ab3e919a .
2019-10-15 14:25:46 +02:00
Luflosi
410165c14d
GLFW: Improve (?) reference documentation for callbacks
...
From upstream: 51bb76c7c3 .
2019-10-15 12:11:01 +02:00
Luflosi
63c4f64bf5
Reduce difference to GLFW upstream
...
From upstream: 773f4495f0 .
2019-10-12 15:19:44 +02:00
Luflosi
114b8cff93
Cleanup
...
From upstream: 62b7fe8311 .
2019-10-11 20:26:27 +02:00
Luflosi
506f2f7db7
Replace weird character with space
...
In 4c4c6ab0e6 you added a weird unicode character, which is apparently called an Object Replacement Character, instead of a space.
2019-10-09 18:32:49 +02:00
Kovid Goyal
f476c56f91
Drop support for the gtk_primary_selection wayland protocol
...
sway recently decided to start complaining when binding
wp_primary_selection_device_manager interface to gtk_primary_selection
name, which means we either have to maintain an in-tree version
of the gtk_primary_selection protocol or drop support for sway.
Sway has not quite annoyed me enough yet for the latter.
See #1977
2019-10-09 07:37:03 +05:30
Luflosi
7ddbb613fe
Cocoa: Fix window creation blocking after re-init
...
From 2fbb560eb7 .
2019-10-08 13:41:10 +02:00
Luflosi
1f8631cc99
Cocoa: Move app delegate and menu creation to init
...
From ea7eb2ddab .
2019-10-07 21:24:58 +02:00
Luflosi
5b008163af
Cocoa: Add NSApplicationDelegate protocol
...
From c3ed70a4b7 .
2019-10-06 16:58:06 +02:00
Kovid Goyal
4a8f9efe79
Wayland: Resume key repeat on focus gained if the previously repeated key is pressed
2019-09-30 18:47:43 +05:30
Kovid Goyal
19d36fbe69
Wayland: Fix key repeat not being stopped when focus leaves window. This is expected behavior on Wayland, apparently
...
Fixes #2014
2019-09-30 16:45:39 +05:30
Luflosi
a8f6615380
Fix broken paste on X11
...
Fixes https://github.com/kovidgoyal/kitty/issues/2008 .
2019-09-29 02:48:09 +02:00
Kovid Goyal
97fe38fbbc
monotonic_start_time needs to be a global symbol, not local to each translation unit
2019-09-28 08:18:21 +05:30
Kovid Goyal
3378175450
Hopefully the last macOS float conversion fix
2019-09-27 20:14:05 +05:30
Kovid Goyal
46d49e18c0
More macOS float fixes
2019-09-27 20:07:09 +05:30
Kovid Goyal
f68339c571
float conversion fixes for macOS
2019-09-27 19:56:48 +05:30
Kovid Goyal
0d68b7078c
Check for float conversion issues on build
...
Useful to catch any errors left over from the migration of times from
double to int64_t
2019-09-27 19:47:25 +05:30
Luflosi
f3b9ff5f9f
Use datatype monotonic_t instead of double to keep track of time
...
The time is stored in a signed 64 bit integer with nanosecond accuracy. This eliminates the possibility of floating-point inaccuracies.
`monotonic_t` can currently hold values large enough to work correctly for more than 200 years into the future.
Using a typedef instead of directly using `int64_t` everywhere will also allow easily changing the datatype in the future should the need arise for more precise or bigger time values.
2019-09-25 17:43:11 +02:00
Kovid Goyal
4ec1a8d9c3
Merge branch 'extract-glfw-key-event-data' of https://github.com/bew/kitty
2019-09-25 15:44:56 +05:30
Benoit de Chezelles
aadab38487
Fix compilation for macos
2019-09-24 22:03:55 +02:00
Benoit de Chezelles
53275c9137
Extract key event data to struct
2019-09-24 19:15:35 +02:00
Kovid Goyal
fb1c318a09
macOS: Fix a regression in the previous release that caused a crash when pressing a unprintable key, such as the POWER key
...
Fixes #1997
2019-09-24 16:07:52 +05:30
Kovid Goyal
fe807dd66f
Fix missing parameter name in docs
2019-09-22 19:39:22 +05:30
Luflosi
628e6cc87f
Mark unused parameters in glfw/null_*.c
...
kitty didn't compile on FreeBSD for me because of unused parameters in glfw/null_joystick.c, so I added the `UNUSED` attribute to them.
I also added `UNUSED` to the unused parameters in glfw/null_monitor.c and glfw/null_window.c as well even though they are probably not used.
2019-09-19 20:21:09 +02:00
Luflosi
e619eb9cbb
Add more keyboard keys
2019-09-08 12:32:19 +02:00
Luflosi
a65ee155c5
Indent lookup table in _glfwGetKeyName() to allow for longer keyboard key names
2019-09-08 12:32:19 +02:00
Luflosi
97e6978ed8
Order keyboard keys by their ASCII value
2019-09-08 12:32:19 +02:00
Luflosi
f05eefcc20
Allow adding keys with Unicode names on macOS
2019-09-08 12:32:19 +02:00
Kovid Goyal
c398d3d16e
Cocoa: Fix glfwSetWindowSize anchor point
...
This makes glfwSetWindowSize use the top-left corner as anchor point
instead of the bottom-left corner.
Upstream: 7f02898264
2019-09-08 09:16:07 +05:30
Kovid Goyal
9dbc54aad6
Fix comparison of video modes of equal area
...
This fixes the bug of video modes being discarded if they had
a different resolution but the same area as another mode.
Upstream: 2777f6a754
2019-09-08 09:12:39 +05:30
James McCoy
34350af61c
Only use linux_joystick.c on Linux
...
Rather than using null_joystick.c when _plat is a bsd, use
linux_joystick.c when _plat is a linux. This fixes a build issue with
other non-BSD, non-Linux platforms.
2019-09-03 23:02:16 -04:00
Luflosi
b3b830bb5f
Make adding more printable keys slightly easier
...
When adding keys after `GLFW_KEY_UNDERSCORE`, one now needs to change a `#define` right below the last printable key instead of changing it elsewhere in the code.
This commit now also marks `GLFW_KEY_PLUS` and `GLFW_KEY_UNDERSCORE` as printable characters.
2019-09-01 11:24:14 +02:00
Luflosi
0459dda5c2
Fix bool indentation
...
The wrong indentation was caused by the removal of GLFWbool in fe62700825 .
2019-08-30 15:32:20 +02:00
Luflosi
c0c7cfacc2
Fix NSLog() printing of unicode format strings
...
See https://stackoverflow.com/questions/720052/nslog-incorrect-encoding .
The `%s` format placeholder for `NSLog()` expects an encoding other than UTF-8, which leads to garbled Unicode characters when trying to print a UTF-8 encoded string.
```Objective-C
NSLog(@"Ä %s %@", "Ä", @("Ä"));
```
prints `Ä √Ñ Ä`.
As can be seen in the example above, the workaround is to convert the UTF-8 encoded C-string to an `NSString` object and print that instead.
`debug_key()` calls `NSLog()`.
2019-08-30 15:03:51 +02:00
Kovid Goyal
90a985b73a
Make format_text() more secure
2019-08-28 05:41:20 +05:30
Luflosi
902fc22670
Simplify GLFW compilation code
...
This commit removes the need for `is_macos` in `glfw/glfw.py` by moving a few lines of code. Instead of relying on the information that the compilation is or isn't happening on macOS, the code now does the right thing based on which `module` is being built.
This changes the order of the compilation flags slightly.
2019-08-26 16:47:19 +02:00
Luflosi
6cc720a350
Fix typos
...
Inspired by 4d3ee554b3 .
Found using `codespell`.
2019-08-26 12:31:15 +02:00
Luflosi
94d56d1a9e
Correct indentation for two _glfwInputError() messages
...
This commit changes the indentation of two error messages to match the indentation in the rest of the code.
2019-08-25 21:29:58 +02:00
Luflosi
06c2263657
macOS: implement drag and drop of text into kitty
...
Closes #1368 .
2019-08-24 01:29:33 +02:00
Luflosi
599be7ddc9
Don't add Apple Frameworks twice
...
These Frameworks are added again a couple lines below in the check for `module == 'cocoa'`.
2019-08-11 02:26:12 +02:00
Luflosi
28bb123be8
Update the GLFW version number from 3.3 to 3.4
...
Closes https://github.com/kovidgoyal/kitty/issues/1884 .
From a337c56848 .
2019-08-02 11:00:16 -05:00
Luflosi
5f855ce547
Use context managers to open files
...
Inspired by d50a6ddc1b .
2019-08-01 13:21:26 -05:00
Kovid Goyal
9cbb726566
Fix #1865
2019-07-30 06:20:54 +05:30
Kovid Goyal
d218900b57
Remove unused header
2019-07-29 09:45:02 +05:30
Kovid Goyal
cab949a939
Fix building with compilers that dont support __has_include
2019-07-29 09:44:05 +05:30
Luflosi
464a6c1441
Fix indentation of bool variables in glfw/egl_context.h
...
Caused by fe62700825 .
2019-07-28 00:23:17 -05:00
Luflosi
b8d2b76ee4
Reduce the difference of glfw to upstream
2019-07-28 00:10:50 -05:00
Luflosi
922bc62e0e
GLFW: Fix invalid ranges for gamepad axis sources
...
From 9420e6f0d0 .
2019-07-26 13:30:38 -05:00
Luflosi
61df266df7
Fix indentation of bool variables in glfw/internal.h
...
Caused by fe62700825 .
2019-07-26 11:45:32 -05:00
Luflosi
961b2c9b65
GLFW: Documentation work
...
From 3cf7645b96 .
2019-07-25 23:07:00 -05:00
Luflosi
cdbe2f13ca
Cocoa: Move slightly towards modern Objective-C
...
Inspired by 9a9568212c .
2019-07-25 17:14:32 -05:00
Kovid Goyal
d9f90ef077
Make qsort invocations type independent
2019-07-23 10:20:41 +05:30
Luflosi
c02ba03f39
Remove glfw/wgl_context.c and glfw/wgl_context.h
2019-07-21 15:03:39 -05:00
Luflosi
1590c59131
Fix assertion for glfwSetGamma value
...
From 751c6f9a27 .
2019-07-20 23:17:58 -05:00
Luflosi
489f3e6c9d
Add C dialect reminders to each glfw source file
...
Reduces the difference to upstream.
From 56aad76b16 .
2019-07-20 21:07:27 -05:00
Kovid Goyal
5fef4726a7
Cocoa: Fix file-local function not declared static
...
From upstream: 062a1c22b5
2019-07-20 19:12:21 +05:30
Kovid Goyal
51fdb8200a
X11: Fix focus events not being filtered
...
From upstream: c6b95e3b07
2019-07-20 19:11:00 +05:30
Kovid Goyal
fb0d98ead1
Add more debugs to Wayland handleEvents()
2019-07-20 14:48:28 +05:30
Kovid Goyal
4096caba64
Cancel read if dispatch_pending fails
2019-07-20 14:32:57 +05:30
Kovid Goyal
38f77144fa
Wayland: dont abort the event handler early if there are no pending events from the compositor. This ensures that the tick callback and other event sources are dispatched.
2019-07-20 14:09:09 +05:30
Kovid Goyal
b8041ce17f
Wayland: Fix infinite loop if the compositor dies
2019-07-20 13:55:38 +05:30
Luflosi
bdc4558a43
Update GLFW copyright years
...
Reduces the difference to upstream.
From ab118b2529 .
2019-07-20 00:30:13 -05:00
Kovid Goyal
1cb15dedac
Simplify the event loop code
...
Also reduce input latency by ignoring repaint_delay when
there is actual pending input.
Gets rid of request_tick_callback(). Now empty events
result in the tick callback being called so there is only a
single mechanism for waking up the main loop and getting
the tick callback called.
2019-07-18 15:51:54 +05:30
Kovid Goyal
f5cf6c1dcb
Also make the loop flags volatile
2019-07-17 19:55:19 +05:30
Kovid Goyal
89307727e7
Use atomic variables for main loop flags
2019-07-17 19:45:52 +05:30
Kovid Goyal
8244f7cd58
Linux: Only process global state when something interesting happens
...
This matches behavior on macOS. Had initially set the code to process
on every loop tick in an attmept to workaround the issue of the event
loop freezing on X11 until an X event is delivered. However, in light
of #1782 that workaround was incorrect anyway. Better to have similar
behavior across platforms. This also has the advantage of reducing CPU
consumption.
Also add a simple program to test event loop wakeups.
2019-07-15 21:30:00 +05:30
Kovid Goyal
eb30ba7722
Cocoa: Fix code to shutdown display link for inactive monitors
2019-07-11 22:34:28 +05:30
Kovid Goyal
f8418d68a6
Fully drain the wakeupfd
2019-07-09 18:49:46 +05:30
Kovid Goyal
c0000fb24e
Should use an unsigned int for eventfd
2019-07-09 18:42:17 +05:30
Kovid Goyal
c169f7ae83
Retry writing to wakeupfd on EAGAIN as well
2019-07-09 18:40:51 +05:30
Kovid Goyal
7e36489034
Dont call detect joysticks if support for them has been disabled
2019-07-08 11:18:00 +05:30
Kovid Goyal
d259b12ae7
Micro-optimization: Avoid repeated calls to XQLength
2019-07-08 11:05:04 +05:30
Kovid Goyal
e7173f8145
Linux: Fix a regression in 0.14.0 that caused the event loop to tick continuously, wasting CPU even when idle
...
Fixes #1782
2019-07-07 05:57:18 +05:30
Kovid Goyal
67f23664c9
Generate Wayland protocol definitions in parallel as well
2019-07-05 20:57:56 +05:30
Kovid Goyal
39f6071c68
macOS: Fix a deadlock with CVDisplayLink
...
I had added an optimization to not pass messages to
main thread every time the CVDisplayLink timer fired, unless
a render frame for that monitor was actually requested.
However, this optimization is impossible to implement wihtout a deadlock
since CVDisplayLink has its own internal lock that it does not expose.
So I guess macOS users with multiple monitors will simply have to take
the performance hit of useless wakeups sixty times a second for every
extra monitor.
Fixes #1779
2019-07-05 20:16:32 +05:30
Kovid Goyal
556992a117
Forgot to make the eventfd cloexec and non-blocking
2019-07-05 10:08:15 +05:30
Kovid Goyal
a41ef8d513
Abort if addWatch during initialization of poll data fails
2019-07-05 10:00:39 +05:30
Kovid Goyal
6d96a89328
Linux: Use the more efficient eventfd mechanism to wakeup the event loop
2019-07-05 09:54:24 +05:30
Kovid Goyal
0fb1481038
Move event loop wakeup code into backend_utils
2019-07-05 09:34:51 +05:30
Kovid Goyal
4b77530c65
Store a reference to the glfw window pointer in the NSWindow class as well
2019-07-04 09:56:59 +05:30
Kovid Goyal
c9a574a764
Cocoa: Ensure no callbacks are called on the view even if it is retained after being released
...
Fixes #1761 (I hope)
2019-07-04 09:03:13 +05:30
Luflosi
37aee7133d
Convert tabs to spaces
2019-07-03 20:28:40 +02:00
Kovid Goyal
f49f0d19f9
oops
2019-07-01 16:39:02 +05:30
Kovid Goyal
b9029f6c67
Remove unnecessary extra copy
2019-07-01 13:57:16 +05:30
Kovid Goyal
92496f42c9
Try a couple of different header files for the BTN_ includes
2019-07-01 10:48:35 +05:30
Kovid Goyal
841c907efc
Build glfw with all warnings enabled
2019-07-01 10:42:07 +05:30
Kovid Goyal
9bc288cd8e
...
2019-07-01 08:49:18 +05:30
Kovid Goyal
2ef0391b08
Convert some declarations to C99 style
...
From upstream: 0c6b505619
2019-07-01 08:32:47 +05:30
Kovid Goyal
6db768d1a3
Remove unneeded header
...
Fixes #1768
2019-07-01 06:07:55 +05:30
Kovid Goyal
9b080950a9
Cocoa: Cleanup
...
This makes the Cocoa _glfwPlatformSetWindowMonitor consistent with its
X11 and Win32 counterparts.
From upstream: 3262c29440
2019-07-01 05:59:32 +05:30
Kovid Goyal
3cd1fef4cb
X11: Clean up EWMH feature detection
...
From upstream: fad9896d38
2019-07-01 05:57:17 +05:30
Kovid Goyal
a491a801bf
X11: Let the language initialize XEvent structs
...
From upstream: 1f508530f0
2019-07-01 05:47:04 +05:30
Kovid Goyal
75d697fa97
Fix #1766
2019-06-30 16:07:45 +05:30
Kovid Goyal
8c9d2d3ca2
macOS: Reduce energy consumption when idle by shutting down Apple's display link thread after 30 second of inactivity
...
Fixes #1763
2019-06-29 14:21:47 +05:30
Kovid Goyal
86305fdeb3
Use CVDisplayLinkIsRunning() rather than tracking started state since the OS can apparently shutdown the thread on its own in some scenarios
2019-06-28 17:46:59 +05:30
Luflosi
8ffc841a3a
Reduce the difference of glfw/cocoa_* to upstream
...
This only changes some formatting, whitespace, etc.. There are no
changes to the functionality.
Let me know if you don't like some of those changes.
2019-06-21 15:53:26 +02:00
Luflosi
fb98aa650d
Reduce the difference of glfw to upstream
...
This only changes some formatting, whitespace, etc.. There are no
changes to the functionality.
Let me know if you don't like some of those changes.
2019-06-20 21:40:59 +02:00
Luflosi
f1c36aba83
Reduce the difference of glfw/null_* to upstream
...
This only changes some formatting, whitespace, etc.. There are no
changes to the functionality.
Let me know if you don't like some of those changes.
2019-06-12 20:45:21 +02:00
Luflosi
8be698681c
Reduce the difference of glfw/wl_* to upstream
...
This only changes some formatting, whitespace, etc.. There are no
changes to the functionality.
Let me know if you don't like some of those changes.
2019-06-12 14:55:56 +02:00
Luflosi
bada795320
Reduce the difference of glfw/x11_* to glfw upstream
...
This only changes some formatting, whitespace, etc.. There are no
changes to the functionality.
Let me know if you don't like some of those changes.
2019-06-11 17:57:39 +02:00
Kovid Goyal
0fafc07db0
Fix #1702
2019-06-11 15:30:50 +05:30
Kovid Goyal
47acc9ff2f
Get rid of GLFW_(TRUE|FALSE)
2019-06-08 08:14:30 +05:30
Kovid Goyal
fe62700825
Get rid of GLFWbool
2019-06-08 08:12:42 +05:30
Luflosi
fbc4d3e1be
Remove extra spaces
2019-06-08 00:48:09 +02:00
Kovid Goyal
656916e0fa
Use remove_i_from_array in a few more places
...
Also simplify the REMOVER macro
2019-06-07 14:25:33 +05:30
Kovid Goyal
4a55eb9e7f
typo
2019-06-07 13:53:35 +05:30
Kovid Goyal
9c8cf04a80
Wayland: Don't insert the same monitor twice if the done event for an output is sent twice
2019-06-07 13:38:44 +05:30
Kovid Goyal
e846bc9308
Wayland: Fix crash when enabling disabling monitors on sway
...
When an output is unregistered, the corresponding monitor object should
be removed from every windows' monitor list
Proper fix for #1696
2019-06-07 12:40:02 +05:30
Kovid Goyal
3c7a71772c
Wrap memmove in glfw with a nice safe macro
2019-06-07 10:01:10 +05:30
Kovid Goyal
303711ab8d
Wayland: Detect SSD by querying compositor
...
Much more reliable than checking environment variables. Does
add ~1ms to startup time on Wayland.
2019-06-05 10:37:57 +05:30
Kovid Goyal
c509ecca52
Wayland: Fix resizing the window on a compositor that does not provide server side window decorations, such a GNOME or Weston not working correctly
...
See #1659
2019-06-04 19:40:00 +05:30
Kovid Goyal
e5d8eb7845
Micro-optimization
2019-06-04 19:28:46 +05:30
Kovid Goyal
8406d4a8f1
Forgot another print statement
...
Really should not code when I am busy :)
2019-06-02 20:23:56 +05:30
Kovid Goyal
e25b64ae15
...
2019-06-02 18:01:32 +05:30
Kovid Goyal
59205a4caf
macOS: Fix a regression in the previous release that broke using :kbd:ctrl+shift+tab
...
Fixes #1671
2019-06-02 17:36:16 +05:30
Kovid Goyal
f6f55aaa9a
NSGL: Remove enforcement of forward-compatible flag
...
Upstream commit:
0b01d850ed
2019-05-29 19:52:15 +05:30
Kovid Goyal
6f1aecab99
Remove pointless comment
...
Upstream commit
84ec99bb01
2019-05-29 19:50:22 +05:30
Kovid Goyal
f33205a490
Wayland: Fix maximizing the window on a compositor that does not provide server side window decorations, such a GNOME or Weston not working
...
Fixes #1662
2019-05-29 17:07:42 +05:30
Kovid Goyal
8193b2a44b
Use layout depenedent key check for strl+tab as well
2019-05-29 08:43:13 +05:30
Kovid Goyal
8e57fd93c6
macOS: Fix a regression that caused cmd+v to double up in the dvorak keyboard layout
...
Fixes #1652
2019-05-28 20:35:13 +05:30
Kovid Goyal
d262f43b5b
Log ARepeat property
2019-05-28 20:18:50 +05:30
Kovid Goyal
73224e7d95
One less line in the debug log
2019-05-28 20:04:21 +05:30
Kovid Goyal
abf9c4117d
macOS: Fix a regression that could cause rendering of a kitty window to occasionally freeze in certain situations, such as moving it between monitors or transitioning from/to fullscreen
...
Fixes #1641
2019-05-28 17:54:34 +05:30
Kovid Goyal
a51239c6ae
Add support for the underscore key found in some keyboard layouts
...
Fixes #1639
2019-05-24 17:59:50 +05:30
Luflosi
05f01525c3
Revert "macOS: Fix cocoa mouse y-coord off by one"
...
This reverts commit 8969206450 .
Fixes #1621 .
When committing b3f1acd400 , applying the glfw upstream patch 3c3981a4f0 for https://github.com/glfw/glfw/issues/1461 , this commit should have been reverted as it was just a quick fix for https://github.com/glfw/glfw/issues/1461 .
2019-05-21 19:31:57 +02:00
Luflosi
a792c94ccf
Use python3 shebang for all python scripts
...
Fixes #1624 .
Use python3 shebang for all python scripts as python still defaults to python2 on many systems.
2019-05-20 14:44:24 +02:00
Kovid Goyal
4fff84b4b9
Add void to all function declarations for functions that take no arguments
...
Micro-optimization for some architectures. Enforced via
-Wstrict-prototypes
2019-05-13 11:04:21 +05:30
Kovid Goyal
3e964163c0
Pass zero for fullscreen flags on non Cocoa platforms
2019-05-12 16:07:54 +05:30
Kovid Goyal
c95d3b19b3
X11 backend: Get rid of override redirect
...
Was used for hackish fullscreen, which we no longer support
2019-05-12 15:59:16 +05:30
Kovid Goyal
1fa9b8f102
X11: use the window manager's native full-screen implementation when making windows full-screen
...
This matches the behavior on Cocoa and Wayland.
Fixes #1605
2019-05-12 15:53:06 +05:30
Kovid Goyal
ad672fc9d6
Wayland: Remove wl_shell support
...
From upstream: 599fb3de34
2019-05-11 17:50:02 +05:30
Kovid Goyal
a0f298ddb0
...
2019-05-11 16:35:48 +05:30
Kovid Goyal
a3f9835b7b
X11 backend: Improve performance when handling consecutive XkbKeyMap events
...
Only recompile the keymap when actually needed, greatly improving
performance when the X server sends multiple consecutive key map events.
Fixes #1606
2019-05-11 13:39:05 +05:30
Kovid Goyal
268e5cef3b
Remove useless else
2019-05-03 13:37:57 +05:30
Kovid Goyal
f0c663d42d
macOS: Improve handling of IME extended input
...
Compose characters are now highlighted and the IME panel moves along with the text
Fixes #1586
Fixes #1461
2019-05-03 13:30:56 +05:30
BlahGeek
e36e44ab3a
macOS: do not pass input events while having marked text
...
fix chinese input method backspacing issue
macOS: Set pre-edit text for IME
macOS: implement glfwPlatformUpdateIMEState
set firstRectForCharacterRange correctly
macOS: update IME position on each input
macOS: use float instead of int for updateIMEState
minor fix
macOS: ignore marked text on deadkey
fixes german keyboard input
macOS: convert markedRect to screen coord
2019-05-03 13:27:06 +05:30
Kovid Goyal
408cd9cf9b
Wayland: Only print out window attention error once
2019-04-27 14:53:31 +05:30
Kovid Goyal
8b47e63136
Wayland backend: Dont roundtrip to the server just to wakeup the main loop
2019-04-27 14:52:15 +05:30
Kovid Goyal
379ec88776
Only use the tick callback mechanism on macOS
...
On Linux, just call the tick callback on every loop tick. This is much
simpler, and should fix the issue with screen updates sometimes getting
stuck waiting for an X11 event.
Note that this was what used to happen (global state being checked on
every loop tick) before the refactoring to use a GLFW event loop,
therefore there should be no performance regressions, though we
of course end up checking global state on every group of events on
Linux, instead of only when something of interest happens. I suspect, to
achieve the latter is going to require implementing a mutex/lock in the
main loop to avoid races, which doesn't seem worth it.
2019-04-27 14:40:09 +05:30
Kovid Goyal
a320e8bc25
When debuggin event loop display number of dispatched X11 events
2019-04-27 13:52:44 +05:30
Kovid Goyal
0987a536b1
Add extra logging to debug the event loop
...
This should make tracking down the root cause of the
event loop pauses on X11 easier. And the infrastructure
should come in handy in the future as well.
2019-04-24 16:16:40 +05:30
Kovid Goyal
b6267d4a8c
X11 backend: Get rid of server roundtrip just to wake up the event loop
2019-04-24 13:42:26 +05:30
Kovid Goyal
2df97e309b
X11 backend: Dispatch X11 events after XFlush
2019-04-24 06:25:00 +05:30
Kovid Goyal
ef86f8a20c
NSGL: Disable swap interval
...
Swap interval now uses CVDisplayLink.
From upstream: 28f118f4de
2019-04-18 10:14:29 +05:30
Kovid Goyal
b3f1acd400
Cocoa: Fix coordinate transformations
...
From upstream: 3c3981a4f0
2019-04-18 10:12:41 +05:30
Kovid Goyal
5c4462281e
Cocoa: Upstream fix for mouse hover detection
...
0e74265426
2019-04-18 09:58:09 +05:30
Kovid Goyal
8969206450
macOS: Fix cocoa mouse y-coord off by one
...
See https://github.com/glfw/glfw/issues/1461
2019-04-09 22:02:36 +05:30
Kovid Goyal
41318d763b
Fix missing context APIs in version strings
2019-04-09 10:06:10 +05:30
Kovid Goyal
8251b906b6
Add a listener for GPU changed events on macOS
...
Currently does nothing, but could potentially be used to fix:
https://github.com/kovidgoyal/kitty/issues/794
Will need someone with the hardware though to test
exactly what needs to be done to restore the custom cursor image.
2019-04-06 10:05:21 +05:30
Kovid Goyal
b10312e249
Upstream fixes for vulkan surface creation and the retina hint
...
e108c0de0d
980fc9b52f
2019-03-28 13:09:22 +05:30
Kovid Goyal
6f3a9d6d29
macOS: Remove check for pre-10.8 SDK
2019-03-28 12:42:14 +05:30
Kovid Goyal
c4e89d9d0c
macOS: Consolidate compatibility macros for old SDKs in one place
2019-03-28 12:37:05 +05:30
Kovid Goyal
ecf2c86787
Wayland: Abort on fatal display errors instead of looping forever
2019-03-22 08:53:10 +05:30
Kovid Goyal
fcb26e5dc7
Cocoa: User performSelectorOnMainLoop for render frames as well which means render frames work during modal loops
2019-03-21 16:51:01 +05:30
Kovid Goyal
0dc6ac26c3
Cocoa: user performSelectorOnMainThread instead of postEvent for the tick callback
...
performSelectorOnMainThread runs in more loop run modes which means that
the tick callback will behave more like it does on other platforms,
during window resizes and other modal event loops.
2019-03-21 15:55:43 +05:30
Kovid Goyal
48303bac75
Use "arrow" as the arrow cursor on Linux
...
Different themes preferentiallyuse left_prt or right_ptr, so use arrow
instead
2019-03-21 13:22:13 +05:30
Kovid Goyal
5ab8a665be
GLFW: Add more standard cursor shapes
...
Also use an enum for the cursor shapes
2019-03-21 13:06:13 +05:30
Kovid Goyal
733158a2de
Better error reporting when failing to load cursor
2019-03-21 10:38:26 +05:30
Kovid Goyal
a2e47d2d0e
EGL: Warn if non-blocking swap buffers is not available
2019-03-21 09:46:46 +05:30
Kovid Goyal
bfb97a6e6f
Wayland: use correct name for hand cursor
2019-03-21 09:24:51 +05:30
Kovid Goyal
106dc2b03b
Wayland: Load cursor theme at init even if no mouse pointer is currently present
2019-03-20 15:56:34 +05:30
Kovid Goyal
7d9d096fbf
Rationalize change reporting after configure event on Wayland
...
Fixes #1482 (I hope)
2019-03-19 15:02:11 +05:30
Kovid Goyal
c129dd9331
Wayland: Ignore invalid scale values from compositor
2019-03-19 14:30:43 +05:30
Kovid Goyal
5c75ac0a96
GLFW Wayland backend: Dont fire resize events for Wayland configure events that dont change the window size. Fixes #1473
2019-03-17 15:07:32 +05:30
Kovid Goyal
e9e4ac13ee
Fix #1472
2019-03-16 07:37:36 +05:30
Kovid Goyal
d3cee832ce
Wayland: Dont try to focus window on create/show since it is not allowed anyway
2019-03-07 18:14:12 +05:30
Kovid Goyal
7ab63525c7
Dont use a global autorelease variable
...
Use function local @autorelease blocks instead
2019-03-06 09:34:55 +05:30
Kovid Goyal
a1c49a0f7f
Cocoa: Disable shadow for transparent framebuffer
...
From upstream: 9883cb64f0
2019-03-06 09:12:16 +05:30
Kovid Goyal
4c4c6ab0e6
Various fixes for monitor work area retrieval from upstream
2019-03-06 09:08:08 +05:30
Kovid Goyal
2e0d39b512
Remove windows glfw backend as it is unused
2019-03-06 08:47:45 +05:30
Kovid Goyal
0899019518
Add glfwGetMonitorWorkarea
...
From upstream: be295ccbea
2019-03-06 08:47:01 +05:30
Kovid Goyal
db16996181
Fix Coverity Scan false positive
...
From upstream: c20754c4a6
2019-03-06 08:40:02 +05:30
Kovid Goyal
aa2b21456f
Round refresh rate instead of truncating
...
From upstream: 621ece63c8
2019-03-06 08:36:59 +05:30
Kovid Goyal
3bd1ca0ac3
Avoid using timing related hacks to detect the end of a live resize on macOS
...
Since cocoa provides start/end notifications for live resizing, rely on
those instead.
2019-03-04 19:52:46 +05:30
Kovid Goyal
f0a2c34eca
Port cocoa backed to use glfw mainloop
2019-03-04 19:52:46 +05:30
Kovid Goyal
9f35b9281b
Avoid needing to continuously add/remove timers
2019-03-04 19:52:46 +05:30
Kovid Goyal
7624578c21
Fix X11/Wayland addTimer returning incorrect timer ids
2019-03-04 19:52:45 +05:30
Kovid Goyal
d4b477ad78
Share main loop implementation between wayland and X11
2019-03-04 19:52:45 +05:30
Kovid Goyal
bef9490fa8
Switch to using the GLFW main loop
2019-03-04 19:52:45 +05:30
Kovid Goyal
d593ccba2f
Add a loop tick callback
2019-03-04 19:52:45 +05:30
Kovid Goyal
1902d8bb19
Explicitly handle the empty events on X11
2019-03-04 19:52:45 +05:30
Kovid Goyal
da507dfd19
Infrastructure for moving the run loop into GLFW
...
This is needed on Cocoa, where Apple expects to be in control of the run
loop.
2019-03-04 19:52:44 +05:30
Kovid Goyal
a1e9b854e3
Move cocoa custom even dispatching into the application object
...
This allows it to work even with the cocoa run loop
2019-02-25 15:51:39 +05:30
Luflosi
f38b27e923
Add check for NULL after malloc()
2019-02-24 14:48:54 +01:00
Kovid Goyal
cb8116e2af
Fix leak of a few bytes of memory after every update notification
...
Fixes #1411
2019-02-24 10:19:19 +05:30
Luflosi
a653c17e8a
Fix function returning the wrong type
2019-02-22 15:13:13 +01:00
Kovid Goyal
4629ef627f
GLFW: Add support for render frames on Cocoa (CVDisplayLink)
...
Allows vsync to work again since Apple broke OpenGL swap intervals on
Mojave
2019-02-20 15:08:07 +05:30
Kovid Goyal
702613915b
Revert "macOS: Fix v-sync to monitor refresh rate no longer working under Mojave."
...
This reverts commit 104e213934 .
Fixes #1393
2019-02-19 14:43:36 +05:30
Kovid Goyal
dcb2d95f9a
GLFW: Add support for window occluded notifications on macOS
...
Based on: https://github.com/glfw/glfw/pull/1123
2019-02-18 10:03:21 +05:30
Kovid Goyal
104e213934
macOS: Fix v-sync to monitor refresh rate no longer working under Mojave.
...
Mojave broke the technique GLFW used to use for v-sync. Changed to use
CVDisplayLink, fix comes from: https://github.com/glfw/glfw/pull/1417
2019-02-17 11:39:49 +05:30
Kovid Goyal
fe3a432845
Documentation for window frames on Wayland
2019-02-17 10:38:48 +05:30
Kovid Goyal
423f8e59cc
Wayland: Fix auto-iconify on kwin_wayland
...
Upstream: 45bd991ea9
2019-02-17 10:35:39 +05:30
Kovid Goyal
1c468b2931
Wayland: Only auto-iconify fullscreen windows
...
Upstream: edf0a07174
2019-02-17 10:31:17 +05:30
Kovid Goyal
85faad5ec7
Wayland: use SHM_ANON on FreeBSD
...
Upstream: 36ce73bbfd
2019-02-17 10:30:02 +05:30
Kovid Goyal
869152750c
X11: Fix system cursor used for GLFW_HAND_CURSOR
...
From upstream: 2a27eb95e4
2019-02-17 10:21:15 +05:30
Kovid Goyal
23482e3cf4
macOS: Allow assigning only the left or right :kbd:Option key to work as the :kbd:Alt key. See :opt:macos_option_as_alt for details
...
Fixes #1022
2019-02-14 20:39:32 +05:30
Kovid Goyal
b40ca5800d
macOS: Fix using multi-key sequences to input text ignoring the first few key presses if the sequence is aborted
...
Fixes #1311
2019-02-14 15:10:13 +05:30
Kovid Goyal
3b25081353
Print out current text when ignoring dead keys
2019-02-14 14:56:06 +05:30
Kovid Goyal
274dd2f3fe
Cleanup
...
From upstream: 90e22947c6
2019-02-03 20:17:28 +05:30
Kovid Goyal
fb5dbc811b
Cocoa: Fix handling of analog joystick buttons
...
From upstream: 463ef7eb71
2019-02-03 20:16:47 +05:30
Kovid Goyal
c31c32f921
Cocoa: Add missing IOHID page and usages
...
From upstream: 51ca41dd9f
2019-02-03 20:15:33 +05:30