1
1
mirror of https://github.com/wez/wezterm.git synced 2024-09-21 03:39:16 +03:00
Commit Graph

1410 Commits

Author SHA1 Message Date
Jeffrey Knockel
753b6e77ea gui: don't repaint during resize
Wait until set_inner_size() has finished before repainting.  If we
repaint while our request to resize is in progress, our understanding of
the current size of the window may be inconsistent with the actual size,
causing the rendered contents of the window to bounce around.
2024-02-18 13:09:37 -07:00
Jeffrey Knockel
cd5d1f5ea1 gui: pass window to set_inner_size()
This fixes a regression from a0974a25 where TermWindow::set_inner_size()
can be called before the TermWindow's window has been set.
2024-02-18 07:22:20 -07:00
Wez Furlong
4f123a461b
macos (mostly): try harder to get initial dpi
There are a number of open issues that relate to getting the dpi
wrong when spawning a window. In theory it shouldn't matter because
we will immediately realize the difference and synthesize the correct
information, but evidence shows this isn't quite true.

What this commit does is:

* Override Connection::default_dpi() on macOS to return the
  effective_dpi from the active screen instead of the default
  non-retina dpi
* Adjust the Config::initial_size() method to accept an optional
  cell pixel dimension
* Add a helper function to wezterm-gui to compute the cell pixel
  dimensions given the config and the (usually default) dpi, and
  feed that through to Config::initial_size
* in the macos window impl, scale the computed geometry based on
  the ratio of the Connection::default_dpi and the default non-retina
  dpi.

This helps to avoid needing to do a fixup in the
https://github.com/wez/wezterm/issues/4966 case, and may help with
the various other macos quirky issues.

refs: https://github.com/wez/wezterm/issues/2958
refs: https://github.com/wez/wezterm/issues/3575
refs: https://github.com/wez/wezterm/issues/3900
refs: https://github.com/wez/wezterm/issues/4250
refs: https://github.com/wez/wezterm/issues/4285
refs: https://github.com/wez/wezterm/issues/4447
refs: https://github.com/wez/wezterm/issues/4851
refs: https://github.com/wez/wezterm/issues/4966
2024-02-06 22:57:05 -07:00
Wez Furlong
39d2b6ca85
remove show_update_window functionality
dependabot is trying to update pulldown-cmark, but it won't
work because the API has changed.

The update window is not enabled by default and I don't think
anyone uses it anyway, so let's just remove it and have less
code to compile and maintain.

closes: https://github.com/wez/wezterm/pull/4964
2024-02-05 07:04:37 -07:00
Jeffrey Knockel
a0974a2537 Implement SetInnerSizeCompleted events
These are used to signal, after a set_inner_size() call, at what point
we can expect any and all of its related Resized events to have already
been dispatched.  SetInnerSizeCompleted events are currently used to fix
a race condition in rescaling the terminal in which the number of cells
of the terminal (e.g., 80x24) can change when quickly rescaling the
terminal.
2024-02-04 09:40:54 -07:00
Wez Furlong
5046fc2259
Revert "text cursor glyph renders at native cell size"
This reverts commit 2c95b98447.

More people were vocally and sometimes toxic about this change
than were in favor of it.

I'm just going to revert it and leave the original issue open.

refs: https://github.com/wez/wezterm/issues/2882
2024-02-03 11:08:09 -07:00
Wez Furlong
91749f7f1f
docs and missing bit of #4535 #4523 2024-02-03 10:52:15 -07:00
Magnus Groß
beb29e8ff7 Mention the -e aliases explicitly in the help
Otherwise it is just hidden forever. We can't use the proper declarative
interface, because we are faking quite some stuff for "-e", so instead
we mention it explicitly in the help output.
2024-02-03 10:36:07 -07:00
Magnus Groß
191d28113e Always start a new process on "wezterm -e $CMD"
This is done for compatibility, as many tools assume that running a
command with "$TERMINAL -e $COMMAND" blocks until the command is
finished.

For example some tools delete a needed file after the command returns.
But since we always return immediately (in case --always-new-process is
not provided and if another wezterm instance is already running), this
would mean that the file is deleted before the command could do
anything.

