1
1
mirror of https://github.com/wez/wezterm.git synced 2024-12-22 12:51:31 +03:00
Commit Graph

1214 Commits

Author SHA1 Message Date
Wez Furlong
a1f4f47141 tease writer and resize out of pty() usage 2019-03-02 11:36:00 -08:00
Wez Furlong
6c8a9e999e splitting writer out of Tab::pty() 2019-03-02 11:27:11 -08:00
Wez Furlong
0c3410fb6a factor out more of the mouse processing 2019-03-02 09:45:10 -08:00
Wez Furlong
61e7f2d0fe slightly refine some mouse processing code 2019-03-02 09:40:05 -08:00
Wez Furlong
150225dd22 clippy 2019-03-02 09:33:58 -08:00
Wez Furlong
bc15fc4665 split mouse event processing into separate functions 2019-03-02 09:33:58 -08:00
Wez Furlong
5565ccd30e remove host from key_down signature 2019-03-02 09:33:58 -08:00
Wez Furlong
8f13e53ac8 move gui keyboard shortcut processing to guicommon 2019-03-02 09:33:58 -08:00
Wez Furlong
f261f079f7 lift clipboard hotkeys up to gui layer
My original idea was that I would centralize of the key binding
logic in the terminalstate, but this places a bit of a burden on
the TerminalHost portion of the interface.

In particular: when running a multiplexer server we may be headless
or have multiple heads.  In that scenario we want the terminal
to be backed by a virtualized screen, and that means removing
the direct callback to access eg: the host clipboard.  This
diff is the first of a couple that have the goal of removing
those sorts of dependencies.
2019-03-02 09:33:58 -08:00
Wez Furlong
3ceb71026e introduce a Renderable trait 2019-03-02 09:33:58 -08:00
Stephane Fontaine
a833cf29b4 X11: update readme to require OpenGl ES3
The story as I understand it:
The current shaders requires GLSL 3.30 but OpenGL ES 2.0 is bound to GLSL
1.20.
The confusion arise when creating EGL context. We ask for ES2 because crate egli
doesn't provide a ES3 one "yet". On a recent system, the driver will probably return
a ES3 conformant context anyway .. lucky for us because because the shaders won't
compile on ES2 (which does not even have a `out` keyword).
2019-03-01 22:53:21 -08:00
Wez Furlong
3d959e0f40 batch resize events in x11 backend
Similar to the previous commit for glium, this diff avoids
resize and render for every resize event coming in from xwindows.
Instead we buffer up the most recent window size, scheduling
a later call to assess and apply that data.

This improves resize performance.
2019-02-27 00:09:59 -08:00
Wez Furlong
699bd7aac1 batch resize/dpi changes in glium windows
This is recommended in the docs and allows deferring of the size
and scale to happen at the same time.
2019-02-26 21:39:18 -08:00
Wez Furlong
6aae40ac21 add hex print of the freetype error code
It makes it easier to look up the error codes from the fterrdef.h
header file.
2019-02-26 08:38:51 -08:00
Wez Furlong
bfeca4e724 skip hidpi synthesis on macos, as it breaks manual window resizing(!) 2019-02-25 07:59:32 -08:00
Wez Furlong
74b015a6d8 fontloader: fall back to next font if loading a codepoint fails 2019-02-25 07:48:53 -08:00
Wez Furlong
b02a6e076c rustfmt 2019-02-25 07:33:36 -08:00
Wez Furlong
d7b55382b4 big initial mux change
This is an unfortunately large diff that:

* Separates Tab ownership from TerminalWindow
* Introduces a Mux container for all of the tabs in the application,
  across all windows
* Moves ownership of processing pty responses to the mux; it sets
  up and has logic to process data for the ptys and apply to the
  tabs

I've moved the logic for processing new tab and new window hotkeys
to the TerminalWindow's themselves as we need some context to
associate the tab with the right window and to create a new window.

I think that will simplify and allow unifying more code.
2019-02-25 00:03:35 -08:00
Wez Furlong
ab0c5a8017 whoops, fully undo the half-hearted attempt to address the todo in here
The saturating_sub was going to be an attempt at the look-back alluded
to in the TODO comment, but I decided not to implement that in this
iteration.

The effect of this was that double clicking the `m` in a sequence like
` master` would only select the `m` instead of the `master` string.
2019-02-24 13:17:42 -08:00
Wez Furlong
184befae09 adjust double-click selection class
previously this just used unicode word segmentation rules, but that
is insufficient for most technical users.

