Mitchell Hashimoto
675ba0e9b8
apprt/gtk-ng: defineVirtualMethod helper
2025-08-18 09:58:51 -07:00
Jeffrey C. Ollie
1693c9a2ac
gtk-ng: add some better comments on why getClass works
2025-08-18 09:20:40 -07:00
Jeffrey C. Ollie
34d10db7ea
gtk-ng: remove some woefully naive musings on GObject memory layout
2025-08-18 09:20:40 -07:00
Jeffrey C. Ollie
23b3adedc3
gtk-ng: remove signals from imgui_widget
2025-08-18 09:20:40 -07:00
Jeffrey C. Ollie
dd072d2e01
gtk-ng: add some initial notes on memory layout of GObjects
2025-08-18 09:20:40 -07:00
Jeffrey C. Ollie
f147a89b68
gtk-ng: use gitlab permalinks
2025-08-18 09:20:40 -07:00
Jeffrey C. Ollie
38e69b2e96
gtk-ng: use virtual methods to draw the inspector
...
Insead of signals between the ImGui widget and the Inspector widget,
make the Inspector widget a subclass of the ImGui widget and use virtual
methods to handle setup and rendering of the Inspector.
2025-08-18 09:20:40 -07:00
Jeffrey C. Ollie
7f8d215955
gtk-ng: fix race condition when checking border bell feature
...
Fixes #8266
When a surface is first created, there's a race condition between when
the config is set on the surface and when the code to check if a border
should be drawn around the surface is run. Fix that by exiting early if
the bell isn't ringing, before we check to see if there's a config set
on the surface and issuing the warning message.
2025-08-17 21:32:39 -05:00
Leah Amelia Chen
4f3553af5b
gtk-ng: set IM context's input-purpose as terminal ( #8251 )
2025-08-16 01:58:04 +08:00
Leah Amelia Chen
ed603b07a5
gtk-ng: set IM context's input-purpose as terminal
...
See https://github.com/ghostty-org/ghostty/issues/7987#issuecomment-3187597026
2025-08-16 01:35:45 +08:00
Leah Amelia Chen
11ecb516d4
gtk-ng: refactor CSD/SSD style class settings
...
Fixes #8127
2025-08-16 01:19:18 +08:00
Mitchell Hashimoto
4bcaac50f2
apprt/gtk-ng: actually handle color scheme events
...
Fixes #8245
2025-08-15 09:38:03 -07:00
Mitchell Hashimoto
997e013d7e
apprt/gtk-ng: respect window-inherit-working-directory=false
...
Fixes #8244
2025-08-15 09:18:28 -07:00
Mitchell Hashimoto
6b1dd3e441
apprt/gtk-ng: implement maximize and fullscreen
...
These fell through the cracks.
2025-08-14 15:01:03 -07:00
Jeffrey C. Ollie
d251695fa2
gtk-ng: move actions helper to namespace
2025-08-14 12:23:14 -05:00
Jeffrey C. Ollie
0e3ec24d2c
gtk-ng: use action helper in surface
2025-08-14 12:22:42 -05:00
Jeffrey C. Ollie
6b690e6b4e
gtk-ng: use action helper in split-tree
2025-08-14 12:22:42 -05:00
Jeffrey C. Ollie
31c71c6c5a
gtk-ng: use action helper in tab
2025-08-14 12:22:39 -05:00
Jeffrey C. Ollie
d66212dcce
gtk-ng: use action helper in window
2025-08-14 12:21:52 -05:00
Jeffrey C. Ollie
a10b95f052
gtk-ng: use action helper in application
2025-08-14 12:21:51 -05:00
Jeffrey C. Ollie
96e252872f
gtk-ng: add a helper for creating GTK actions
...
- Reduces boilerplate.
- Adds type safety.
- Adds comptime checks for action and group names which
otherwise could cause panics at runtime.
2025-08-14 12:21:51 -05:00
Mitchell Hashimoto
83d1bdcfcb
apprt/gtk-ng: clean up close handling of all types
...
This cleans up our close handling of all types (surfaces, tabs, windows).
Surfaces no longer emit their scope; their scope is always just the
surface itself. For tab and window scope we use widget actions.
This makes `close_tab` work properly (previously broken).
2025-08-14 10:07:28 -07:00
Mitchell Hashimoto
68f337e398
apprt/gtk-ng: close inspector window when widget loses surface
2025-08-14 09:42:26 -07:00
Mitchell Hashimoto
7548dcfe63
apprt/gtk-ng: clear weakrefs on dispose
2025-08-14 09:31:14 -07:00
Mitchell Hashimoto
6280bd7a42
apprt/gtk-ng: far less control inspector complexity
2025-08-14 08:57:11 -07:00
Mitchell Hashimoto
3fc33089f3
apprt/gtk-ng: clean up a bunch of unused window stuff
2025-08-14 08:37:58 -07:00
Mitchell Hashimoto
48a65b05d0
apprt/gtk-ng: use a weak_ref on surface for inspector
2025-08-14 08:21:19 -07:00
Mitchell Hashimoto
43550c18c0
apprt/gtk-ng: imguiwidget uses signals instead of callbacks
2025-08-14 08:21:19 -07:00
Jeffrey C. Ollie
bd7177a924
gtk-ng: port the terminal inspector
...
This is a (relatively) straightforward port of the terminal inspector
from the old GTK application runtime. It's split into three widgets. At
the lowest level is a widget designed for showing a generic Dear ImGui
application. Above that is a widget that embeds the ImGui widget and
plumbs it into the core Inspector. At the top is a custom Window widget
that embeds the Inspector widget.
And then there's all the plumbing necessary to hook everything into the
rest of Ghostty.
In theory this design _should_ allow showing the Inspector in a split
or a tab in the future, not just in a separate window. It should also
make it easier to display _other_ Dear ImGui applications if they are
ever needed.
2025-08-14 08:21:19 -07:00
Mitchell Hashimoto
57f1033198
gtk-ng: parametrize the new-split action ( #8225 )
...
why four when one do trick
2025-08-14 08:19:18 -07:00
Leah Amelia Chen
0979e6d2e9
gtk-ng: parametrize the new-split action
...
why four when one do trick
2025-08-14 08:17:01 -07:00
Mitchell Hashimoto
997d38c362
apprt/gtk-ng: set cursor on Surface widget, not GL area
...
This fixes `mouse-hide-while-typing`. Don't know why this worked before
(I tested it yesterday!) but stopped working today. But this now works,
and conceptually makes some sense.
2025-08-13 15:21:08 -07:00
Leah Amelia Chen
1b1264e592
gtk-ng: only show OSD when mouse event isn't consumed
2025-08-14 04:06:02 +08:00
Leah Amelia Chen
23048dbd33
gtk-ng: add show_on_screen_keyboard binding
2025-08-14 04:06:02 +08:00
Leah Amelia Chen
0d0d3118f4
gtk-ng: show on-screen keyboard on LMB release
...
This aligns with VTE behavior when the on-screen keyboard is enabled in
GNOME's accessibility settings.
Closes #7987
2025-08-14 03:08:34 +08:00
Mitchell Hashimoto
5e3bd92c57
apprt/gtk-ng: prompt surface title ( #8223 )
...
Straightforward port. A hell of a lot cleaner with `-ng`.
2025-08-13 10:53:12 -07:00
Mitchell Hashimoto
8edc041eaf
apprt/gtk-ng: prompt surface title
2025-08-13 10:49:16 -07:00
Jeffrey C. Ollie
22fc90fd55
gtk-ng add border to bell features
2025-08-13 12:18:07 -05:00
Mitchell Hashimoto
6de98eda04
apprt/gtk-ng: audio bell
...
Co-authored-by: Jeffrey C. Ollie <jcollie@dmacc.edu >
2025-08-13 09:22:51 -07:00
Mitchell Hashimoto
d8a309c734
apprt/gtk-ng: split tree active focus should be last focused fallback
...
Co-authored-by: Jeffrey C. Ollie <jcollie@dmacc.edu >
2025-08-13 09:22:49 -07:00
Mitchell Hashimoto
3680c8637e
apprt/gtk-ng: tab attention for bell
...
Co-authored-by: Jeffrey C. Ollie <jcollie@dmacc.edu >
2025-08-13 09:22:45 -07:00
Mitchell Hashimoto
d37e3828a2
apprt/gtk-ng: win.ring-bell
...
Co-authored-by: Jeffrey C. Ollie <jcollie@dmacc.edu >
2025-08-13 09:22:39 -07:00
Mitchell Hashimoto
408ec24165
apprt/gtk-ng: hook up bell into title
...
Co-authored-by: Jeffrey C. Ollie <jcollie@dmacc.edu >
2025-08-13 09:22:35 -07:00
Mitchell Hashimoto
40427b06c7
apprt/gtk-ng: surface bell-ringing property
...
Co-authored-by: Jeffrey C. Ollie <jcollie@dmacc.edu >
2025-08-13 09:22:16 -07:00
Mitchell Hashimoto
798e872f48
apprt/gtk-ng: split zoom title
2025-08-12 15:45:59 -07:00
Mitchell Hashimoto
12bc0d7b10
apprt/gtk-ng: window-subtitle
2025-08-12 15:23:47 -07:00
Mitchell Hashimoto
502040c86a
apprt/gtk-ng: tab tooltips match our pwd
2025-08-12 15:02:23 -07:00
Mitchell Hashimoto
aa4cbf444b
apprt/gtk-ng: forgot to register a prop
2025-08-12 13:45:33 -07:00
Mitchell Hashimoto
f130a724e5
apprt/gtk-ng: track is-zoomed property on surface tree
2025-08-12 13:39:38 -07:00
Mitchell Hashimoto
fb846b669c
split_tree: convert Handle to enum
2025-08-12 13:34:35 -07:00