458 Commits

Author SHA1 Message Date
Thorsten Ball
0add9de0eb gtk: handle closing of surfaces with sibling being a Paned 2023-11-30 21:43:38 -08:00
Thorsten Ball
142a2f4cb0 gtk: refactor how Paned is created 2023-11-30 21:43:38 -08:00
Thorsten Ball
19f7b37bb3 gtk: move Child/Parent/Position into same file 2023-11-30 21:43:38 -08:00
Thorsten Ball
be836bc777 gtk: allow closing split panes that have been split 2023-11-30 21:43:38 -08:00
Thorsten Ball
5e789bf152 gtk: allow splitting when already split 2023-11-30 21:43:38 -08:00
Thorsten Ball
2ed841145b gtk: take direction into account when creating a new split 2023-11-30 21:43:38 -08:00
Thorsten Ball
a50fc7bc50 gtk: use unreachable in switch statements 2023-11-30 21:43:38 -08:00
Thorsten Ball
8afcce666a gtk: wire up close-tab button 2023-11-30 21:43:38 -08:00
Thorsten Ball
98a5016598 gtk: simplify code when creating new split 2023-11-30 21:43:38 -08:00
Thorsten Ball
601eed24c4 gtk: remove code comments and dead code 2023-11-30 21:43:38 -08:00
Thorsten Ball
2d7a81c0db gtk: cleanup code in *Paned 2023-11-30 21:43:38 -08:00
Thorsten Ball
d88898fc61 gtk: get 1st version of GTK splits working 2023-11-30 21:43:37 -08:00
Nathan Fisher
aba1b85503 Add Parent and Child types for tracking splits; Add methods for
adding start and end children in `Paned` widget;
2023-11-30 21:41:34 -08:00
Nathan Fisher
5b5c2c9ab2 Fill out the rest of Tab.init() 2023-11-30 21:41:34 -08:00
Nathan Fisher
1b16c2dd23 Add to Tab.init and fix compilation errors 2023-11-30 21:41:34 -08:00
Nathan Fisher
5c0b668517 Begin working on a skeleton for splits in Linux/Gtk 2023-11-30 21:41:34 -08:00
Chris Marchesi
1832401e0e gtk: make sure WM_CLASS is being set on X11
This ensures that WM_CLASS is being set on X11, looks like this was
missed in #816 (not 100% sure if it always needs to be set in GDK or if
it's a side effect of us not using g_application_run).

This also adds the "x11-instance-name" config attribute to control the
instance name, which defaults to "ghostty" (or "ghostty-debug" on debug
builds).
2023-11-30 20:26:12 -08:00
Mitchell Hashimoto
eac1731d9d apprt/gtk: translate modifier-only presses to proper modifier state 2023-11-29 20:37:56 -08:00
Mitchell Hashimoto
5acaf3279d apprt/gtk: use new resources dir 2023-11-22 22:10:16 -08:00
Mitchell Hashimoto
2ce3db7dc2 apprt/gtk: set default cursor to be "text" (ibeam)
Fixes #933

On startup, we'd set the cursor to "text" but we wouldn't store that as
our cursor so when the mouse was unhidden, we'd go back to "default".
This PR changes it so that on surface startup we set and store the
"text" cursor so as the cursor hides/shows it reverts to the proper
value.
2023-11-21 17:10:44 -08:00
Mitchell Hashimoto
0430758b60 Merge pull request #923 from vancluever/vancluever-config-gtk-titlebar
apprt/gtk: let GTK titlebar be toggleable
2023-11-20 20:29:47 -08:00
Chris Marchesi
39e3fca210 apprt/gtk: let GTK titlebar be toggleable
This adds the gtk-titlebar option, which allows you to toggle the GTK
titlebar on (default) and off.

Under some circumstances (e.g. tiling WMs with titlebars enabled), one
may wish to disable the GTK titlebar/CSD for aesthetic reasons. This
allows you to do that.

Fixes #920.
2023-11-20 20:07:11 -08:00
Mitchell Hashimoto
f2c1e18647 apprt/gtk: support IME popups such as Asian language input
Fixes #882