Change this to look for sequences that are non-whitespace and not
enclosed by bracket/quote delimiters.  This allows selecting file names
with a double click, which was my main issue.
2019-02-24 13:13:35 -08:00
Wez Furlong
dba88d2102 clippy 2019-02-24 12:01:08 -08:00
Wez Furlong
68fc054872 move TabHost to guicommon 2019-02-24 09:17:28 -08:00
Wez Furlong
3d7a313e3f refactor to make TabHost impls look similar 2019-02-24 09:02:49 -08:00
Wez Furlong
5b84b6dfc9 start moving some host functions to guicommon; clipboard first 2019-02-24 08:39:29 -08:00
Wez Furlong
668d456fdf add some comments to the TerminalWindow trait 2019-02-24 08:06:10 -08:00
Wez Furlong
5f80719306 use self.(width|height) when synth hidpi changes 2019-02-24 07:59:05 -08:00
Wez Furlong
c647b4e87c When using glutin, scaling fonts resizes the terminal to preserve rows/cols
This could be implemented for xcb too, just didn't get around to it
yet.
2019-02-24 00:19:17 -08:00
Wez Furlong
aef26084ef force re-assessment of sizes when changing font scaling 2019-02-23 23:50:24 -08:00
Wez Furlong
df8b415faa workaround missing hidpifactor event notification on linux 2019-02-23 23:37:24 -08:00
Wez Furlong
af882a1762 fixup misleading comments 2019-02-23 23:18:01 -08:00
Wez Furlong
3026d0fa16 refactor scaling changed 2019-02-23 23:10:40 -08:00
Wez Furlong
3178082e6a move tab termination functions to guicommon 2019-02-23 22:48:55 -08:00
Wez Furlong
1b8f8c734f move resize_surfaces 2019-02-23 22:40:59 -08:00
Wez Furlong
a87487ea30 use get_tabs rather than a local tabs() method in x11.rs 2019-02-23 22:25:43 -08:00
Wez Furlong
8fdf85b4d6 move spawn_tab to guicommon 2019-02-23 22:24:24 -08:00
Wez Furlong
d639ad0ffe factor out the paint logic 2019-02-23 22:04:58 -08:00
Wez Furlong
315ff45880 start factoring out some common TerminalWindow code 2019-02-23 21:02:44 -08:00
Wez Furlong
46c0c7753f glium TerminalWindow -> GliumTerminalWindow 2019-02-23 20:43:18 -08:00
Wez Furlong
46cc2cdf99 x11 TerminalWindow -> X11TerminalWindow 2019-02-23 20:42:24 -08:00
Wez Furlong
d489d8466f make xwindows use the common tabs code 2019-02-23 20:33:42 -08:00
Wez Furlong
a09fcd9c3c remove unused import 2019-02-23 17:50:04 -08:00
Wez Furlong
3c29d07ee2 factor tabs code out of gliumwindows 2019-02-23 17:40:10 -08:00
Wez Furlong
aa9942e6d4 spawned windows no longer inherit scaling
On hidpi displays we'd end up with a window twice the size; whoops!
2019-02-23 17:11:23 -08:00
Wez Furlong
9bc54da406 use Rc<FontSystem> rather than Box
This will help with an upcoming change
2019-02-23 17:05:46 -08:00
Wez Furlong
e5e3fa91f8 remove some duplicated code in favor of spawn_window_impl 2019-02-23 17:03:58 -08:00
Wez Furlong
4f73904be4 remove SpawnRequest in favor of using the futurecore
This wasn't hooked up right, partly because the glutin backend
bit rotted and I forgot that there was a future core.

This simplifies dispatching of requests that need to happen outside
of the gui loop control.
2019-02-23 16:48:05 -08:00
Wez Furlong
0bae17a8c6 fixup x11 build + warnings 2019-02-23 14:51:12 -08:00
Wez Furlong
7a1d691163 fix unterminated loop when a tab is closed and others remain
We weren't detecting EOF reading from the pty
2019-02-23 14:34:17 -08:00
Wez Furlong
db5aac6681 implement tabs in the glutin gui system
There's a bunch of code duplication that I want to clean up later.
2019-02-23 13:33:32 -08:00
Wez Furlong
5b126b3f1e Restore fullscreen toggle hotkey and fixup for macos 2019-02-23 13:27:59 -08:00