747 Commits

Author SHA1 Message Date
Mitchell Hashimoto
4cc4eb5ed0 core: remove more hasdecls 2024-09-26 14:21:06 -07:00
Mitchell Hashimoto
4e2781fdec apprt/gtk 2024-09-26 14:13:18 -07:00
Mitchell Hashimoto
e29918ebb8 core: more actions 2024-09-26 10:20:44 -07:00
Mitchell Hashimoto
9202cba1f5 core: many more actions 2024-09-26 10:05:10 -07:00
Mitchell Hashimoto
1e010b8e08 core: more actions 2024-09-26 09:37:31 -07:00
Mitchell Hashimoto
26cba70b69 core: no need for hasTabs apprt function 2024-09-26 08:34:20 -07:00
Mitchell Hashimoto
02d7e766e1 core: move password input into action enum 2024-09-25 11:43:48 -07:00
Mitchell Hashimoto
ae98dddead apprt/embedded: support new performAction API 2024-09-25 11:31:14 -07:00
Mitchell Hashimoto
0e043bc0e4 apprt: transition all hasDecls in App.zig to use the new action dispatch 2024-09-25 11:28:10 -07:00
Mitchell Hashimoto
13603c51a9 apprt: begin transition to making actions an enum and not use hasDecl 2024-09-25 11:02:45 -07:00
Mitchell Hashimoto
d6e9db4ec5 Merge pull request #2299 from ghostty-org/global-keybind
Keybind features: System-global keybindings and target-all-terminal keybindings
2024-09-24 21:01:32 -07:00
Mitchell Hashimoto
6d6052d204 small comment changes 2024-09-24 20:53:45 -07:00
Mitchell Hashimoto
1b31663865 apprt/embedded: new_window can be called without a parent 2024-09-24 18:33:10 -07:00
Mitchell Hashimoto
1ad904478d Tap events, core API to handle global keybinds 2024-09-24 16:29:02 -07:00
Paul
b41f45d7a3 apprt/gtk: support window-theme != ghostty
- support for gtk-tabs-location=bottom
 - support for gtk-titlebar=false
2024-09-24 08:10:06 +02:00
Mitchell Hashimoto
38db305d29 Merge pull request #2289 from jcollie/ghostty-adwaita-version
gtk/adw: conditional tab keybindings
2024-09-23 21:11:32 -07:00
Mitchell Hashimoto
0f3f01483e apprt/embedded: API for checking if there are global keybinds 2024-09-23 20:45:58 -07:00
Tristan Partin
81c50e588c apprt/gtk: override the top bar colors in libadwaita correctly
This is the way to override the color in libadwaita < 1.6. We can
transition to named colors, specifically headerbar-{fg,bg}-color for
libadwaita 1.6.

Fixes: #2266
Signed-off-by: Tristan Partin <tristan@partin.io>
2024-09-23 17:09:14 -05:00
Jeffrey C. Ollie
8186e95902 gtk/adw: perform version check at both comptime and runtime 2024-09-23 11:41:39 -05:00
Jeffrey C. Ollie
2805657213 gtk/adw: conditional tab keybindings
adw_tab_view_remove_shortcuts (and related APIs) was added in libadwaita
1.2.0.
2024-09-23 10:31:01 -05:00
Paul Berg
2033e59240 apprt/gtk: set tabs reorderable/detachable on GtkNotebook 2024-09-23 10:16:10 +02:00
Mitchell Hashimoto
261ce00552 apprt/macos,gtk: unfocused splits now highlight hovered links
Fixes #1547

The core change to make this work is to make the cursor position
callback support taking updated modifiers. On both macOS and GTK, cursor
position events also provide the pressed modifiers so we can pass those
in.
2024-09-21 15:16:14 -07:00
Mitchell Hashimoto
a503e0250e apprt/gtk: add version helpers
This adds version helpers similar to the adwaita version helpers so that
build time and runtime version checks can be done.
2024-09-19 20:24:52 -07:00
Mitchell Hashimoto
1ed1c73c1a macos: enable secure input on password input 2024-09-19 16:38:32 -07:00
Mitchell Hashimoto
c0e0eff468 core: add toggle_secure_input keybinding 2024-09-19 10:20:30 -07:00
Yi Ming
74411511df refactor: remove the unnecessary ./ in imports 2024-09-19 15:35:52 +08:00
Yi Ming
2894e78cbe adw: disable all of the default shortcuts 2024-09-19 15:15:47 +08:00
Mitchell Hashimoto
e3d528cf0b termio: use surface messages to trigger password input state 2024-09-18 21:14:05 -07:00
Paul Berg
a6cd4b9750 adw: clear stored tab overview timer
This prevents a GTK warning:

