Commit Graph
105 Commits
Author SHA1 Message Date
Mihai Parparita a39a468f19 Make terminal rendering work in popout windows
Add support for the parent element (what is passed to Terminal.open)
being in a different (same origin) window. Accesses to DOM APIs such
as requestAnimationFrame and devicePixelRatio thus need to be scoped
to the corrent window, instead of assuming that it's the same as the
window/global scope where the code is running.

This is done by inferring a parent window at the creation time, and
then storing it in CoreBrowserService, which is already passed to most
places that need it.

To catch future regressions, an ESLint rule that checks for global
accesses is added (it uses AST selectors via the no-restricted-syntax
rule).

This should also be applicable when the parent element is an iframe.

Fixes #3758
2022-09-08 16:59:31 -07:00
Jason Lin e5ad3ce9b9 Polish 2022-09-05 17:32:02 +10:00
Jason Lin faf5f72c1f Clear glyph render when the webgl model is cleared 2022-09-05 13:32:04 +10:00
Daniel Imms e8e2f16cff Merge remote-tracking branch 'upstream/master' into pr/silamon/4004 2022-09-02 13:05:52 -07:00
Daniel Imms f309affff2 Tweak handling of _contextRestorationTimeout 2022-08-31 05:44:48 -07:00
Kenneth Russell 9459553665 Handle WebGL context loss/restore events in WebGL renderer.
If the context is restored within a brief period of time (3 seconds),
recreate members dependent on WebGL state, and fire onRequestRedraw to
the renderer's listeners.

Handle changes to the char atlas better in the demo client.

