-
Notifications
You must be signed in to change notification settings - Fork 29.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: #75693 #75695
fix: #75693 #75695
Conversation
Thanks for the PR, however this introduces some other issues. Here's one problem with your approach: fyi @jeanp413 |
The situation seems little bit more complicated than I thought. Sometimes(and always when changing the filename of children of root) IMHO, whether my approaching is good or not, having a |
Seems to work good in all cases. I will remove the disablment of the refresh and collapse actions since this is no longer needed |
My pleasure to giving a consent to merging such a code. |
@orange4glace unfortunetely I had to revert your PR becuase it caused an issue on linux. When the user clicks outside of the input box the success shuold be false and there should be no rename. |
@isidorn You mean on linux, there's no renaming when input is going blur While the intended result is being renamed? |
@orange4glace on linux just do that and you will see an exception in the console. |
@isidorn No apology is needed :) |
You are correct we do behave like that in stable. fyi @joaomoreno |
@isidorn @orange4glace I think a better fix would be changing this line
to something like this this._register(this.explorerService.onDidChangeItem(e => {
if(this.explorerService.isEditable(undefined)){
this.tree.domFocus();
}
this.refresh(e.recursive, e.item)
})); what do you think? |
Also @orange4glace I tried your solution but it doesn't fix #72626. I can reproduce it at least on linux (ubuntu). |
@jeanp413 That piece of code actually fixes the issue that I said! That's cool. For a dangling problem, I think this commit would fix it. Since PR was closed once, it seems I have to create another PR to apply the commit. If you guys are like, I'll make another PR for it. @isidorn The linux problem, I've tested on my VM with Ubuntu 16.04 and getting error |
I manage to fix #75624 with the following snippet in this._register(this.tree.onDidScroll(e => {
let editable = this.explorerService.getEditable(); // This method is new, needs to modify IExplorerService
if (editable && this.tree.getRelativeTop(editable.stat) === undefined) {
editable.data.onFinish('', false);
}
})); Also as orange4glace said orange4glace@9c29fb8 fixes #72626 So now both approaches fix all the issues and I think it boils down to chose the one with less drawbacks. |
Thank you very much for looking deeper into this.
@jeanp413 I decided to go with the @orange4glace since the changes are directly in the viewer the top most layer, and I prefer to put workarounds as close as possible to the actual problem. Also this solution came in first. fyi @joaomoreno |
I can not repro on mac due to that I believe this is a dup of #75825 |
I can repro even if I change the filename (to avoid #75825 so I get no errors in the developer tools console) before clicking the new file/folder button. |
* beautify macos keyboard layout label * Open folders and workspaces in new windows * Basic file opening via Open File command * Update auto detect layout info. * Respect openFoldersInNewWindow setting for folders/workspaces * Make openWindow function resolve at right time * keyboard layout status bar item tooltip * Move workspace menu and action to fileActions.contribution * Add clarifying comment on instance service request events * Fullscreen change event. * Remove unneeded margin on settings editor scrollbar Fix microsoft#75724 * fix: microsoft#72626 * Remove extra register of automatic tasks Fixes microsoft#75758 * remove trailing '/' from repo url for baseFolderName * handle style-attribute modifications, cache requests in addition to results, microsoft#75061 * fix microsoft#75818 * fix bad tree guide indentation * remove TODO * update eslint * update distro fixes microsoft#73872 * Revert "Revert "Merge pull request microsoft#75695 from orange4glace/master"" This reverts commit a05e05c. * Revert "Revert "explorero: file actions disablment no longer needed"" This reverts commit b634152. * more code insets API tweaks, microsoft#66418 * Alpine build * Update distro hash * Remove duplicate cp * shellscript: Add folding markers * fixes microsoft#75829 * show setting on windows only * add ExtensionKind and remoteName propsed APIs, microsoft#74188 * debt - use file service based configuration file service * fix tests * debt create configuration file service inside configuration service * First cut of file service based user data service * Use user data service for reading settings * Update distro hash * add diagnostic tool for git file event issues * 💄 * Update distro hash * introduce VSCODE_STEP_ON_IT * remove env scripts fixes microsoft#74792 * Update xterm.css Fixes microsoft#75827 * check if file exists * remove alert, aria-live will read the content even with no focus fixes microsoft#41356 * win code.sh fix * 🧀 Fix microsoft#75831 * Add proposed api check for shell API Part of microsoft#75091 * launch ext host window internally * EH debugging: support multiple files and folders * Update distro * [email protected] Diff: xtermjs/xterm.js@846a189...96eafd3 Changes: - Publish improvements - Layering/strict updates * Fire onDidChangeMaximumDimension when dimensions are set Fixes microsoft#73496 * Fix potential race * Delete cached service worker entries after a short timeout * Fix webview developer command not being registered * Re-queue canceled geterr requests before remaining buffers We should give higher priority to files that have previously had geterr triggered on them but did not have their request completed * Remove log uploader Fixes microsoft#75748 * Use localized name for macOS keyboard layout * fixes microsoft#75856 * User keyboard layout * simplify common keymap layer * load user keyboard layout after initialization * US Standard keyboard info * better score for layout * fast return keyboard layout if 48-keymap matches * a single keyboard event can be a keymap * switch to user selected keyboard layout * Have `.get` return promise directly * Make sure we wait until service worker is ready before creating content * Add version check to service worker Try to make sure our page is talking to the expected version of the service worker * Don't use clone as much * Move host javascript to own file * Update distro * Remove icon explorations before shipping stable * Move listener to window service. * Minimap: Render find match decorations, fixes microsoft#75216 * Fix `navigator.serviceWorker.ready` is a Promise, not a function * Use update instead of manually tring to re-register * Extract ITypeScript server interface * extract server error to own file * Extract server spanwer to own file * Renames * Move getQueueingType into class * Add experimental dual TS server Fixes microsoft#75866 * Enable "typescript.experimental.useSeparateSyntaxServer" for VS Code workspace * Remove trailing comma * Include server id in TS server errors * Make execute command a configuration object * Also include format in the syntax commands * Fix method name * Renames * Better encapsulate logic of spawning different server kinds * some fixes for mac web * New test runner API for microsoft#74555 * update doc, microsoft#74188 * build: release only iff all builds succeed, introduce VSCODE_RELEASE env * first version of vscode.workspace.fs * 💄 * Tasks registration + the local ext host now has an autority Part of microsoft/vscode-remote-release#757 * Add platform override to getDefaultShellAndArgs in terminal Part of microsoft/vscode-remote-release#757 * Ensure no trailing path separtor on URIs from file picker Part of microsoft#75847 * data tree view state should store scrollTop, microsoft#74410 * fix microsoft#75564 * Change promise structure of creating terminal in tasks Potential fix for microsoft#75774 * do not allow additionalProperties microsoft#75887 * explorer: roots forget children on new file system provider registration microsoft#75720 * Update max tokenization limit without reload * Use interfaces for keyboard layout registration * Separate keyboard layout loading logic for testing * Test browser keymapper * unused standard keyboard event. * Make sure we dismiss the zoom status bar entry when switching editors * Reduce state * Added strictly typed telemetry function (microsoft#75915) * Added strictly typed telemetry function * cleanup publicLog2 signature * Extract port mapping helper function * Re-use extractLocalHostUriMetaDataForPortMapping for openUri * Also map 127.0.0.1 in webviews and forward it for openExternal Fixes microsoft/vscode-remote-release#108 * use empty model when content is empty * 💄 * Update keyboard layout file comments * Delete breadcrumbs.filterOnType unused setting. Fixes microsoft#75969 * Add quick open/input color registrations (fixes microsoft#65153) * Update API * implements ExtHostEditorInsetsShape * use divs for tree indent guides fixes microsoft#75779 * comment out more (for microsoft#74898) * Quick Open > Quick Input (microsoft#65153) * build - enable language server tests again (for microsoft#74898) * use polish for wsl1 * move extension kind to Extension-interface * init log level of remote log service * Open/Save local commands should not show in the command palette Fixes microsoft#75737 * chockidar: use polling * fix build conditions * xterm fixes for cglicenses * oss 1.36.0 * workaround for microsoft#75830 * update distro commit * electron - still call setBounds() as workaround for first window * fixes microsoft#75753 * [email protected] * remove user data service * use posix.join * update doc * Add -1 tab index to status bar entries This keeps them out of the tab order, but allows them to be read with a screen reader Fixes microsoft#41406 * empty view polish labels for remote case microsoft/vscode-remote-release#511 * send remote watcher error to file service (fixes microsoft/vscode-remote-release#329) * update distro * better error handling in case of loader error in tests * fix win 32 bits unit tests * [email protected] (microsoft#76020) * Code-insiders started from WSL doesn't return to console/ doesn't connect. Fixes microsoft/vscode-remote-release#780 * Group decorations by line before rendering * disable support for simple fullscreen (microsoft#75054) * telemetry - add window.nativeFullScreen * move API to stable, microsoft#74188 * build - add and use --disable-inspect for integration tests (microsoft#74898) * 💄 * bump distro * Report workspace stats in shared process * Make return undefined explicit * Add missing return * Use explicit window.createWebviewManager * gdpr comments * webkit fullscreen detection * Fix file name spelling * update distro * add logging * disabling installing extension from gallery when not enabled * status.workbench.keyboardLayout * Move Inspect Keyboard Layout JSON to workbench * return local extension after install * install deps and packs while installing from gallery * Fix default shell selector outside of Windows Fixes microsoft#76040 * Add explicit win32 gheck for using user specific temp folder * Always use settings UI when querying online services, fixes microsoft#75542 * Disable conpty in terminal when accessibility mode is on Fixes microsoft#76043 * Move the webviewResourceRoot property to be set on each webview instead of as a global property For microsoft#72155 This allows us to potentially change the resource root per webview * Make RelativeWorkspacePathResolver a static class * Use openExternal * Auto restart when changing typescript.experimental.useSeparateSyntaxServer * Fix regular expression for rewriting iframe webview html replacing quotes * Telemetry Command (microsoft#76029) * Added telemetry command * Initial Build support * Added build logic for telemetry * Linux Builds * Windows builds sort of work * Remove arm telemetry extraction * Remove alpine telemetry extraction * Remove accidental s * More try catch * Use full resource uri for transforming webview resources This ensures we still work even if there is no base uri set * Use outerHtml to make sure we write `<html>` element from extensions too * Use a regexp that works across browsers * Implement reload on iframe based webview Elements * fix various nls issues * 💄 * add debug output (microsoft#76024) * Fix tasks platform for quoting Fixes microsoft#75774 * fix hockeyapp symbols and report errors (fix microsoft#76024) * update distro * fix bad watch * update distro * Fix drive letter casing on typescript tasks Occurs when opening by double clicking on workspace file. Fixes microsoft#75084 * update distro * update distro * Test remoteName and extensionKind (for microsoft#76028) * MainThreadFileSystem does not await * Fix microsoft#76096 * Rename runInBackground to hideFromUser See microsoft#75278 * Update distro * Fix minimap decoration rendering on horizontal scroll, fixes microsoft#76128 * Handle windows paths correctly when loading webvie resources * Fix standard link handler for iframe based webviews * Mark extensions.all as readonly This iteration, we marked a few other arrays as readonly. We should do the same for extensions.all * Fix microsoft#75927. * Register mouse down on container dom node. * Make sure we never cancel a request to just one of the ts servers Fixes microsoft#76143 * Show document link tooltip first and put click instructions in parens Fixes microsoft#76077 This change also update our standard link hovers to follow this format * reset listener once users choose a dedicated keyboard layout * switch to a new layout only when the score is higher. * Fix kb unit test * fix microsoft#76149 * web - document some API * 💄 workbench API * disable arm and alpine for stable fixes microsoft#76159 * Fix extra auto complete on fast delete (microsoft#74675) Fixes #vscode-remote-release/4 * use yarn --frozen-lockfile for builds * remove `update.enableWindowsBackgroundUpdates` from online settings * fix microsoft#76076 * revert the change * prevent product.json containing gallery * fix microsoft#76074 * fixes microsoft#54084 * Fix microsoft#76105 * fix microsoft#75904 * workaround for microsoft#74934
I can not repro any of that on Ubuntu weirdly. |
This is a PR for #75693
This problem occurs since after the commitment of the #72627.
Since there' s a
finishEditing
flag, only the UI event likeblur
orEnter Key
ACTUALLY finish the editing mode and make File Explorer as active again.When refreshing File Explorer by external events, like file changes by the asynchronous terminal command, never makes
finishEditing
as true so the onFinish will be never called.The reason why
finishEditing
exists is that input box will be disposed whenblur
event is called and thatblur
event is called immediately after the creation of the input box for some reason.The very first approach to resolve this problem was giving the
timeout
for 100ms to prevent disposing the input evenblur
is called.But that gives another bug so
finishEditing
flag was introduced few days ago.And now it causes another bug which is being stated here so rather than giving a
finishEditing
flag ortimeout
forblur
event, giving 100mstimeout
forfocus
after the creation of the input seems to solve the overall problems.