```
(process:354789): GLib-CRITICAL **: 19:07:01.853: Source ID 511 was not found when attempting to remove it
```

which happens when trying to clean a timer already used.
2024-09-18 19:11:21 +02:00
Mitchell Hashimoto
9b7395b830 Merge pull request #2260 from ghostty-org/adw-focus
Fix: AdwTabOverview loses focus on close
2024-09-18 09:12:40 -07:00
Mitchell Hashimoto
2dd454b399 apprt/gtk: refocus the current tab after adw tab overview closes
Fixes #2256
2024-09-18 07:56:32 -07:00
Mitchell Hashimoto
4a492f24be apprt/gtk: make focusCurrentTab safe to call at any time 2024-09-18 07:41:11 -07:00
Paul Berg
990bcb9573 gtk: respect window-theme=ghostty when gtk-titlebar=false 2024-09-18 13:52:44 +02:00
Mitchell Hashimoto
fca7ceed03 apprt/gtk: fix non-libadw builds 2024-09-16 15:08:41 -07:00
Tristan Partin
2ad4dcdc01 apprt/gtk: remove redundant adwaita check
We already check if the toast overlay exists before sending a toast.

Signed-off-by: Tristan Partin <tristan@partin.io>
2024-09-16 15:42:38 -05:00
Tristan Partin
4f2c1d1b10 apprt/gtk: use adwaita toasts regardless of gtk-titlebar
Signed-off-by: Tristan Partin <tristan@partin.io>
2024-09-16 15:36:10 -05:00
Tristan Partin
46fb3d8c9f apprt/gtk: add notebook widget to the main box
Mitchell dropped this as part of a cleanup in the PR which added
AdwToastOverlay.

Fixes: https://github.com/ghostty-org/ghostty/issues/2250
Link: https://github.com/ghostty-org/ghostty/pull/2235
Signed-off-by: Tristan Partin <tristan@partin.io>
2024-09-16 15:16:06 -05:00
Mitchell Hashimoto
c48a1801f6 apprt/gtk: only setup the toast overlay if we have it enabled 2024-09-16 10:18:02 -07:00
Mitchell Hashimoto
2f0b48e8ad apprt/gtk: tweaks 2024-09-16 10:12:16 -07:00
Tristan Partin
d0c6c4f367 apprt/gtk: use toast UX from Adwaita if available
Notify the user with in-app notifications if libadwaita is available.

Co-authored-by: Paul Berg <paul@ber.gp>
Signed-off-by: Tristan Partin <tristan@partin.io>
2024-09-16 11:57:58 -05:00
Paul Berg
89506e5933 gtk: prevent invalid call to adw_tab_view_get_page_position
Creating the first tab would call adw_tab_view_get_page_position with a null page.
2024-09-16 18:10:57 +02:00
Mitchell Hashimoto
941adcdac8 apprt/gtk: rename the other underscore actions to match naming rules 2024-09-13 20:49:31 -07:00
Mitchell Hashimoto
9e73d865fb apprt/gtk: small comments 2024-09-13 20:45:39 -07:00
Jeffrey C. Ollie
5f759a19d1 GTK: Fix clicking on desktop notifications
Currently, clicking on a desktop notification will bring Ghostty
to the foreground, but it won't necessarily bring the right window
to the top and it won't switch tabs or change the focus on splits.

With this patch, clicking on a desktop notification will raise the
correct window, change to the correct tab, and focus on the correct
split that send the original desktop notification.
2024-09-13 13:37:38 -07:00
Mitchell Hashimoto
9548ae532d Merge pull request #2228 from Pangoraw/window-theme
apprt/gtk: add option to color header bars with theme colors
2024-09-13 10:09:44 -07:00
Mitchell Hashimoto
4a539cf4c9 apprt/gtk: style tweaks 2024-09-13 09:51:51 -07:00
Paul Berg
1037265cd9 apprt/gtk: make Notebook.create not depend on parent box 2024-09-13 09:44:41 -07:00
Jeffrey C. Ollie
12a791ddf2 gtk: prevent split separator from becoming transparent 2024-09-13 10:03:58 -05:00
Paul Berg
b935c7d46c apprt/gtk: remove adw_tab_page from tab 2024-09-13 15:32:17 +02:00
Paul Berg
3dc4185d50 apprt/gtk: respect window-new-tab-position again 2024-09-13 11:37:23 +02:00