Fixes #4523
2024-02-03 10:36:07 -07:00
Wez Furlong
99c17b166f
add wezterm start --new-tab and wezterm connect --new-tab
refs: https://github.com/wez/wezterm/discussions/4854
refs: https://github.com/wez/wezterm/discussions/4946
2024-02-03 07:51:06 -07:00
Wez Furlong
424d4fc393
plumb a couple more window title invalidations through to gui 2024-02-02 19:38:39 -07:00
Benjamin Kane
a96de2abab Add lua version to debug overlay 2024-02-02 19:37:30 -07:00
Wez Furlong
5eea7eb17b
don't show default key assignments in palette when they are disabled
refs: https://github.com/wez/wezterm/issues/4724
2024-02-02 19:13:49 -07:00
Wez Furlong
aa81a46d58
mux: allow specifying cache policy for process information
This allows individual call sites to be able to force an immediate
resolution of the process information.

This should help to address https://github.com/wez/wezterm/issues/4811
wherein the problem seems to be that the cwd used for a new spawn
is taken from a stale read.
2024-02-02 18:02:18 -07:00
Wez Furlong
a8223a756c
macos: add space between keycaps on command palette
refs: https://github.com/wez/wezterm/issues/4885
2024-02-02 16:48:51 -07:00
Wez Furlong
b0682e957f
speculative fix for tab title change not invalidating window
refs: https://github.com/wez/wezterm/issues/4941
2024-02-02 14:05:06 -07:00
Wez Furlong
aa94a98314
fix invalidation on palette change
refs: https://github.com/wez/wezterm/issues/4932
and possibly: https://github.com/wez/wezterm/issues/2635
2024-02-01 15:58:14 -07:00
Wez Furlong
e7111a2bfa
fix laggy tab bar update after closing a tab
refs: https://github.com/wez/wezterm/issues/4880
2024-01-28 07:38:10 -07:00
Wez Furlong
2a8bdfa603
launcher: allow ctrl-[ to close launcher menu
refs: https://github.com/wez/wezterm/issues/4722
2024-01-27 09:01:33 -07:00
hyperpuncher
0839745aaf fix: disproportionate cursor 2024-01-26 05:29:32 -07:00
Wez Furlong
7f3a835548
fix excessive calls to format-tab-title
* Removed title update from main render loop
* Add to PaneFocused event
* term: only emit Alert::OutputSinceFocusLost for the first
  seqno bump after losing focus, rather than on every bump.
  That event indirectly causes the title to update

refs: https://github.com/wez/wezterm/issues/4788
2024-01-25 23:14:38 -07:00
Wez Furlong
1f9f3f2a5d
docs: changelog for https://github.com/wez/wezterm/pull/4850
and rustfmt on my little tweak
2024-01-25 08:23:17 -07:00
Ryan
27259cb857
fix: render bar cursors on topmost layer (#4850)
* fix: render bar cursors on topmost layer

* avoid cost of building error string unless layer allocation fails

---------

Co-authored-by: Wez Furlong <wez@wezfurlong.org>
2024-01-25 08:22:04 -07:00
Jeffrey Knockel
0462f318d7 Set base_width/height in set_resize_increments
On X11, this information is set as part of the hints given to the window
manager. When resizing the terminal, many X11 window managers will now
correctly report the current cell size of the terminal (e.g., 80x24) as
an overlay when resizing the window.
2024-01-24 22:04:16 -07:00
Jeffrey Knockel
c70e2fea28 Move set_resize_increments() to apply_dimensions() 2024-01-24 22:04:16 -07:00
Jeffrey Knockel
f204f0f1a9 Refactor set_resize_increment() args into struct 2024-01-24 22:04:16 -07:00
Wez Furlong
eb3a78b0cb
x11: synthesize clearing dead key state when forgotten by system
It's not clear exactly how this triggers, but in setups where
a compose key has been configured (against the default for the
configured keyboard layout), it seems as though certain events
that indicate when composition is complete are not delivered,
leaving the compose cursor in an inconsistent state.

This commit attempts to detect that composing->!composing
state transition and bubble it up; when we return Nothing
and had previously had a composition string we're return
a bool to cause the caller to emit an event that clears
the composition state.

I'm not totally sure this is 100% right, but I think
it may help with the case we're discussing in
https://github.com/wez/wezterm/issues/4841
2024-01-23 15:02:50 -07:00
Wez Furlong
463c457528
thread pane through to other scroll actions as well
This should allow mouse bindings that control scrolling
to also work with the hovered pane.

refs: https://github.com/wez/wezterm/issues/4835
2024-01-23 09:30:22 -07:00
Ye Sijun
e3ccf2eacc Remove reserved space in full screen
Signed-off-by: Ye Sijun <junnplus@gmail.com>
2024-01-23 06:33:16 -07:00
Wez Furlong
a471618397
shlex: update usage to avoid warnings about NUL bytes 2024-01-23 06:07:27 -07:00
Wez Furlong
74e2c79d9c
docs for #4839 and apply to other areas with similar issue
refs: https://github.com/wez/wezterm/pull/4839
2024-01-23 05:55:18 -07:00
metiftikci
ff4e648834 fix: fixed palette selected row position on move down 2024-01-23 05:49:09 -07:00
Travis Collins
bc4244bd65 Fix mouse scroll on hovered but unfocused pane 2024-01-21 17:59:07 -07:00
Ye Sijun
300109ccc1 support double-click on the tab bar for maximize
Signed-off-by: Ye Sijun <junnplus@gmail.com>
2024-01-21 14:36:19 -07:00
0xdead10cd
e54de84c14 Fixes tabbar identation when placed at the bottom of the window 2024-01-21 14:12:54 -07:00
rawnly
6dbea8ff5e chore: run fmt 2024-01-21 14:06:01 -07:00
rawnly
163606afec fix: moved window level state update 2024-01-21 14:06:01 -07:00
rawnly
209d039c5d fix: refactor window level + Toggle options 2024-01-21 14:06:01 -07:00
rawnly
9901866962 macos: floating window logic cleanup 2024-01-21 14:06:01 -07:00
rawnly
2e66a4b0df macos: save window level on window_state 2024-01-21 14:06:01 -07:00
Federico Vitale
a1f0dca655 macos: cleanup 2024-01-21 14:06:01 -07:00
Federico Vitale
86e42e1c58 macos: refactor set_window_level 2024-01-21 14:06:01 -07:00
rawnly
d9387ed6e2 fmt: run fmt
Signed-off-by: rawnly <rawnly@users.noreply.github.com>
2024-01-21 14:06:01 -07:00
rawnly
ae67f85ea3 macos: added platform checks for ToggleFloatingWindow
Signed-off-by: rawnly <rawnly@users.noreply.github.com>
2024-01-21 14:06:01 -07:00
rawnly
8906d03851 macos: added floating window 2024-01-21 14:06:01 -07:00
hyperpuncher
e05179e4fb
fix: Proper block cursor shape (#4752)
* fix: Proper block cursor shape

* change stroke.width multiplier
2024-01-21 12:01:51 -07:00
Wez Furlong
bf07f6de0f
Revert "deps: update to wgpu 0.19"
This reverts commit b4c5dc746d.
This reverts commit 3214610f16.
This reverts commit 3ec1cfba73.
This reverts commit 47590bbedc.
This reverts commit ea88dca296.
This reverts commit c269230b74.
This reverts commit 1484e2a673.
This reverts commit 6fd45c1223.
This reverts commit 9acc2ae6c5.

refs: https://github.com/wez/wezterm/issues/4825
refs: https://github.com/wez/wezterm/issues/4826
2024-01-21 09:51:58 -07:00
Wez Furlong
b4c5dc746d
windows: one more 2024-01-20 21:13:20 -07:00
Wez Furlong
ba85958a61
deps: update env-logger
Note that we are pinned on 0.10 for env-bootstrap, where we use it
only for its module filter parser.
2024-01-20 16:01:10 -07:00
Wez Furlong
6938701cd3
wgpu: use adapter limits to avoid panic on window resize 2024-01-20 12:33:22 -07:00