227 Commits

Author SHA1 Message Date
Mitchell Hashimoto
364a14d7a2 apprt/gtk: fix valid id check 2023-11-06 08:54:23 -08:00
Mitchell Hashimoto
3564dd5e7e stylistic changes 2023-11-06 08:47:09 -08:00
Raiden1411
60717cde14 chore: update fullscreen implementation 2023-11-06 14:03:44 +00:00
Raiden1411
232527c9dc fix: fullscreen on new windows 2023-11-06 11:59:16 +00:00
Raiden1411
094f8effa3 fix: begin implementation of suggested changes 2023-11-06 10:19:09 +00:00
Raiden1411
9e9ad67d3c feat: add support for fullscreen, title and class values 2023-11-05 11:49:25 +00:00
Mitchell Hashimoto
ebd57f6bbc apprt/gtk: correct new tab button click function signature
Fixes #674

We were incorrectly reusing the action activate signal callback for the
button click. These have different function signatures.
2023-11-04 16:57:01 -07:00
Mitchell Hashimoto
43e1c9f147 apprt/gtk: tweak unsafe paste window 2023-11-04 11:27:39 -07:00
Mitchell Hashimoto
ab9a9b6eb1 apprt/gtk: copy change for unsafe paste window 2023-11-04 11:24:48 -07:00
David Rubin
6e575d9035 configs added 2023-11-03 13:20:26 -07:00
David Rubin
44073e4c98 add basic functionality 2023-11-03 10:58:56 -07:00
xdBronch
bbdfcfe5bd fix build with libadwaita disabled 2023-11-03 03:20:35 -04:00
hanna
63fe99809f remove hard dependency on libadwaita 2023-11-02 21:54:05 -07:00
Hanna
2d7e2c8345 Integrate libadwaita for the gtk backend (#792)
* When using gtk as the backend, link libadwaita

* Update c.zig

* Use libadwaita's theme manager for gtk

* update the documentation for window-theme

* build: add libadwaita to the nix devshell

* forgot to properly import libadwaita

* apprt/gtk: adwaita style change

---------

Co-authored-by: Mitchell Hashimoto <mitchell.hashimoto@gmail.com>
2023-11-02 21:29:29 -07:00
Mitchell Hashimoto
59a53251cf apprt/gtk: create new tab after current tab
This behaves the same as macOS, and personally I prefer this behavior
because when I create a new tab, it is often contextual to what I'm
currently working on and keeping the tab nearby feels right.
2023-10-31 09:49:39 -07:00
Mitchell Hashimoto
e188aba7f4 apprt/gtk: if no parent is set on new window, do not inherit wd 2023-10-30 08:50:58 -07:00
Mitchell Hashimoto
c2adf22858 apprt/gtk: comment on what is going on with keyval mapping 2023-10-28 08:42:35 -07:00
Vlad Pănăzan
6b7dd1479d apprt/gtk: handle non-unicode keyvals 2023-10-28 15:35:16 +02:00
Mitchell Hashimoto
25e3b21eae apprt/gtk: comment about future API 2023-10-27 15:09:52 -07:00
Mitchell Hashimoto
b985b28918 apprt/gtk: use gtk widget scale to get content scale 2023-10-27 15:03:41 -07:00
Vlad Pănăzan
ffaa7e11e2 apprt/gtk: handle surface scale changes 2023-10-27 23:27:53 +02:00
Mitchell Hashimoto
cf6ee6ed14 apprt/gtk: only create window header bar with window decorations
Fixes #737
2023-10-27 10:08:59 -07:00
Gregory Anders
2ee80a52df macos: set window resizeIncrements when cell size changes
The resizeIncrements property is only modified when the cell size of the
focused window changes. If two splits have the same cell size then the
property is not modified when focusing between the two splits.
2023-10-26 20:27:58 -05:00
Mitchell Hashimoto
a162c7c47f inspector: move inspector to dedicated folder 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
880d7869a9 inspector: show modes 2023-10-24 15:27:16 -07:00
Mitchell Hashimoto
5a299e14e4 all threads are notified of inspector state, trigger render 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
afa08ffc02 initial work on basic inspector information 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
a1a398be4d inspector: setup basic modes window (empty), dock 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
55f681a0fd inspector is scaled to native dpi 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
865bf7441c apprt/gtk: initialize and run the inspector 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
7a30d1080e core: hook up all the inspector activation state and such 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
dcb6eef9c4 apprt/gtk: different bg color for imgui widget 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
522d6b8ba1 apprt/gtk: destory the inspector properly on close 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
6a50a938d6 apprt/gtk: button to toggle inspector 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
199e1cae29 apprt/gtk: surface has inspector state 2023-10-24 15:27:15 -07:00
Mitchell Hashimoto
ddd7ff4bbb apprt/gtk: use shared key => imgui key helper 2023-10-24 15:27:14 -07:00
Mitchell Hashimoto
775a734892 apprt/gtk: use new imgui opengl API 2023-10-24 15:27:14 -07:00
Mitchell Hashimoto
f3d99efcd8 apprt/gtk: imgui widget calls callback to populate imgui frame 2023-10-24 15:27:14 -07:00
Mitchell Hashimoto
c0ace7a29e apprt/gtk: complete imgui backend 2023-10-24 15:27:14 -07:00
Mitchell Hashimoto
869e4133f1 apprt/gtk: can render imgui 2023-10-24 15:27:14 -07:00
Mitchell Hashimoto
a60f9eb9e6 apprt/gtk: empty inspector window 2023-10-24 15:27:13 -07:00
Mitchell Hashimoto
769e7df675 apprt/gtk: implement default window size 2023-09-30 21:41:17 -07:00
Mitchell Hashimoto
abf43ddfcc apprt/gtk: change default cursor to text 2023-09-30 15:46:03 -07:00
Nathan Fisher
614a9775c6 Set the mouse pointer to "text" (an I-beam) when it is over the gl_area
which the terminal embeds into for the Gtk interface. Addresses https://github.com/mitchellh/ghostty/issues/596
2023-09-30 18:26:40 -04:00
Mitchell Hashimoto
6c69f0ef63 apprt/gtk: gtk-single-instance defaults to true only if desktop env
Fixes #473

A new config value for `gtk-single-instance = desktop` is now valid.
This value uses GTK single instance mode only if it detects Ghostty was
launched from a desktop environment (i.e. clicking on the icon) through
the `.desktop` Freedesktop file. Otherwise, it disables single instance.

This enables Ghostty to work well with the CLI and accept all the
typical CLI flags. It will make Ghostty launch slower from the CLI but I
think this is an acceptable tradeoff.
2023-09-30 08:46:39 -07:00
Mitchell Hashimoto
56b0cb51d5 apprt/gtk: previous_tab/next_tab action do not consume if there are no tabs 2023-09-29 22:12:38 -07:00
Tim Culverhouse
4f2d67d8f3 gtk(input): fix value used for lowercase lower_unicode
When converting keyval to the unshifted version, gdk_keyval_to_lower
returns a keyval type, not a unicode value. Convert this to unicode
before assigning to keyval_unicode_unshifted.

This fixes a bug where the incorrect keycode is sent in alternate
layouts with kitty keyboard on linux.
2023-09-29 06:36:03 -05:00
Mitchell Hashimoto
685495c896 apprt/gtk: make wide-style gtk tabs configurable 2023-09-28 08:54:15 -07:00
Nathan Fisher
dca0ddb7e1 (Gtk) Set tab labels to fill the available space, so that they will
divide up the avialable horizontal area instead of leaving a large
empty space in the tab bar.
2023-09-28 00:10:07 -04:00
Mitchell Hashimoto
8c4d25050a apprt/gtk: detect keyboard modifier state for mouse events 2023-09-26 12:37:59 -07:00