File tree Expand file tree Collapse file tree 5 files changed +11
-0
lines changed
ironrdp-cliprdr-native/src
ironrdp-web/src/clipboard Expand file tree Collapse file tree 5 files changed +11
-0
lines changed Original file line number Diff line number Diff line change @@ -54,6 +54,8 @@ impl CliprdrBackend for StubCliprdrBackend {
54
54
".cliprdr"
55
55
}
56
56
57
+ fn on_ready ( & mut self ) { }
58
+
57
59
fn client_capabilities ( & self ) -> ClipboardGeneralCapabilityFlags {
58
60
// No additional capabilities yet
59
61
ClipboardGeneralCapabilityFlags :: empty ( )
Original file line number Diff line number Diff line change @@ -54,6 +54,8 @@ impl CliprdrBackend for WinCliprdrBackend {
54
54
ClipboardGeneralCapabilityFlags :: empty ( )
55
55
}
56
56
57
+ fn on_ready ( & mut self ) { }
58
+
57
59
fn on_process_negotiated_capabilities ( & mut self , capabilities : ClipboardGeneralCapabilityFlags ) {
58
60
self . send_event ( BackendEvent :: DowngradedCapabilities ( capabilities) )
59
61
}
Original file line number Diff line number Diff line change @@ -60,6 +60,9 @@ pub trait CliprdrBackend: AsAny + core::fmt::Debug + Send {
60
60
/// [crate::Cliprdr] capabilities.
61
61
fn client_capabilities ( & self ) -> ClipboardGeneralCapabilityFlags ;
62
62
63
+ /// Called by [crate::Cliprdr] when it is ready to process clipboard data (channel initialized)
64
+ fn on_ready ( & mut self ) ;
65
+
63
66
/// Processes signal to start clipboard copy sequence.
64
67
///
65
68
/// Trait implementer is responsible for gathering its list of available [`ClipboardFormat`]
Original file line number Diff line number Diff line change @@ -154,6 +154,7 @@ impl<R: Role> Cliprdr<R> {
154
154
if self . state == CliprdrState :: Initialization {
155
155
info ! ( "CLIPRDR(clipboard) virtual channel has been initialized" ) ;
156
156
self . state = CliprdrState :: Ready ;
157
+ self . backend . on_ready ( ) ;
157
158
} else {
158
159
info ! ( "CLIPRDR(clipboard) Remote has received format list successfully" ) ;
159
160
}
@@ -173,6 +174,7 @@ impl<R: Role> Cliprdr<R> {
173
174
if R :: is_server ( ) && self . state == CliprdrState :: Initialization {
174
175
info ! ( "CLIPRDR(clipboard) virtual channel has been initialized" ) ;
175
176
self . state = CliprdrState :: Ready ;
177
+ self . backend . on_ready ( ) ;
176
178
}
177
179
178
180
let formats = format_list. get_formats ( self . are_long_format_names_enabled ( ) ) ?;
Original file line number Diff line number Diff line change @@ -540,6 +540,8 @@ impl CliprdrBackend for WasmClipboardBackend {
540
540
ClipboardGeneralCapabilityFlags :: empty ( )
541
541
}
542
542
543
+ fn on_ready ( & mut self ) { }
544
+
543
545
fn on_request_format_list ( & mut self ) {
544
546
// Initial clipboard is assumed to be empty on WASM (TODO: This is only relevant for Firefox?)
545
547
self . send_event ( WasmClipboardBackendMessage :: ForceClipboardUpdate ) ;
You can’t perform that action at this time.
0 commit comments