Commit graph

971 commits

Author SHA1 Message Date
Kovid Goyal
40bba70bfe
Wayland IME: Avoid printing errors for compositors that pointlessly acknowledge previous IME commits rather than just the current one. Apparently kwin is one such. Fixes #5339 2022-07-31 10:22:40 +05:30
Kovid Goyal
7fc1735a21
swaps_disallowed is used only on wayland 2022-06-28 20:19:52 +05:30
Kovid Goyal
cd369f633a
Wayland: Ensure that opengl buffer swapping does not happen till the xdg surface is configured 2022-06-28 10:47:33 +05:30
Kovid Goyal
72dfa74b3e
Avoid an extra buffer swap during startup
glfw should not be swapping buffers behind the clients back. Since we
control the client, we can ensure that the OpenGL VRAM is cleared before
the window is shown.

Also fixes the issue with the glfw wayland backend where the buffer was
being created before the surface was configured
2022-06-28 09:25:24 +05:30
pagedown
2cc506476b
macOS: Fix JIS Eisu and Kana keys not working 2022-06-25 19:01:02 +08:00
Kovid Goyal
fa823a37ae
Backport 6281f498c8 2022-06-23 13:00:28 +05:30
Kovid Goyal
646bdbd002
Wayland: Fix a regression in the previous release that caused mouse cursor animation and keyboard repeat to stop working when switching seats
Fixes #5188
2022-06-10 21:38:30 +05:30
Kovid Goyal
2f3dd72c84
Weston: Fix client side decorations flickering on slow computers during window resize
Fixes #5162
2022-06-03 11:00:56 +05:30
Kovid Goyal
609bcd68dd
Fix #5161 2022-06-02 10:32:43 +05:30
Kovid Goyal
cabfcbcb69
macOS: When pasting text and the clipboard has a filesystem path, paste the full path instead of the text, which is sometimes just the file name
Fixes #5142
2022-05-30 14:40:45 +05:30
Kovid Goyal
65f1329635
Wayland: When the seat is closed remove any pending pointer animation and key repeat timers
Fixes #5145
2022-05-29 14:50:34 +05:30
Kovid Goyal
1b2d54d97a
Output a warning when libwayland-cursor returns incorrectly sized cursor images 2022-05-23 12:50:47 +05:30
Kovid Goyal
e7da874b82
GNOME: Workaround for GNOME's text input system going into an infinite loop if cursor position is updated in response to a done event
Fixes #5105
2022-05-23 10:36:58 +05:30
Kovid Goyal
c48bf4fd85
Output debug lines for when kitty sets the pointer in Wayland 2022-04-30 09:13:08 +05:30
Kovid Goyal
a36d5dcde1
GLFW API for changing colorspace of windows on cocoa 2022-04-26 10:56:34 +05:30
Kovid Goyal
c2bc24de35
Read appearance setting from desktop portal as well 2022-04-05 15:44:27 +05:30
Kovid Goyal
5c03a52a0b
... 2022-03-29 15:34:34 +05:30
Kovid Goyal
51c8e3b2c6
Add some more debug about scale changes 2022-03-29 09:47:48 +05:30
pagedown
3db0aab24b
macOS: Fix the path encoding issue from drag and drop files 2022-03-25 09:14:56 +08:00
Kovid Goyal
906be21b8d
Make GNOME detection a bit more tolerant 2022-03-22 11:36:09 +05:30
pagedown
11343d42c3
Wayland: Fix backspace cannot clear the last character of pre-edit text 2022-03-21 18:36:35 +08:00
pagedown
6c628bc594
Wayland: Fix IME is not enabled after switching the focus 2022-03-21 18:36:25 +08:00
Kovid Goyal
06da2b88ff
Also check if states are empty 2022-03-17 17:51:21 +05:30
Kovid Goyal
91b9110dcc
Workaround for bug in mutter that caused first OS window to not have functional CSD when launched from activities
Fixes #4802
2022-03-17 17:35:56 +05:30
Kovid Goyal
a9de91087a
Add a comment explaining why we dont commit if resized 2022-03-10 20:47:45 +05:30
Kovid Goyal
719339e116
Output debug info about CSD rendering 2022-03-10 19:45:31 +05:30
Kovid Goyal
1c3910de5c
Output debug info about resized being called 2022-03-10 19:32:17 +05:30
Kovid Goyal
39d3ef6fe8
Output debug for decoration configure when it happens 2022-03-10 17:59:54 +05:30
Alexander Orzechowski
99a5843595 wayland: Don't commit the surface on a resize
This fixes weirdness with GNOME.

