mirror of
https://github.com/Stremio/stremio-shell-ng.git
synced 2026-03-11 17:15:49 +00:00
URL decode dropped file
This commit is contained in:
parent
d84b29c1bd
commit
6adc8c5825
3 changed files with 17 additions and 6 deletions
7
Cargo.lock
generated
7
Cargo.lock
generated
|
|
@ -509,6 +509,7 @@ dependencies = [
|
|||
"serde",
|
||||
"serde_json",
|
||||
"structopt",
|
||||
"urlencoding",
|
||||
"webview2",
|
||||
"webview2-sys",
|
||||
"winapi",
|
||||
|
|
@ -601,6 +602,12 @@ version = "0.2.2"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
|
||||
|
||||
[[package]]
|
||||
name = "urlencoding"
|
||||
version = "2.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "68b90931029ab9b034b300b797048cf23723400aa757e8a2bfb9d748102f9821"
|
||||
|
||||
[[package]]
|
||||
name = "vec_map"
|
||||
version = "0.8.2"
|
||||
|
|
|
|||
|
|
@ -17,6 +17,6 @@ serde = { version = "1.0", features = ["derive"] }
|
|||
serde_json = "1.0"
|
||||
structopt = "0.3"
|
||||
open = "1"
|
||||
|
||||
urlencoding = "2.1.0"
|
||||
[build-dependencies]
|
||||
embed-resource = "1.3"
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
use native_windows_gui::{self as nwg, PartialUi};
|
||||
use once_cell::unsync::OnceCell;
|
||||
use serde_json::json;
|
||||
use std::borrow::Cow;
|
||||
use std::cell::RefCell;
|
||||
use std::collections::VecDeque;
|
||||
use std::mem;
|
||||
|
|
@ -8,6 +9,7 @@ use std::rc::Rc;
|
|||
use std::sync::mpsc;
|
||||
use std::sync::{Arc, Mutex};
|
||||
use std::thread;
|
||||
use urlencoding::decode;
|
||||
use webview2::Controller;
|
||||
use winapi::shared::windef::HWND__;
|
||||
use winapi::um::winuser::*;
|
||||
|
|
@ -104,13 +106,15 @@ impl PartialUi for WebView {
|
|||
Ok(())
|
||||
}).ok();
|
||||
webview.add_new_window_requested(move |_w, msg| {
|
||||
let data = json!({
|
||||
if let Some(file) = msg.get_uri().ok().and_then(|str| {decode(&str.as_str()).ok().map(Cow::into_owned)}) {
|
||||
let data = json!({
|
||||
"object": "transport",
|
||||
"type": 1,
|
||||
"args": ["dragdrop" ,[msg.get_uri().unwrap()]]
|
||||
});
|
||||
tx_drag_drop.send(data.to_string()).ok();
|
||||
msg.put_handled(true).ok();
|
||||
"args": ["dragdrop" ,[file]]
|
||||
});
|
||||
tx_drag_drop.send(data.to_string()).ok();
|
||||
msg.put_handled(true).ok();
|
||||
}
|
||||
Ok(())
|
||||
}).ok();
|
||||
WebView::resize_to_window_bounds_and_show(Some(&controller), Some(hwnd));
|
||||
|
|
|
|||
Loading…
Reference in a new issue