209 Commits

Author SHA1 Message Date
Jeffrey C. Ollie
a0de1be65f gtk: fix non-notebook separator colors 2025-01-02 17:49:15 -06:00
Mitchell Hashimoto
fb8c83e07c config: change toast config to packed struct 2025-01-02 14:15:16 -08:00
Yotam Gurfinkel
e6bb1a56eb config: Add the option toast_on_clipboard_copy
Add a config option to enable/disable the toast shown on clipboard copy
2025-01-02 14:09:29 -08:00
Jeffrey C. Ollie
0778c67429 gtk: refactor gtk & adw notebook implementations
Put GTK and libadwaita notebook implementations into separate structs/
files for clarity.
2025-01-02 15:21:11 -06:00
Jeffrey C. Ollie
f97f7e8a70 gtk: also add css window-decorated class when toggling window decorations 2024-12-30 19:40:13 -06:00
Jeffrey C. Ollie
220d40e99a gtk: make sure that window-decoration is honored on all paths 2024-12-30 16:10:14 -06:00
Jeffrey C. Ollie
ffe1b7a872 gtk: don't use gtk_window_set_titlebar if adwaita is enabled but it's older than 1.4.0 2024-12-30 14:44:56 -06:00
Mitchell Hashimoto
a7c93cdfb1 apprt/gtk: fix the combination of gtk-titlebar=false and gtk-tabs-location=hidden (#3957)
Fixes: #3178
2024-12-30 08:55:22 -08:00
Tristan Partin
31c9a2fe59 apprt/gtk: make window-decoration=false with gtk-titlebar=true look better
Before this change, there seemed to be some artifacting in the window
corners due to the window border no longer outlining the content
properly. By detecting the situation, we can turn the window border
radius off.

Signed-off-by: Tristan Partin <tristan@partin.io>
2024-12-29 22:57:48 -06:00
Tristan Partin
0fd65035c5 apprt/gtk: fix the combination of gtk-titlebar=false and gtk-tabs-location=hidden
Fixes: #3178
Signed-off-by: Tristan Partin <tristan@partin.io>
2024-12-29 22:12:37 -06:00
Tristan Partin
7256ebe13d apprt/gtk: fix website link in about window 2024-12-29 16:47:44 -06:00
Tristan Partin
27ddc2a9b2 apprt/gtk: create the tab overview even if gtk-titlebar=false
self.isAdwWindow() obscures that check a bit.

Signed-off-by: Tristan Partin <tristan@partin.io>
2024-12-29 14:45:45 -06:00
Jeffrey C. Ollie
8ecb11a602 gtk: add option to not link against libX11 2024-12-28 13:40:17 -06:00
Iain H
19e8651247 apprt/gtk: move new tab button to start of header bar
According to the GNOME human interface guidelines, buttons for the main
user actions, such as new, add, open, and back should be placed at the
start of the header bar. (https://developer.gnome.org/hig/patterns/containers/header-bars.html#header-bar-buttons)

Moving the new tab button to the start of the header bar brings Ghostty
in line with other GNOME applications such as gedit and gnome-terminal.
2024-12-23 11:48:22 -05:00
Mitchell Hashimoto
fdd330d22d apprt/gtk: stylistic changes 2024-12-15 14:01:10 -08:00
Tristan Partin
98380f3c42 apprt/gtk: abstract AdwHeaderBar and GtkHeaderBar
This will make further changes a little bit more readable.

Signed-off-by: Tristan Partin <tristan@partin.io>
2024-12-15 14:01:10 -08:00
Mitchell Hashimoto
fc6357ac70 apprt/gtk: slight style feedback 2024-12-15 13:54:06 -08:00
Tristan Partin
06ba06cfd0 apprt/gtk: unify tooltip text with AdwTabButton
AdwTabButton uses "View Open Tabs."

Signed-off-by: Tristan Partin <tristan@partin.io>
2024-12-14 12:40:11 -06:00
Tristan Partin
73bb2bb9bc apprt/gtk: add gtk-tabs-location=hidden
This is only supported on libadwaita. Instead of the normal tab overview
button, we will use an AdwTabButton[0].

Link: https://gnome.pages.gitlab.gnome.org/libadwaita/doc/1.6/class.TabButton.html [0]
Signed-off-by: Tristan Partin <tristan@partin.io>
2024-12-14 12:40:11 -06:00
Mitchell Hashimoto
b9345e8d6a try to abstract bundle ID to a zig file 2024-11-25 16:11:02 -08:00
Jeffrey C. Ollie
6d8cf55040 gtk: use correct function to destroy window
adw_application_window_destroy and gtk_application_window_destroy do not
exist. I believe that this didn't trigger a compile error because the
errdefer got compiled out because there are no potential error returns
after this code in the function.
2024-11-01 10:33:18 -05:00
Mitchell Hashimoto
28751ae5b8 Merge pull request #2485 from axdank/move_current_Tab
gui: add move_current_tab action
2024-10-25 14:15:16 -07:00
axdank
520dda65cb apply review changes 2024-10-25 08:07:11 -03:00
Mitchell Hashimoto
a793ad2f0d gtk: make goto_tab go to last tab if too large 2024-10-24 20:01:15 -07:00
axdank
465d60def8 gui: add move_current_tab action 2024-10-24 00:01:54 -03:00
Mitchell Hashimoto
c614f2b485 apprt/gtk: use stackfallback for runtime CSS, explicit errors 2024-10-16 06:19:47 -07:00
Jeffrey C. Ollie
ca42b4ca1c gtk: use CSS variables and color calcs introduced in 4.16
This takes advantage of CSS variables and color expressions to improve
the `window-theme=ghostty` support. The only visibile difference from
the previous implementation is that the header bar will darken if the
Ghostty window is in the background, which is standard for GTK apps.

This is conditional at runtime. If Ghostty detects that you're running
against GTK 4.16 or newer it will use the CSS variables and color calcs.
If you're running against older versions it will use CSS classes to
achieve nearly the same effect.
2024-10-14 18:24:05 -05:00
Mitchell Hashimoto
862bdcb92a apprt/gtk: adw about dialog introduces in libadw 1.5.0
Fixes #2433
2024-10-12 09:35:09 -07:00
Mitchell Hashimoto
b65a9ebc45 Merge pull request #2234 from jcollie/gtk-css-no-libadwaita
gtk: load css when libadwaita is not being used
2024-10-09 09:37:30 -07:00
Jeffrey C. Ollie
a559ecf957 gtk: add adw or gtk class to top level windows 2024-10-08 11:17:33 -05:00
Jeffrey C. Ollie
ab0a736089 gtk: load css when libadwaita is not being used 2024-10-08 11:17:32 -05:00
Leah Amelia Chen
fbc621a7d8 gtk: implement splitting leftwards and upwards 2024-10-07 18:19:27 -07:00
Mitchell Hashimoto
1b1589e0c6 apprt/gtk: only run window key events with tab overview shown 2024-10-07 13:17:21 -07:00
Mitchell Hashimoto
9c547dd8cd apprt/gtk: forward window key events to the focused surface 2024-10-07 13:06:35 -07:00
Mitchell Hashimoto
9e435f050e apprt/gtk: setup window key event infrastructure 2024-10-07 13:01:36 -07:00
Paul Berg
f1474c220d bind: add toggle_tab_overview binding 2024-09-27 10:13:05 -07:00
Paul Berg
7b8b58110c apprt/gtk: store tab_overview in Window struct 2024-09-27 10:12:08 -07:00
Paul Berg
6ef87d298c apprt/gtk: remove Window.hasAdwToolbar
this is the same as isAdwWindow
2024-09-27 10:12:08 -07:00
Paul Berg
fe4f4fdc72 apprt/gtk: fix build with -Dgtk-libadwaita=false 2024-09-27 10:12:08 -07:00
Mitchell Hashimoto
4e2781fdec apprt/gtk 2024-09-26 14:13:18 -07:00
Mitchell Hashimoto
26cba70b69 core: no need for hasTabs apprt function 2024-09-26 08:34:20 -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
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
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