On a resize, we will schedule a new frame anyway which will commit
the wl_surface for us anyway. If we don't resize, we'll commit
to stay true to the wayland spec.
2022-03-10 06:02:22 -05:00
Alexander Orzechowski
39e75e39e8 wayland: Correctly handle xdg decoration configures
Much like toplevel configures, xdg decoration configures only take
effect once the xdg shell configure comes through. Also,
let's get rid of some double computations because we unified the code
paths.
2022-03-10 06:01:50 -05:00
Alexander Orzechowski
322a80e76e wayland: track configures through a bit field
This will let us add more stuff later. Also, it's a better spot
to put the bit field outside of the {current, pending} struct as
the bit field doesn't make any sense if it's part of the `current`
values.
2022-03-10 05:56:56 -05:00
Alexander Orzechowski
d4b048735d wayland: Fix CSD size calculations
This is a partial revert of e359094cff

window->wl.{width, height} and window->wl.current.{width, height}
represent different things. The former represents the actual size of the
egl surface viewport used for terminal rendering. The former represents
the size of the entire window including the CSD (client side decorations).

These numbers should be the same if CSD is disabled.
2022-03-10 05:56:56 -05:00
Kovid Goyal
a4ae090c37
commit surface even for out of order configures 2022-03-03 07:18:04 +05:30
Alexander Orzechowski
ac407d42de wayland: always commit surface on configure 2022-03-02 14:43:49 -05:00
Kovid Goyal
af6baa33be
Ignore out of order surface configure events 2022-03-01 07:59:17 +05:30
Kovid Goyal
1096cbe236
Use an anonymous struct 2022-03-01 07:46:45 +05:30
Alexander Orzechowski
854cb8f27e wayland: handle resize requests after acknowledging the configure
The wayland protocol requires that clients commit a new buffer sometime
after `xdg_surface_ack_configure`.
2022-02-28 19:42:11 -05:00
Alexander Orzechowski
e359094cff wayland: move window state 2022-02-28 19:42:11 -05:00
Kovid Goyal
9d349d618a
Fix #4743 2022-02-26 14:42:21 +05:30
Kovid Goyal
6689d312a3
macOS: Paste multiple URLs separated by newlines
Fixes #4734
2022-02-25 10:17:36 +05:30
Kovid Goyal
fdc9835587
Cleanup previous PR 2022-02-18 13:44:25 +05:30
pagedown
58e8609c1a
macOS: Ensure the cursor is updated once
macOS will set the cursor to arrow after milliseconds after the switch
desktop animation ends. So the cursor that was updated immediately after
the focus will be changed again. This also affects toggling fullscreen.
2022-02-18 13:52:19 +08:00
pagedown
69c5c49094
Disable cursor rects 2022-02-18 13:52:00 +08:00
pagedown
ff8de7607a
Also handles the case where toggleFullScreen does not get called 2022-02-18 13:50:46 +08:00
pagedown
6d0721341b
Fix phantom window appears when executing full screen in transition 2022-02-17 15:47:03 +08:00
Kovid Goyal
0248edbdb9
xkb debug events should be printed to stderr 2022-02-14 15:03:31 +05:30
Rui Ming (Max) Xiong
d2288d8f83 Scale touchpad input by display scale on wayland 2022-02-13 20:47:02 -05:00
Kovid Goyal
4b4f904aac
Dont use global variables for the axis discrete counts 2022-02-13 20:56:55 +05:30
Kovid Goyal
ee5cf90684
Cleanup previous PR and add changelog entry for it
Fixes #4694
2022-02-13 10:53:24 +05:30
Rui Ming (Max) Xiong
79fa9f1c95 Use counters for discrete flags instead 2022-02-12 17:45:28 -05:00
Rui Ming (Max) Xiong
40bf12af7a Check for discrete mouse events on wayland 2022-02-12 02:12:59 -05:00
pagedown
444d9bd341
macOS: Ignore when the global shortcut is disabled 2022-02-11 14:23:57 +08:00
pagedown
358f30ca7a
No longer need to fall back and check the default shortcuts 2022-02-11 02:39:50 +08:00
pagedown
e32785831b
macOS: Add missing global shortcuts that will be enabled by default 2022-02-11 02:19:27 +08:00
Kovid Goyal
728eceb620
Add implementation for focus moving hardcoded shortcuts 2022-02-10 18:56:47 +05:30
Kovid Goyal
57f591d1ce
Simplify default global shortcut lookup
Now if a shortcut is present in the plist, it will not be considered for
default matching
2022-02-10 17:47:11 +05:30
Kovid Goyal
e4397a1c73
Framework for Apple's default global shortcuts 2022-02-10 14:15:21 +05:30
Kovid Goyal
f047678711
More robust initial window replacement when launching URLs 2022-02-06 07:11:57 +05:30
pagedown
51d591e177
macOS: Allow opening URLs with kitty 2022-02-05 13:05:41 +08:00
pagedown
80a62c8d71
Add preamble to generated file and fix gen-config.py filename 2022-02-05 13:05:13 +08:00
pagedown
ce57c747cc
macOS: Fix select next input source not working
For global shortcut to switch the next input source in the macOS system
preferences, final confirmation is only given when all modifier keys are
released.
2022-02-04 12:51:01 +08:00
Kovid Goyal
3e9129655a
... 2022-02-03 21:00:23 +05:30
pagedown
ba0f61d752
Refactor: More f-string for kitty 2022-01-29 20:17:46 +08:00
pagedown
dc61adf9d8
Refactor: More f-string 2022-01-28 19:34:13 +08:00
Luflosi
347c0d4de4
Fix compilation on macOS 10.12
Without this commit, kitty would fail to compile on macOS 10.12 with the error "use of undeclared identifier".
This problem was introduced in f7be4fab48, where some code was moved to a different file, without moving the corresponding `#define` statements.
2022-01-27 12:21:17 +01:00
pagedown
b9a612fb9c
macOS: Clean up any text that may not have been sent when loses focus 2022-01-27 12:37:17 +08:00
pagedown
4d920b182f
macOS: Cancel IME composition when receive loss of focus event 2022-01-27 10:07:18 +08:00
pagedown
b3f678cf6f
Improve debug log 2022-01-26 18:28:37 +08:00
pagedown
7f3715cd3e
Use the input context instance from GLFWContentView 2022-01-26 18:25:37 +08:00
pagedown
a3aaaa1efb
macOS: Explicitly cancel IME composition when losing the focus 2022-01-26 18:21:20 +08:00
Kovid Goyal
d1531632a2
Add some notes on how to run IBUS for testing 2022-01-26 10:47:18 +05:30
Kovid Goyal
2151969ae5
IBUS: Hide the pre-edit text when receiving a HidePreeditText message 2022-01-26 10:12:48 +05:30
Kovid Goyal
02e1272502
Slightly improve debug text 2022-01-23 20:40:41 +05:30
pagedown
b2d0c35fc2
Clear the pre-edit text only when inserting non-control characters
Maintains the pre-edit input state after pressing the modifier key
combination or function key while using the IME.
2022-01-23 22:22:24 +08:00
pagedown
3ee12082f2
No need to update the pre-edit text 2022-01-23 22:16:26 +08:00
pagedown
1ce4fc9c8c
Check for ASCII control chars before sending text 2022-01-23 21:40:27 +08:00
pagedown
57e2866b68
macOS: Fix caps_lock not clearing pre-edit text when using IME 2022-01-23 18:50:55 +08:00
pagedown
195fc1a270
Minor tweaks to macOS key event debug log 2022-01-23 18:45:18 +08:00
Kovid Goyal
39e56f1864
Dont check the return value of handleEvent
It's apparently meaningless, despite what the docs say
2022-01-23 12:47:29 +05:30
Kovid Goyal
053bb999d3
Merge branch 'fix-macos-ime-modifiers' of https://github.com/page-down/kitty 2022-01-23 10:41:45 +05:30
pagedown
83884f42f8
macOS: Fix text insertion by modifier keys when using IME 2022-01-23 01:50:37 +08:00
pagedown
fbaf3e2f49
Update preedit text with markedText
This fixes the preedit text being cleared when using shortcut keys to
switch candidate text in the input state.
2022-01-23 00:01:08 +08:00
Kovid Goyal
c0be0f74d8
Use commit text instead of a zero key event
Thanks @page-down
2022-01-22 21:11:26 +05:30
Kovid Goyal
688a3eaef7
Check if input context handles flagschanged event 2022-01-22 16:17:01 +05:30
Kovid Goyal
3b15b46d08
Also deal with setMarkedText called from event loop with actual marked text 2022-01-22 16:13:44 +05:30
Kovid Goyal
f21ddae94f
Handle setMarkedText called from the event loop
Also pass through text with zero key
2022-01-22 16:08:50 +05:30
Kovid Goyal
cd9b752926
... 2022-01-22 16:02:05 +05:30
Kovid Goyal
655a5a2808
Handle insertText called from the event loop by the text input system 2022-01-22 15:51:43 +05:30
Kovid Goyal
3867620be5
... 2022-01-22 14:58:10 +05:30
Kovid Goyal
03a7361325
Some debug prints for flagsChanged 2022-01-22 14:57:13 +05:30
Kovid Goyal
e8c683db8b
A new approach to handling flagsChanged with IME
Bypass cocoa's flagsChanged handling and call handleevent ourselves,
this allows us to know exactly what the IME is doing. Hopefully fixes
issues with IMEs that change state on modifier key presses.

