Kovid Goyal
f34cc1861a
Clear marked text when text is inserted
...
This is apparently what Cocoa expects. Fixes committing pre-edit text no
longer working.
2021-11-11 22:35:02 +05:30
Kovid Goyal
bd4ed38a3c
Dump more informatin about what cocoa does when processing key events
2021-11-11 22:32:30 +05:30
Kovid Goyal
8644fed534
Only unmark on backspace key
2021-11-11 22:05:39 +05:30
Kovid Goyal
ca9fdadf3c
Dont clear marked text on every keyDown event
...
Let the input system do it for us. That wy we can hopefully use calls to
unmarkText as a signal to commit the pre-edit text.
Hopefully not clearing the marked text on key down doesnt break anything
else.
2021-11-11 21:14:53 +05:30
Kovid Goyal
228364e317
oops
2021-11-11 20:53:14 +05:30
Kovid Goyal
e65aee4533
Cleanup calls to unmarkText
2021-11-11 20:44:43 +05:30
Kovid Goyal
9be37f7d2d
cocoa is weird
2021-11-11 12:45:03 +05:30
Kovid Goyal
d95a00df73
GLFW API to check if window is fullscreen
2021-11-11 12:33:12 +05:30
Kovid Goyal
6da5a8073c
Wayland: Apparently Java doesnt even set text/plain as a mimetype when copying text. Instead it uses UTF8_STRING and STRING.
...
So check for those as well. Am guessing whoever wrote this code in Java
just copied their old X11 shit without checking the specs. See #4183
2021-11-03 20:46:33 +05:30
Kovid Goyal
ebaac70b27
Fix #4183 (paste in wyland with mime type text/plain)
2021-11-03 07:00:06 +05:30
Luflosi
a1d24028b8
Fix Clang warning
...
Without this, kitty fails to compile:
```
glfw/cocoa_init.m:462:14: error: case value not in enumerated type
'NSEventModifierFlags' (aka 'enum NSEventModifierFlags')
[-Werror,-Wswitch]
case (NSEventModifierFlagShift | NSEventModifierFlagOption):
^
glfw/cocoa_init.m:465:14: error: case value not in enumerated type
'NSEventModifierFlags' (aka 'enum NSEventModifierFlags')
[-Werror,-Wswitch]
case (NSEventModifierFlagShift | NSEventModifierFlagCommand):
^
```
I thought about changing the type of the `modifierFlags` function parameter from `NSEventModifierFlags` to `NSUInteger` since `NSEventModifierFlags` is defined as an enum according to https://developer.apple.com/documentation/appkit/nseventmodifierflags?language=objc and is technically not the proper type for a bit field. But since Apple themselves define `modifierFlags` as `NSEventModifierFlags` according to https://developer.apple.com/documentation/appkit/nsevent/1534405-modifierflags?language=objc , I think the fix in this commit is better.
This warning was introduced with commit f9944e6140 .
2021-10-30 16:25:20 +02:00
Kovid Goyal
69e903a4c4
Add more type annotations
2021-10-27 11:13:28 +05:30
Kovid Goyal
9c2f96f7eb
Add more type annotations
2021-10-27 08:45:45 +05:30
Kovid Goyal
c381716ecf
Specify we need alpha as well
2021-10-25 17:15:46 +05:30
Kovid Goyal
6c7420f4e7
Add a comment explaining why we do 1,1,1,0
2021-10-24 13:40:18 +05:30
Kovid Goyal
80a357623d
Linux X11: Add support for 10bit colors
...
Fixes #4150
2021-10-24 13:19:05 +05:30
Kovid Goyal
0a4dfa8fd2
macOS: Prevent resizing of fullscreen OS windows as it leads to visual artifacts
2021-10-24 12:38:44 +05:30
Kovid Goyal
edd423aad6
macOS; Fix restoring from fullscreen when resize increments are enabled
2021-10-23 13:06:47 +05:30
Kovid Goyal
f9944e6140
Pass through more modifier+tab variants
2021-10-17 11:31:54 +05:30
Kovid Goyal
f28d9bcd8c
Change sybolic constant for insert key
2021-10-14 21:05:21 +05:30
Kovid Goyal
c6039fc399
Also passthrough Insert and Shift+Insert which cocoa seems to intercept
2021-10-14 20:27:22 +05:30
Kovid Goyal
a3717436b6
macOS: Fix resize_in_steps not working correctly on high DPI screens
...
See #4114
2021-10-12 14:39:06 +05:30
Kovid Goyal
61a56a0561
macOS: Fix very first keypress after window creation being sent as a repeat instead of a press event
...
Now the dummy event on input source changed is sent with no key and only
after an actual change instead of on startup as well.
2021-10-11 12:30:42 +05:30
Kovid Goyal
820fb6dda9
Pass through all esc + modifier combinations since they arent generally used in macOS
2021-10-11 11:27:24 +05:30
Kovid Goyal
dc11b76bea
Restrict the overridden cocoa global shortcuts
2021-10-11 06:46:59 +05:30
Kovid Goyal
2b9408c217
macOS: Fix ctrl or cmd with Esc or Function keys not working
...
Fixes #4109
2021-10-10 21:39:20 +05:30
Kovid Goyal
853f7cc59a
Make handling of CC more robust
...
Allows multi-command compilers and makes detection of gcc more robust.
Fixes #4102
2021-10-07 13:35:56 +05:30
Kovid Goyal
1b42f69119
Allow specifying extra lib dirs as well
...
Also use the extra include and lib dirs when detecting librsync
2021-10-06 10:23:01 +05:30
Kovid Goyal
3728d2cfd9
Add changelog entry for previous PR
2021-09-29 19:43:33 +05:30
Park, Jeongmin
4232904055
ibus: Add support for ForwardKeyEvent signal
...
The ForwardKeyEvent ibus signal is used to maintain ordering between CommitText events and non-IME key events.
The ordering is important for Korean IMEs, where it automatically commits text whenever a character is fully composed. This is different from Chinese/Japanese IMEs, where user manually presses a key to commit each word.
Without this patch, kitty can't handle non-IME key events when used with ibus-hangul, which utilizes ForwardKeyEvent signal.
Without ForwardKeyEvent:
```
key | sequence of events from application's view
r | UpdatePreeditText 'ㄱ'
k | UpdatePreeditText '가'
1 | (receives the reply to ProcessKeyEvent call: "native_key: 0x31 release: 0 handled: 0")
| -> UpdatePreeditText ''
| -> CommitText '가'
```
Application receives "1가", which is incorrect.
With ForwardKeyEvent:
```
key | sequence of events from application's view
r | UpdatePreeditText 'ㄱ'
k | UpdatePreeditText '가'
1 | (receives the reply to ProcessKeyEvent call: "native_key: 0x31 release: 0 handled: 1", and kitty discards the event)
| -> UpdatePreeditText ''
| -> CommitText '가'
| -> ForwardKeyEvent keysym=0x31("1")
```
Application receives "가1", which is correct.
Relevant ibus-hangul github issue to implement ForwardKeyEvent: https://github.com/libhangul/ibus-hangul/issues/42
Relevant changes in Qt to handle ForwardKeyEvent: https://codereview.qt-project.org/c/qt/qtbase/+/212179 , https://codereview.qt-project.org/c/qt/qtbase/+/255587
2021-09-29 21:20:09 +09:00
Kovid Goyal
a038477ce0
Cleanup previous PR
2021-09-26 11:17:54 +05:30
unisgn
d078cb264a
Update ibus_glfw.c
2021-09-25 00:10:53 +08:00
unisgn
c45a656153
ibus's dbus name owner changed detection
...
fcitx5 works fine with kitty, except that when you restart fcitx5, kitty stop working with fcitx5, because the dbus_connection_get_is_connected(ibus->conn) in #check_connection is always true when you use fcitx5.
this patch add a dbus name owner changed detection to detect the online status of ibus, in case the ibus backend uses the session bus, like fcitx5.
2021-09-24 23:10:38 +08:00
Kovid Goyal
bdebb19648
Merge branch 'wayland-hyper' of https://github.com/orki/kitty
2021-08-18 08:29:51 +05:30
Ravi R Kiran
75df0cbcf5
Gate Wayland modifier autodiscovery behind an environment variable
2021-08-17 21:46:09 -05:00
Ravi R Kiran
1b88a68b55
Be even more conservative in declaring success
...
This handles the nonsensical case of Alt_X being mapped to two
different modifiers.
2021-08-17 21:11:55 -05:00
Ravi R Kiran
b0c963b650
Heuristic to find hyper and meta on wayland
2021-08-16 21:59:53 -05:00
Kovid Goyal
be34af4555
Remove inline from .c files
...
It is ignored by compilers and hides unused static functions
2021-08-03 09:11:17 +05:30
Kovid Goyal
c797944923
Also set first underviced render frame request
2021-08-01 12:59:22 +05:30
Kovid Goyal
ade4e67b51
Possible fix for #3890
...
Try to ensure we have a functioning displaylink always.
GLFW skips over sleeping monitors during a poll and also
had a bug where the display link was not re-created for a monitor
that already had a glfw monitor entry.
Also add a bunch more debug reporting
2021-08-01 12:53:35 +05:30
Kovid Goyal
6bfb704f6f
When going from csd->no csd increase window height to compensate for titlebar.
...
Sway will send the next configure event (for example when focus changes)
with titlebar height added, so to avoid a sudden resize at that time,
bump the height by the titlebar.
2021-07-31 14:56:45 +05:30
Kovid Goyal
80cebdefcd
Better fix for CSD toggling on Wayland
...
Draw CSD if the compositor wants us to. See #3888
2021-07-31 14:15:38 +05:30
Kovid Goyal
c26665ec4d
Wayland: If the compositor turns off server side decorations after turning them on do not draw client side decorations
...
This matches the behavior of GNOME based clients and in any case sway
seems to get very confused if CSD is drawn.
Fixes #3888
2021-07-31 11:41:27 +05:30
Kovid Goyal
91d82ebf4b
Remove unused import
2021-07-31 11:27:29 +05:30
Kovid Goyal
303e4baa58
Add GLFW API to set WM_COMMAND
...
Also have create_os_window take keyword arguments
2021-07-30 08:35:40 +05:30
Danilo Horta
890181172f
Fix "Cocoa: Failed to find service port...".
2021-07-28 00:39:50 +01:00
Kovid Goyal
2e01c1f37e
Wayland: Inform compositor of new window geometry when setting window size
2021-07-25 12:26:09 +05:30
Kovid Goyal
8dfef58f29
Use a glfw specific name for memfd_create
2021-07-20 21:49:11 +05:30
Kovid Goyal
368bc91eed
macOS: Render colors in the sRGB colorspace to match other macOS terminal applications
...
Fixes #2249
2021-07-12 17:34:03 +05:30
Kovid Goyal
219bf564f7
Fix #3719
2021-06-13 09:07:08 +05:30
Kovid Goyal
00828cb804
More reloading work for various options
2021-06-07 09:30:15 +05:30
Kovid Goyal
e4b4a35375
macOS: Fix rendering getting stuck on some machines after sleep/screensaver
...
This is caused, as far as I can tell, by CVDisplayLink getting stuck.
Apple apparently are incapable of writing a simple timer robustly.
So if it remains stuck after a second delete and recreate it to force it
to restart.
Fixes #2016
2021-05-12 07:30:17 +05:30
Kovid Goyal
e36f11385f
Convert mouse buttons to an enum
2021-05-10 07:16:43 +05:30
Kovid Goyal
6b9b478492
Linux: Fix keyboard layout change keys defined via compose rules not being ignored
2021-05-01 08:09:26 +05:30
Kovid Goyal
62656b24eb
GNOME: Add a new option to control the color of the kitty window titlebar
2021-04-25 11:22:23 +05:30
Ravi R Kiran
3c4460ca98
Give shift, control and caps lock precedence over other modifiers
2021-04-23 10:47:26 -05:00
Kovid Goyal
93dfe19c35
GNOME: Fix maximize state not being remembered when focus changes and window decorations are hidden
...
Apparently mutter needs window geometry set after the surface commit not
before, otherwise it doesnt "stick". When decorations are not hidden
there were other commits caused by the decorations, masking the issue.
Fixes #3507
2021-04-23 14:04:12 +05:30
Luflosi
6606f51636
Fix compilation on macOS 10.12
...
The constants `NSControlStateValueOn`, `NSControlStateValueOff` and `NSControlStateValueMixed` are only available for macOS 10.13 or above according to https://developer.apple.com/documentation/appkit/nscontrolstatevalueon?language=objc .
Without this commit, compilation fails with this message:
```
glfw/cocoa_window.m:1537:28: error: use of undeclared identifier 'NSControlStateValueOn'
item.state = NSControlStateValueOn;
^
glfw/cocoa_window.m:1539:28: error: use of undeclared identifier 'NSControlStateValueMixed'
item.state = NSControlStateValueMixed;
^
glfw/cocoa_window.m:1542:47: error: use of undeclared identifier 'NSControlStateValueOn'
item.state = controller.isDesired ? NSControlStateValueOn : NSControlStateValueOff;
^
glfw/cocoa_window.m:1542:71: error: use of undeclared identifier 'NSControlStateValueOff'
item.state = controller.isDesired ? NSControlStateValueOn : NSControlStateValueOff;
^
```
To fix this, simply redefine the constants to use the old and now deprecated constants on older macOS versions.
The code that causes this was introduced in 98519bf326 .
2021-04-22 10:53:34 +02:00
Kovid Goyal
f3c559ea13
Cleanup secure keyboard entry logging
2021-04-22 09:41:01 +05:30
Kovid Goyal
84f6aabf5b
Clean up debug keyboard on macOS
2021-04-22 09:28:11 +05:30
Kovid Goyal
cb41683f47
...
2021-04-19 20:12:20 +05:30
Kovid Goyal
629a8ad055
Fix #3501
2021-04-19 19:58:02 +05:30
Kovid Goyal
8c4e426534
Silence some unused parameter warnings
2021-04-19 13:53:27 +05:30
Kovid Goyal
9a2b0b6995
Wayland CSD: Double clicking on titlebar should toggle window maximize
2021-04-19 08:58:29 +05:30
Kovid Goyal
e6ccc2d178
Fix #3485
2021-04-15 08:57:47 +05:30
Kovid Goyal
db719eafac
Remove num/caps locks from modifier processing in mouse events
2021-04-14 10:08:33 +05:30
Kovid Goyal
111c123435
X11: Fix resize_in_steps being applied even when window is maximized
...
Fixes #3473
2021-04-13 12:48:23 +05:30
Kovid Goyal
ea2db51bbb
Output all modifier indices in debug
2021-04-13 10:21:26 +05:30
Kovid Goyal
cdcf8ed3bd
Add some colors to keyboad debug output
2021-04-13 07:41:47 +05:30
Kovid Goyal
572466eed1
XKB: Honor numlock state when reporting keypad keys
2021-04-13 07:35:13 +05:30
Kovid Goyal
4c644b8556
Add NumLock and CapsLock reporting to the keyboard protocol
2021-04-13 07:10:00 +05:30
Kovid Goyal
c989a7198b
Add support for the keypad Begin key
...
Fixes #3468
2021-04-11 07:58:27 +05:30
Georgi Yonchev
98519bf326
[macos] - Add "Secure Keyboard Entry" menu item
2021-04-09 16:39:51 +03:00
Ravi R Kiran
b5555b9a8d
Handle multiple real modifiers mapping to the same virtual modifier
2021-04-07 21:36:11 -05:00
Kovid Goyal
253de1eeca
Move the CSD metrics initialization into the CSD module
2021-04-07 22:28:04 +05:30
Kovid Goyal
4e6d5d3f1e
Fix GNOME breaking when setting window geometry
...
The current version of GNOME has a regression that causes the compositor
to send incorrect geometry with the next configure event if the CSD
buffers are created after a call to set_window_geometry.
So call set_window_geometry last. And shake head sadly.
2021-04-07 22:14:09 +05:30
Kovid Goyal
82a5733ec5
_glfwPLatformSetWindowSize() should not be called when handling configure events as it does a bunch of work already done before
2021-04-07 19:55:15 +05:30
Kovid Goyal
4822fa989e
Wayland: wire up live resize notification
2021-04-07 18:29:28 +05:30
Kovid Goyal
fe0e1adb2a
DRYer
2021-04-07 15:26:30 +05:30
Kovid Goyal
850a8218db
Allow toggling xdg configure debug output at runtime
2021-04-07 15:24:58 +05:30
Kovid Goyal
bf3fc5fb92
Also implement programmatic window resizing
2021-04-07 15:13:22 +05:30
Kovid Goyal
a19d1fc140
Restore size after all types of docking not just maximize/unmaximize
...
We make use of the fact that wayland tells us when the window is being
resized to track actual user requested sizes as opposed to compositor
requested ones.
2021-04-07 15:08:44 +05:30
Kovid Goyal
593eb1d952
Focus state needs to be updated always
2021-04-07 14:28:11 +05:30
Kovid Goyal
75ec801941
Get the window geometry with CSD fully correct (I think)
...
The co-ordinates are in the surface co-ordinate system. When the
compositor specifies sizes it apparently adds one subsurface size
in both x and y directions, not both. Possibly because the origin is
placed after the top and left subsurfaces. So modify it by adding
and extra subsurface size to that.
2021-04-07 14:21:43 +05:30
Kovid Goyal
5a1bd93518
Handle all known xdg top level states
2021-04-07 13:33:06 +05:30
Kovid Goyal
f849f383cb
Use the proper number for wayland CSD vertical shadow geometry
...
Apparently set_wayland_geometry uses buffer co-ordinates not surface
co-ords so the numbers need to be multiplied by the scale
2021-04-06 22:19:17 +05:30
Kovid Goyal
ac3080f0e2
Fix #3446 (I hope)
2021-04-06 21:51:03 +05:30
Kovid Goyal
0935dd053c
Modifier indices are unsigned
2021-04-06 21:45:02 +05:30
Kovid Goyal
7e78f30739
Wayland: Fix un-maximizing a window not restoring its size to what it was before being maximized
2021-04-05 13:47:50 +05:30
Kovid Goyal
d0f34e99a6
Fix fringing in shadow due to using integer operations
2021-04-05 11:09:34 +05:30
Kovid Goyal
c781825b00
Make setting sigma independent of kernel size
2021-04-05 10:55:30 +05:30
Kovid Goyal
7199c62b76
...
2021-04-05 10:13:33 +05:30
Kovid Goyal
2074a0d958
Forgot that the top margin is scaled
2021-04-05 09:57:44 +05:30
Kovid Goyal
3e2b626107
Inform compositor of visible window geometry
...
The numbers dont make logical sense, but they do what is expected on
GNOME and since only GNOME is stupid enough to insist on CSD, that's
all we care about.
2021-04-05 09:10:47 +05:30
Kovid Goyal
07de9c021d
Decrease shadow intensity when un-focused
2021-04-04 23:04:12 +05:30
Kovid Goyal
ff420b6495
Render top CSD shadow
2021-04-04 22:49:07 +05:30
Kovid Goyal
78908e5b93
Finish rendering of side shadows for CSD
2021-04-04 20:16:13 +05:30
Kovid Goyal
bd6643a523
Use a tile to reduce startup CPU cost of shadows
2021-04-04 18:16:33 +05:30
Kovid Goyal
71fddeb1f5
Start work on shadow based CSD
2021-04-04 17:13:50 +05:30
Kovid Goyal
d5448e6902
Add documentation and cleanup previous PR
2021-04-03 06:25:47 +05:30
Kovid Goyal
777b9eb68e
Merge branch 'hyper' of https://github.com/orki/kitty
2021-04-03 06:15:55 +05:30
Kovid Goyal
e209c3329b
Allow specifying a right_margin that is not rendered for the CSD title
...
Can void double rendering if I ever decide to add button to the titlebar
2021-04-01 22:50:54 +05:30
Kovid Goyal
b7d967b6bc
Dont offset title from left edge
2021-04-01 18:19:59 +05:30
Kovid Goyal
a1669267b3
Fix hiding on window decorations not working with new CSD code
2021-04-01 12:32:48 +05:30
Kovid Goyal
bbb40f2a21
Use a little less contrast for CSD title
2021-04-01 12:20:53 +05:30
Kovid Goyal
b1da76eefa
Set CSD color based on focus state
2021-04-01 10:54:22 +05:30
Kovid Goyal
5d496216e0
Implement rendering of titles in CSD
2021-04-01 10:23:04 +05:30
Kovid Goyal
e92ed67021
Add a callback glfw can use to request text rendering
2021-04-01 08:22:06 +05:30
Ravi R Kiran
b074533b29
Fix regression
2021-03-31 08:54:10 -05:00
Ravi R Kiran
953253de99
Implementation of hyper and meta
2021-03-30 14:23:17 -05:00
Kovid Goyal
53f2df115e
Hook up re-render of title bar when title changes
2021-03-29 12:15:47 +05:30
Kovid Goyal
0593158a86
Refactor CSD code to avoid un-needed rerenders and use a single shm pool for all CSD buffers
2021-03-29 12:15:47 +05:30
Kovid Goyal
c1f8372efc
Hide edges when not focused
2021-03-29 12:15:47 +05:30
Kovid Goyal
6e3db0be3d
Rename variable
2021-03-29 12:15:47 +05:30
Kovid Goyal
0f084faca5
Forgot to scale the title buffer
2021-03-29 12:15:47 +05:30
Kovid Goyal
c6829766bb
Properly scale the decorations buffers
2021-03-29 12:15:47 +05:30
Kovid Goyal
e7931b0121
Get rid of the no longer needed viewporter protocol
2021-03-29 12:15:47 +05:30
Kovid Goyal
aeb82e7fb0
Refactor the rendering of CSD on Wayland
2021-03-29 12:15:47 +05:30
Kovid Goyal
4edbe0ea4f
Remove unnecessary opacity marking for decoration buffers
2021-03-25 16:28:49 +05:30
Kovid Goyal
0788b98ae4
Fix header comment
2021-03-25 16:05:14 +05:30
Kovid Goyal
8a267894f3
Make createShmBuffer re-useable
2021-03-25 16:04:12 +05:30
Kovid Goyal
0510cd47f4
Rename buffer -> edge_buffer
2021-03-25 15:19:11 +05:30
Kovid Goyal
5dbbed3dcc
Ignore text input done if serial is incorrect
2021-03-25 15:05:48 +05:30
Kovid Goyal
7b130dc220
Double buffer pre-edit and commit events
2021-03-25 14:59:58 +05:30
Kovid Goyal
44df11c443
Move CSD metrics into the window object
...
Makes them potentially configurable
2021-03-25 12:52:09 +05:30
Kovid Goyal
63a50ec066
Use the correct mouse cursor theme on GNOME
...
Relies on a working desktop settings portal (xdg-desktop-portal-gtk)
2021-03-25 12:20:13 +05:30
Kovid Goyal
fc8e147e4a
Fix mouse handling when using client side decorations
...
The mouse co-ordinates used by glfw were all wrong.
2021-03-25 09:27:25 +05:30
Kovid Goyal
317ecbc9fa
Wayland: Add support for the text input protocol
...
Fixes #3410
2021-03-24 11:24:37 +05:30
Kovid Goyal
67445a22d3
...
2021-03-23 16:33:05 +05:30
Kovid Goyal
62997956a0
Start work on Wayland text input protocol support
2021-03-23 16:33:04 +05:30
Kovid Goyal
df7790fdfe
...
2021-03-23 16:31:25 +05:30
Kovid Goyal
34d06fa3e9
Use a struct for IME update events
...
Allows for easier extension in the future
2021-03-23 16:05:22 +05:30
Kovid Goyal
a981b46ec9
Use an enum for updateimestate as well
2021-03-23 10:52:11 +05:30
Kovid Goyal
84dcf8fd27
Use an enum for ime_state
2021-03-23 10:42:07 +05:30
Kovid Goyal
37e3e29c8c
Fix a crash on systems using musl as libc
...
Fixes #3395
2021-03-17 14:13:50 +05:30
Kovid Goyal
399c700939
Prevent Cocoa from sending us open file events from command line args
...
We process command line args ourselves, thank you very much.
2021-03-11 10:59:03 +05:30
Kovid Goyal
077097c112
Also implement openFiles
2021-03-10 21:55:00 +05:30
Kovid Goyal
f70c9842f5
macOS: Allow opening script and command
...
Fixes #3366
2021-03-10 21:33:29 +05:30
Kovid Goyal
12d7c7314a
Only warn about Wayland's inadequacy once
2021-02-26 19:21:48 +05:30
Kovid Goyal
78854d4a10
macOS: Disable cocoa tabs
...
kitty has its own tabs, and macOS inserts confusing menu entries for its
non-functional tabs into the global menu. So disable tabs. Fixes #3325
2021-02-25 11:26:55 +05:30
Kovid Goyal
a920919b13
Workaround for bug in libxkbcommon/Debian/Ubuntu on en_IN locale
...
See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=903373
2021-02-19 12:35:59 +05:30
Kovid Goyal
0fc93118f2
Make the error message when failing to get monitor display name more informative
2021-01-29 12:45:22 +05:30
Kovid Goyal
68423b3603
Fix compiler warning on newer Xcode
...
Fixes #3271
2021-01-29 11:29:29 +05:30
Kovid Goyal
6d18223f17
Use an id for keyboard focus tracking as well
2021-01-29 11:22:39 +05:30
Kovid Goyal
0443e5ad7f
Wayland: Use window ids rather than pointers to track windows for key repeat
...
Might fix #3266
2021-01-29 08:43:00 +05:30
Kovid Goyal
5a2f2767ad
Fix window icon not working on X11 with 64bits
...
Apparently on X11 the maximum icon size is 128x128. 256x256 is too
large for the X11 protocol because the X server unserializes the icons
using "unsigned long" which is 64 bits on Linux. So we have to use
64bits per pixel instead of 32, with 32bits padded to 0.
While there I also got rid of the kitty.rgba file replacing it with a
128x128 PNG file.
Fixes #3260
2021-01-25 20:54:19 +05:30
Kovid Goyal
60e589f775
Recognize Hyper key
...
Also use only one implementation for detecting if a key is a modifier
key
2021-01-21 05:33:14 +05:30
Kovid Goyal
654cd54363
Add the ISO level 3 and 5 shift keys to functional keys
2021-01-19 09:11:44 +05:30
Kovid Goyal
6bbf014152
...
2021-01-17 07:24:12 +05:30
Kovid Goyal
4fea7bd8ef
Fix building on systems with xkbcommon < 1.0
2021-01-17 07:22:21 +05:30
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