This hooks up all the GTK.IMContext things properly so that we support
switching input methods, popups, etc. This should improve our support
for asian languages, emoji input, etc.
2023-11-20 18:08:23 -08:00
Mitchell Hashimoto
67119e6433 apprt/gtk: disable GTK capturing F10
Fixes #894
2023-11-20 14:16:13 -08:00
Mitchell Hashimoto
080789957a Merge pull request #903 from mitchellh/macos-update
Custom Shaders (Metal and OpenGL)
2023-11-17 22:06:38 -08:00
Mitchell Hashimoto
f2513e0825 Merge pull request #876 from gpanders/notifications
Add support for desktop notifications
2023-11-17 21:57:09 -08:00
Mitchell Hashimoto
fb0929a11b renderer/opengl: extract cell program state to dedicated struct 2023-11-17 21:51:05 -08:00
Mitchell Hashimoto
389712a698 renderer/opengl: switch to new update vs draw 2023-11-17 21:50:34 -08:00
Mitchell Hashimoto
67dce5ce0e update zig-objc 2023-11-17 21:50:34 -08:00
Tim Culverhouse
caf2252144 gtk: implement desktop notifications 2023-11-17 12:59:23 -06:00
Krzysztof Wolicki
44a48f62f1 change unmodified vars to consts in anticipation of zig changes 2023-11-17 15:46:46 +01:00
Gregory Anders
5290070be9 clipboard: add Clipboard variant for primary clipboard
In practice, the primary and selection clipboards are treated exactly
the same, but this allows OSC 52 sequences to use either 's' or 'p' as
the clipboard target.
2023-11-16 16:35:48 -06:00
Mitchell Hashimoto
ad24e5e687 renderer/opengl: use new preedit format 2023-11-15 09:59:08 -08:00
Mitchell Hashimoto
50f0aaf26b renderer/metal: support multi-codepoint preedit text 2023-11-15 09:49:28 -08:00
Gregory Anders
689199251a core: use arrays instead of WriteReq for desktop notifications 2023-11-15 11:21:30 -06:00
Gregory Anders
3f4ea2f763 core: support OSC 9 and OSC 777 for showing desktop notifications 2023-11-15 10:25:02 -06:00
Mitchell Hashimoto
36c3b1b3d1 apprt/gtk: gtk-adwaita runtime config to configure libadwaita
Fixes #874
2023-11-14 08:33:55 -08:00
Mitchell Hashimoto
35e78939e5 macos: ignore alt key with other modifiers set
This enables shifted alt-prefixed keys, such as `shift+alt+.` on
US standard becoming `M->`. To do this, we needed to fix a few bugs:

  (1) translation mods should strip alt even if other mods are set
  (2) AppKit translation event needs to construct new characters with
      the translation mods.
  (3) Alt-prefix handling in KeyEncoder needs to allow ASCII utf8
      translations even for macOS.
2023-11-13 19:21:51 -08:00
Mitchell Hashimoto
5001e2c60c macos: filter option in AppKit when option-as-alt set
Fixes #872

In #867 we fixed macos-option-as-alt, but unfortunately AppKit ALSO does
some translation so some behaviors were not working correctly.
Specifically, when you had macos-option-as-alt set, option+e would
properly send `esc+e` to the pty but it would ALSO set the dead key
state for "`" since AppKit was still translating the option key.

This commit introduces a function to strip alt when necessary from the
translation modifiers used at the AppKit layer, preventing this
behavior.
2023-11-13 13:26:37 -08:00
Mitchell Hashimoto
2489ef4c13 stylistic tweaks 2023-11-11 15:15:52 -08:00
Gregory Anders
e7bc9958da Prefer explicit type syntax over @as 2023-11-11 17:26:59 -05:00
Gregory Anders
593cfa256c glfw: fix compile error 2023-11-11 17:21:10 -05:00
Gregory Anders
98b43007a0 core: use ClipboardRequestType instead of ClipboardPromptReason
Instead of making a separate enum that must be translated from the
ClipboardRequest type, simply re-use ClipboardRequest to determine the
clipboard confirmation reason.
2023-11-10 23:12:39 -05:00
Gregory Anders
9d3385703d gtk: fix memory leak in GTK clipboard confirmation window 2023-11-10 23:12:39 -05:00
Gregory Anders
960a1bb091 gtk: implement OSC 52 prompts 2023-11-10 23:12:39 -05:00
Gregory Anders
86245ff0cf macos: add option to prompt user for confirmation on OSC 52 commands 2023-11-10 23:12:39 -05:00
Mitchell Hashimoto
dd1faf5e50 macos: handle preedit in AppKit, enables Korean input 2023-11-10 09:53:56 -08:00
Mitchell Hashimoto
64eb8c0d0f Merge pull request #835 from Raiden1411/feat/glfw
glfw: add `fullscreen` and `toggleFullscreen` support
2023-11-09 15:00:33 -08:00
Mitchell Hashimoto
126f02187a apprt/glfw: minor stylistic things 2023-11-09 15:00:16 -08:00
Mitchell Hashimoto
8c59d1176e apprt/gtk: ensure equal tab width, truncate with ellipses
Fixes #607
2023-11-09 11:12:55 -08:00