Fixes #4541
2022-01-22 14:47:57 +05:30
Kovid Goyal
1f4372b34c
Test if text is being inserted rather than if text is present 2022-01-20 11:16:05 +05:30
Kovid Goyal
b090602fdb
macOS: Fix the shift key not clearing pre-edit text in IME
Fixes #4541
2022-01-20 08:00:17 +05:30
Kovid Goyal
16d3e82515
Add debug output when ignoring key press during IME 2022-01-19 14:50:12 +05:30
Kovid Goyal
21bc5bf8c0
Dont leak a reference to input_source_at_last_key_event 2022-01-19 12:06:54 +05:30
pagedown
5182f79152
macOS: Fix global shortcuts with shift modifier key not working 2022-01-17 02:23:00 +08:00
Kovid Goyal
06ff685f8e
oops 2022-01-15 14:54:30 +05:30
Kovid Goyal
c6ecdf0fa4
Ensure ignoreOSKeyboardProcessing is initialized 2022-01-15 14:43:10 +05:30
Kovid Goyal
ca4840717b
macOS: Fix using shortcuts from the global menu bar as subsequent key presses in a multi key mapping not working
Fixes #4519
2022-01-15 13:56:18 +05:30
Kovid Goyal
c473df4393
Ignore NSEventModifierFlagFunction when parsing global shortcuts 2022-01-15 12:16:18 +05:30