Tested in Chrome Canary on macOS by running the demo in one window,
and visiting the internal URL about:gpucrash in another window. The
terminal now recovers and redraws properly.
2022-08-30 19:42:22 -07:00
Daniel Imms f7e0f69598 Fix rounding error gap in webgl renderer
Fixes #4054
Fixes #4076
2022-08-28 13:22:29 -07:00
Daniel Imms 4a50ca81c6 Optimize gc for WebglRenderer._updateModel and BufferLine.loadCell
RectangleRenderer not done yet
2022-08-28 09:06:42 -07:00
Daniel Imms 1b64a09f50 Correct conditions after moving to work object 2022-08-27 21:35:56 -07:00
Daniel Imms 5e3f63e876 Avoid garbage collection in webgl decoration hot code
Part of #4079
2022-08-27 20:06:58 -07:00
Simon Lamon a1385f589b Required options 2022-08-05 16:16:12 +00:00
Daniel Imms e7e71dbd3c Merge remote-tracking branch 'upstream/master' into 3969 2022-07-31 11:35:47 -07:00
Daniel Imms d6fe5c7384 Update size when letter spacing changes 2022-07-31 11:21:27 -07:00
Daniel Imms 75ca5006a2 Expose texture atlas change event and use in demo 2022-07-31 11:16:12 -07:00
Daniel Imms c7122e8447 Fix dim flag applying to selection in webgl
Fixes #3970
2022-07-30 10:29:41 -07:00
Daniel Imms e0d4384d3c Merge branch 'master' into underline 2022-07-30 06:40:41 -07:00
Daniel Imms ff33834eb2 Merge branch 'master' into inactiveSelection 2022-07-29 14:51:22 -07:00
Daniel Imms b0c29cac9a Merge pull request #3932 from Tyriar/tyriar/dim_bg
Fix inverse dim rendering on canvas+webgl
2022-07-29 14:50:47 -07:00
Daniel Imms 4ac8e4ca51 Remove reliance on core in some webgl parts 2022-07-29 11:09:19 -07:00
Daniel Imms 954d9371a1 Inactive selection in webgl 2022-07-29 11:05:41 -07:00
Daniel Imms 9cb25fbf06 Rename ITheme.selection to selectionBackground
This makes it consistent with selectionForeground and other theme keys and
as a result will make the API easier to work with, especially when inactive
selection is done (#3803)
2022-07-29 10:34:27 -07:00
Daniel Imms 48142eca23 Merge branch 'master' into tyriar/dim_bg 2022-07-29 10:20:22 -07:00
Daniel Imms 1fe0ec8d2c Merge branch 'master' into underline 2022-07-29 10:19:52 -07:00
Daniel Imms d2be5f992a Merge remote-tracking branch 'upstream/master' into underline 2022-07-28 07:01:41 -07:00
Daniel Imms 437c8aac5c Merge remote-tracking branch 'upstream/master' into rounding 2022-07-28 07:00:13 -07:00
Daniel Imms 84b259dfa5 Merge remote-tracking branch 'upstream/master' into tyriar/dim_bg 2022-07-28 06:57:27 -07:00
Daniel Imms ee2e54487d Fix inverse dim for webgl
Fixes #3534
2022-07-24 13:13:26 -07:00
Daniel Imms f4ffb13ece Render dim bg in all renderers
Fixes #3534
2022-07-24 10:59:24 -07:00
Daniel Imms 47b1fdd147 Refactor to share observeDevicePixelDimensions 2022-07-24 04:09:34 -07:00
Daniel Imms ad8404417e ts-loader update, correct css cell dimension error 2022-07-24 03:57:22 -07:00
Daniel Imms e25471361f Fix device pixel value in canvas renderer 2022-07-24 03:41:25 -07:00
Daniel Imms cb10aadb06 Fix device pixel rounding errors in webgl renderer
This uses the ResizeObserver devicePixelContentBoxSize API in order to
fetch the exact device pixel dimensions from the browser. The old
possibly blurry behavior is used as a fallback if that API is not
available.

Part of #2662
Part of microsoft/vscode#85154
2022-07-24 03:31:05 -07:00
Daniel Imms 4087284822 Fix ext caching issues 2022-07-23 15:19:17 -07:00
Daniel Imms 03f15a7fb7 Store extended attributes in single number 2022-07-23 11:12:17 -07:00
Daniel Imms 8b4e8199d7 Get underline style affecting webgl rendering 2022-07-23 07:38:34 -07:00
Svante Boberg 92855ba399 Remove terminal from cache on disposal 2022-07-22 13:03:07 +02:00
Daniel Imms 5e8133b4be Clip pixels to left of cell when background color changes
Fixes #3877
2022-07-10 06:54:39 -07:00
Daniel Imms 9f3e3f1700 Comment change to trigger webgl release 2022-07-08 12:53:25 -07:00
Daniel Imms 54cbbf600d Dispose of webgl resources properly
Fixes #3889
2022-07-06 07:32:42 -07:00
Daniel Imms efb939d171 Fix column selection issues
The following parts were not respecting the column selection edge case where the
start column was greater than the end column while the start row was less than the
end row:

- Webgl renderer
- DOM renderer
- Selection service (ie. getSelection(), I don't think this was a
  regression)

Fixes #3855
2022-06-14 06:51:54 -07:00
Daniel Imms 59e1bddb6e Merge branch 'master' into 3810 2022-05-17 11:43:06 -07:00
Daniel Imms f9bd0b8fed Fix setting selection foreground on webgl 2022-05-17 11:39:14 -07:00
Daniel Imms c502272373 Support selection foreground in webgl
Part of #3810
2022-05-16 09:40:07 -07:00
Daniel Imms d7fb0141d2 Whitespace change to trigger build
The fix for #3720 didn't touch any file in the webgl addon so it didn't end
up releasing.
2022-05-13 12:32:17 -07:00
Daniel Imms 7b4423819e Support setting the layer of a decoration
Fixes #3778
2022-05-12 10:51:11 -07:00
Daniel Imms 181fb1cfe5 Remove selection-specific render pass, use bg overrides instead
Part of #3778
2022-05-11 11:46:44 -07:00
Daniel Imms 999f255893 Fix sorted list edge case 2022-05-11 09:49:23 -07:00
Daniel Imms c0b4edaf31 Reduce duplicate with getDecorationsAtCell method 2022-05-11 08:37:42 -07:00
Daniel Imms abdce874db Fix cases where only one override was with tests 2022-05-11 08:31:09 -07:00
Daniel Imms 6b4df216d3 Remove unneeded code 2022-05-10 12:08:42 -07:00