From 3b0788be5654259f442490718d3428f4b4ab4f89 Mon Sep 17 00:00:00 2001 From: RustDesk <71636191+rustdesk@users.noreply.github.com> Date: Fri, 12 May 2023 13:22:49 +0800 Subject: [PATCH] Revert "disable desktop_drop for now" --- .../lib/desktop/pages/file_manager_page.dart | 64 ++++++++----------- flutter/pubspec.yaml | 3 +- 2 files changed, 29 insertions(+), 38 deletions(-) diff --git a/flutter/lib/desktop/pages/file_manager_page.dart b/flutter/lib/desktop/pages/file_manager_page.dart index 621c5d0ca..68d198750 100644 --- a/flutter/lib/desktop/pages/file_manager_page.dart +++ b/flutter/lib/desktop/pages/file_manager_page.dart @@ -4,7 +4,7 @@ import 'dart:math'; import 'package:flutter_hbb/desktop/widgets/dragable_divider.dart'; import 'package:percent_indicator/percent_indicator.dart'; -// import 'package:desktop_drop/desktop_drop.dart'; +import 'package:desktop_drop/desktop_drop.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -62,8 +62,7 @@ class _FileManagerPageState extends State with AutomaticKeepAliveClientMixin { final _mouseFocusScope = Rx(MouseFocusScope.none); - // Disable desktop_drop for now - // final _dropMaskVisible = false.obs; // TODO impl drop mask + final _dropMaskVisible = false.obs; // TODO impl drop mask final _overlayKeyState = OverlayKeyState(); late FFI _ffi; @@ -130,21 +129,16 @@ class _FileManagerPageState extends State } Widget dropArea(FileManagerView fileView) { - return Container( - child: fileView, - ); - // Disable desktop_drop for now - // - // return DropTarget( - // onDragDone: (detail) => - // handleDragDone(detail, fileView.controller.isLocal), - // onDragEntered: (enter) { - // _dropMaskVisible.value = true; - // }, - // onDragExited: (exit) { - // _dropMaskVisible.value = false; - // }, - // child: fileView); + return DropTarget( + onDragDone: (detail) => + handleDragDone(detail, fileView.controller.isLocal), + onDragEntered: (enter) { + _dropMaskVisible.value = true; + }, + onDragExited: (exit) { + _dropMaskVisible.value = false; + }, + child: fileView); } Widget generateCard(Widget child) { @@ -322,24 +316,22 @@ class _FileManagerPageState extends State ); } - // Disable desktop_drop for now - // - // void handleDragDone(DropDoneDetails details, bool isLocal) { - // if (isLocal) { - // // ignore local - // return; - // } - // final items = SelectedItems(isLocal: false); - // for (var file in details.files) { - // final f = File(file.path); - // items.add(Entry() - // ..path = file.path - // ..name = file.name - // ..size = FileSystemEntity.isDirectorySync(f.path) ? 0 : f.lengthSync()); - // } - // final otherSideData = model.localController.directoryData(); - // model.remoteController.sendFiles(items, otherSideData); - // } + void handleDragDone(DropDoneDetails details, bool isLocal) { + if (isLocal) { + // ignore local + return; + } + final items = SelectedItems(isLocal: false); + for (var file in details.files) { + final f = File(file.path); + items.add(Entry() + ..path = file.path + ..name = file.name + ..size = FileSystemEntity.isDirectorySync(f.path) ? 0 : f.lengthSync()); + } + final otherSideData = model.localController.directoryData(); + model.remoteController.sendFiles(items, otherSideData); + } } class FileManagerView extends StatefulWidget { diff --git a/flutter/pubspec.yaml b/flutter/pubspec.yaml index 377ba4ae0..c3781a817 100644 --- a/flutter/pubspec.yaml +++ b/flutter/pubspec.yaml @@ -70,8 +70,7 @@ dependencies: get: ^4.6.5 visibility_detector: ^0.3.3 contextmenu: ^3.0.0 - # Disable desktop_drop for now, because it may cause crash on Win11 when destructing. - # desktop_drop: ^0.4.1 + desktop_drop: ^0.3.3 scroll_pos: ^0.3.0 debounce_throttle: ^2.0.0 file_picker: ^5.1.0