166 Commits

Author SHA1 Message Date
Yi Ming
74411511df refactor: remove the unnecessary ./ in imports 2024-09-19 15:35:52 +08: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
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
Paul Berg
b935c7d46c apprt/gtk: remove adw_tab_page from tab 2024-09-13 15:32:17 +02:00
Paul
ac985937cd apprt/gtk: add theme variant in window-theme
this colours the header bar with the config colour.
2024-09-13 10:06:42 +02:00
Jeffrey C. Ollie
80c1fd436f adw: allow creating new tabs in a tab overview with no open tabs
Repro:
1) Start up Ghostty and create two windows.
2) On one window, open up the tab overview and close all of the tabs.
3) The window will not dissapear and should show that you have no open
   tabs because the 2nd Ghostty window is keeping Ghostty from quitting.
4) Clicking on the "New Tab" button has no effect.

Fix is to allow creating a new tab even though there is no action surface.
2024-09-12 21:04:06 -05:00
Mitchell Hashimoto
415f5cfe1b Merge pull request #2233 from tristan957/about
apprt/gtk: use AdwAboutDialog if available
2024-09-12 16:23:56 -07:00
Mitchell Hashimoto
fced4370d3 apprt/gtk: some tweaks, avoid uninitialized memory access, use optionals 2024-09-12 16:14:48 -07:00
Tristan Partin
f35671417c apprt/gtk: use AdwTabOverview
An additional way to manage tabs.

Signed-off-by: Tristan Partin <tristan@partin.io>
2024-09-12 15:59:07 -07:00
Mitchell Hashimoto
3a60fd6550 apprt/gtk: use GtkWidget so there is a common ancestor 2024-09-12 15:54:07 -07:00
Tristan Partin
b7d26a3ac3 apprt/gtk: use AdwAboutDialog if available
Matches the libadwaita theme and UX.

Signed-off-by: Tristan Partin <tristan@partin.io>
2024-09-12 23:34:34 +01:00
Tristan Partin
a30fad7c59 apprt/gtk: use AdwHeaderBar if available
Signed-off-by: Tristan Partin <tristan@partin.io>
2024-09-12 20:29:50 +01:00
Mitchell Hashimoto
15924b285d Merge pull request #2221 from TheOnlyMrCat/gtk_opacity_2
Fix background-opacity for the GTK backend, again
2024-09-12 09:42:35 -07:00
Mitchell Hashimoto
4cacea3813 apprt/gtk: inline adwaita checks so comptime disables conditional paths
This fixes building without libadwaita or building with an older version
of libadwaita. This also updates the CI to test this.
2024-09-12 09:34:39 -07:00
Mitchell Hashimoto
21460e5ded apprt/gtk: hide header bar when window decorations are disabled
Fixes #2023
Fixes regression from #2051

#2051 introduced a regression where `window-decoration=false` had no
effect when libadwaita was in use. Further, the
`toggle_window_decorations` keybinding also had no effect whatsoever.

This commit fixes this and #2023 by explicitly hiding the header bar
when window decorations are disabled. We hide the header bar rather than
the full top bar because we still want the tab bar to show up with
window decorations disabled.
2024-09-11 21:05:12 -07:00
Max Guppy
b6198e37f2 Reapply "Merge pull request #1690 from TheOnlyMrCat/gtk_opacity"
This reverts commit 57bf0b08ffe04578feb087fab739a48543c0ac75.
2024-09-12 13:36:31 +10:00
Paul
f0ca0e551e adw: show performance warning banner 2024-09-11 12:04:12 -07:00
Paul
fa81445701 adw: add option to choose toolbar style 2024-09-11 12:04:12 -07:00
Mitchell Hashimoto
c27f427e02 apprt/gtk: the comptimeEnabled check is redundant 2024-09-11 09:50:37 -07:00
Mitchell Hashimoto
afc95fefe2 apprt/gtk: use adwaita helpers, move out some complicated logic 2024-09-11 09:38:05 -07:00
Mitchell Hashimoto
1ab850fa94 apprt/gtk: move adw enabling and version checks into shared file 2024-09-11 09:21:51 -07:00
Paul Berg
7aa6b0008a adw: add support for gtk-tabs-location = bottom
this falls back to top when using either right or left.
2024-09-11 17:23:56 +02:00
Paul Berg
0c286a049a gtk: add adwaita banner 2024-09-11 15:42:31 +02:00
Paul
bdf618d7af gtk: adw toolbar view
gate toolbar view on ADWAITA_MINOR >= 4

use the right destructor on window creation errors
2024-09-11 15:42:31 +02:00
Paul Berg
05e7bf7634 gtk: add devel class to window in debug builds 2024-09-11 15:42:31 +02:00
Paul Berg
5327daac04 adw: implement next/previous 2024-09-11 15:42:31 +02:00
Paul
42c93d89fc adw: move notebook to its own file 2024-09-11 15:42:03 +02:00
Paul
0e22695ec4 gtk: use adwaita tab view when possible
add tab bar view
2024-09-11 15:35:22 +02:00
Mitchell Hashimoto
0ab3d964dd apprt/gtk: show debug warning whenever runtime safety is on 2024-08-31 21:38:02 -07:00
Mitchell Hashimoto
d7e7f55956 apprt/gtk: support last_tab 2024-08-26 20:13:28 -07:00
Mitchell Hashimoto
9409e3072f apprt/gtk: remove usingnamespace 2024-08-16 14:58:04 -07:00
Jeffrey C. Ollie
67efe7fe42 Additions to GTK context menu
Add "New Window", "New Tab", and "Reset" to GTK context menu.
2024-07-29 12:08:29 -05:00
karei
57db35036e apprt/gtk: implement context menu
Implements context menu for GTK with:
- copy
- paste
- split right
- split down
- terminal inspector
2024-07-21 11:10:21 +03:00
Mitchell Hashimoto
2d7baaa7d7 apprt/gtk: toggle_window_decorations keybinding
Fixes #1943
2024-07-15 21:23:52 -07:00
Tim Culverhouse
fc3d885022 gtk: remove unused css class on GtkNotebook 2024-07-11 08:34:51 -05:00
Tim Culverhouse
d1d3de758c gtk: prevent CSS collision on notebook stack
Add a class to the GtkNotebook which holds our tabs so we can more
precisely set the background color of just this `stack`. A collision was
occurring with the menu widgets, which are also a `stack`.
2024-07-10 13:56:03 -05:00
Tim Culverhouse
6c40cd963d gtk: implement unfocused-split opacity and fill
For a long time, us GTK users have been subject to lesser UX by not
knowing which split was focused. Improve the GTK UX by implementing both
unfocused-split-opacity and unfocused-split-fill. This is implemented by
setting the background-color of the notebook stack, and conditionally
applying a new css class "unfocused-split" to the unfocused split.
2024-07-10 12:56:09 -05:00