linux: Tweak file chooser dialogs (#14526)
Mostly some small tweaks to the file chooser dialogs. Fixes https://github.com/zed-industries/zed/issues/14127 (along with the `ashpd` update in https://github.com/zed-industries/zed/pull/14401) Also included a fix (https://github.com/zed-industries/zed/commit/971d67c994dd595454cc4bc92bdf33d9da30a31a) for an issue that made multiple file chooser dialogs pop up on Wayland when doing CTRL + O and quickly pressing the escape key. Release Notes: - N/A
This commit is contained in:
@@ -264,24 +264,15 @@ impl<P: LinuxClient + 'static> Platform for P {
|
||||
let (done_tx, done_rx) = oneshot::channel();
|
||||
self.foreground_executor()
|
||||
.spawn(async move {
|
||||
let title = if options.multiple {
|
||||
if !options.files {
|
||||
"Open folders"
|
||||
} else {
|
||||
"Open files"
|
||||
}
|
||||
let title = if options.directories {
|
||||
"Open Folder"
|
||||
} else {
|
||||
if !options.files {
|
||||
"Open folder"
|
||||
} else {
|
||||
"Open file"
|
||||
}
|
||||
"Open File"
|
||||
};
|
||||
|
||||
let request = match OpenFileRequest::default()
|
||||
.modal(true)
|
||||
.title(title)
|
||||
.accept_label("Select")
|
||||
.multiple(options.multiple)
|
||||
.directory(options.directories)
|
||||
.send()
|
||||
@@ -322,8 +313,7 @@ impl<P: LinuxClient + 'static> Platform for P {
|
||||
.spawn(async move {
|
||||
let request = match SaveFileRequest::default()
|
||||
.modal(true)
|
||||
.title("Select new path")
|
||||
.accept_label("Accept")
|
||||
.title("Save File")
|
||||
.current_folder(directory)
|
||||
.expect("pathbuf should not be nul terminated")
|
||||
.send()
|
||||
|
||||
@@ -1119,7 +1119,10 @@ impl Dispatch<wl_keyboard::WlKeyboard, ()> for WaylandClientStatePtr {
|
||||
let keyboard_focused_window = get_window(&mut state, &surface.id());
|
||||
state.keyboard_focused_window = None;
|
||||
state.enter_token.take();
|
||||
// Prevent keyboard events from repeating after opening e.g. a file chooser and closing it quickly
|
||||
state.repeat.current_id += 1;
|
||||
state.clipboard.set_offer(None);
|
||||
state.clipboard.set_primary_offer(None);
|
||||
|
||||
if let Some(window) = keyboard_focused_window {
|
||||
if let Some(ref mut compose) = state.compose_state {
|
||||
|
||||
Reference in New Issue
Block a user