diff --git a/rendercanvas/_version.py b/rendercanvas/_version.py index e6816c1..b7cf168 100644 --- a/rendercanvas/_version.py +++ b/rendercanvas/_version.py @@ -22,7 +22,7 @@ # This is the base version number, to be bumped before each release. # The build system detects this definition when building a distribution. -__version__ = "2.7.0" +__version__ = "2.7.1" # Set this to your library name project_name = "rendercanvas" diff --git a/rendercanvas/anywidget.py b/rendercanvas/anywidget.py index 8a01721..9ee7874 100644 --- a/rendercanvas/anywidget.py +++ b/rendercanvas/anywidget.py @@ -127,7 +127,8 @@ def snapshot(self, *, pixel_ratio=None): ), display_id=True, ) - self.request_draw() + + self._rfb_schedule_maybe_draw() def _replace_snapshot(self, array): pending_display = self._rfb_pending_snapshot_display @@ -187,8 +188,9 @@ def _rfb_maybe_draw(self): should_draw = ( self._rfb_draw_requested and frames_in_flight < self._max_buffered_frames - and (self._has_visible_views or self._rfb_pending_snapshot_display) - ) + and self._has_visible_views + ) or self._rfb_pending_snapshot_display is not None + # Do the draw if we should. if should_draw: self._rfb_draw_requested = False diff --git a/rendercanvas/core/renderview.js b/rendercanvas/core/renderview.js index f8e27b1..b0e60d9 100644 --- a/rendercanvas/core/renderview.js +++ b/rendercanvas/core/renderview.js @@ -595,8 +595,10 @@ class BaseRenderView { viewElement.addEventListener('pointerdown', (ev) => { // When pointer is down, set focus to the focus-element. + // Focus after a short delay, otherwise VSCode takes focus away immediately. if (!LOOKS_LIKE_MOBILE) { - this._focusElement.focus({ preventScroll: true, focusVisible: false }) + const fe = this._focusElement + window.setTimeout(function () { fe.focus({ preventScroll: true, focusVisible: false }) }, 50) } // capture the pointing device. // Because we capture the event, there will be no other events when buttons are pressed down,