Merge pull request #3193 from Kingtous/master
fix: allowing idle scroll events
This commit is contained in:
commit
51757b3f9a
@ -1735,6 +1735,7 @@ Future<void> updateSystemWindowTheme() async {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// macOS only
|
/// macOS only
|
||||||
///
|
///
|
||||||
/// Note: not found a general solution for rust based AVFoundation bingding.
|
/// Note: not found a general solution for rust based AVFoundation bingding.
|
||||||
@ -1762,3 +1763,27 @@ Future<PermissionAuthorizeType> osxCanRecordAudio() async {
|
|||||||
Future<bool> osxRequestAudio() async {
|
Future<bool> osxRequestAudio() async {
|
||||||
return await kMacOSPermChannel.invokeMethod("requestRecordAudio");
|
return await kMacOSPermChannel.invokeMethod("requestRecordAudio");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class DraggableNeverScrollableScrollPhysics extends ScrollPhysics {
|
||||||
|
/// Creates scroll physics that does not let the user scroll.
|
||||||
|
const DraggableNeverScrollableScrollPhysics({super.parent});
|
||||||
|
|
||||||
|
@override
|
||||||
|
DraggableNeverScrollableScrollPhysics applyTo(ScrollPhysics? ancestor) {
|
||||||
|
return DraggableNeverScrollableScrollPhysics(parent: buildParent(ancestor));
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool shouldAcceptUserOffset(ScrollMetrics position) {
|
||||||
|
// TODO: find a better solution to check if the offset change is caused by the scrollbar.
|
||||||
|
// Workaround: when dragging with the scrollbar, it always triggers an [IdleScrollActivity].
|
||||||
|
if (position is ScrollPositionWithSingleContext) {
|
||||||
|
// ignore: invalid_use_of_protected_member, invalid_use_of_visible_for_testing_member
|
||||||
|
return position.activity is IdleScrollActivity;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool get allowImplicitScrolling => false;
|
||||||
|
}
|
||||||
|
@ -120,7 +120,7 @@ class _ConnectionPageState extends State<ConnectionPage>
|
|||||||
scrollController: _scrollController,
|
scrollController: _scrollController,
|
||||||
child: CustomScrollView(
|
child: CustomScrollView(
|
||||||
controller: _scrollController,
|
controller: _scrollController,
|
||||||
physics: NeverScrollableScrollPhysics(),
|
physics: DraggableNeverScrollableScrollPhysics(),
|
||||||
slivers: [
|
slivers: [
|
||||||
SliverList(
|
SliverList(
|
||||||
delegate: SliverChildListDelegate([
|
delegate: SliverChildListDelegate([
|
||||||
|
@ -75,6 +75,7 @@ class _DesktopHomePageState extends State<DesktopHomePage>
|
|||||||
scrollController: _leftPaneScrollController,
|
scrollController: _leftPaneScrollController,
|
||||||
child: SingleChildScrollView(
|
child: SingleChildScrollView(
|
||||||
controller: _leftPaneScrollController,
|
controller: _leftPaneScrollController,
|
||||||
|
physics: DraggableNeverScrollableScrollPhysics(),
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
buildTip(context),
|
buildTip(context),
|
||||||
|
@ -128,7 +128,7 @@ class _DesktopSettingPageState extends State<DesktopSettingPage>
|
|||||||
scrollController: controller,
|
scrollController: controller,
|
||||||
child: PageView(
|
child: PageView(
|
||||||
controller: controller,
|
controller: controller,
|
||||||
physics: NeverScrollableScrollPhysics(),
|
physics: DraggableNeverScrollableScrollPhysics(),
|
||||||
children: const [
|
children: const [
|
||||||
_General(),
|
_General(),
|
||||||
_Safety(),
|
_Safety(),
|
||||||
@ -170,7 +170,7 @@ class _DesktopSettingPageState extends State<DesktopSettingPage>
|
|||||||
return DesktopScrollWrapper(
|
return DesktopScrollWrapper(
|
||||||
scrollController: scrollController,
|
scrollController: scrollController,
|
||||||
child: ListView(
|
child: ListView(
|
||||||
physics: NeverScrollableScrollPhysics(),
|
physics: DraggableNeverScrollableScrollPhysics(),
|
||||||
controller: scrollController,
|
controller: scrollController,
|
||||||
children: tabs
|
children: tabs
|
||||||
.asMap()
|
.asMap()
|
||||||
@ -234,7 +234,7 @@ class _GeneralState extends State<_General> {
|
|||||||
return DesktopScrollWrapper(
|
return DesktopScrollWrapper(
|
||||||
scrollController: scrollController,
|
scrollController: scrollController,
|
||||||
child: ListView(
|
child: ListView(
|
||||||
physics: NeverScrollableScrollPhysics(),
|
physics: DraggableNeverScrollableScrollPhysics(),
|
||||||
controller: scrollController,
|
controller: scrollController,
|
||||||
children: [
|
children: [
|
||||||
theme(),
|
theme(),
|
||||||
@ -456,7 +456,7 @@ class _SafetyState extends State<_Safety> with AutomaticKeepAliveClientMixin {
|
|||||||
return DesktopScrollWrapper(
|
return DesktopScrollWrapper(
|
||||||
scrollController: scrollController,
|
scrollController: scrollController,
|
||||||
child: SingleChildScrollView(
|
child: SingleChildScrollView(
|
||||||
physics: NeverScrollableScrollPhysics(),
|
physics: DraggableNeverScrollableScrollPhysics(),
|
||||||
controller: scrollController,
|
controller: scrollController,
|
||||||
child: Column(
|
child: Column(
|
||||||
children: [
|
children: [
|
||||||
@ -908,7 +908,7 @@ class _NetworkState extends State<_Network> with AutomaticKeepAliveClientMixin {
|
|||||||
scrollController: scrollController,
|
scrollController: scrollController,
|
||||||
child: ListView(
|
child: ListView(
|
||||||
controller: scrollController,
|
controller: scrollController,
|
||||||
physics: NeverScrollableScrollPhysics(),
|
physics: DraggableNeverScrollableScrollPhysics(),
|
||||||
children: [
|
children: [
|
||||||
_lock(locked, 'Unlock Network Settings', () {
|
_lock(locked, 'Unlock Network Settings', () {
|
||||||
locked = false;
|
locked = false;
|
||||||
@ -1094,7 +1094,7 @@ class _DisplayState extends State<_Display> {
|
|||||||
scrollController: scrollController,
|
scrollController: scrollController,
|
||||||
child: ListView(
|
child: ListView(
|
||||||
controller: scrollController,
|
controller: scrollController,
|
||||||
physics: NeverScrollableScrollPhysics(),
|
physics: DraggableNeverScrollableScrollPhysics(),
|
||||||
children: [
|
children: [
|
||||||
viewStyle(context),
|
viewStyle(context),
|
||||||
scrollStyle(context),
|
scrollStyle(context),
|
||||||
@ -1334,7 +1334,7 @@ class _AccountState extends State<_Account> {
|
|||||||
return DesktopScrollWrapper(
|
return DesktopScrollWrapper(
|
||||||
scrollController: scrollController,
|
scrollController: scrollController,
|
||||||
child: ListView(
|
child: ListView(
|
||||||
physics: NeverScrollableScrollPhysics(),
|
physics: DraggableNeverScrollableScrollPhysics(),
|
||||||
controller: scrollController,
|
controller: scrollController,
|
||||||
children: [
|
children: [
|
||||||
_Card(title: 'Account', children: [accountAction()]),
|
_Card(title: 'Account', children: [accountAction()]),
|
||||||
@ -1378,7 +1378,7 @@ class _AboutState extends State<_About> {
|
|||||||
scrollController: scrollController,
|
scrollController: scrollController,
|
||||||
child: SingleChildScrollView(
|
child: SingleChildScrollView(
|
||||||
controller: scrollController,
|
controller: scrollController,
|
||||||
physics: NeverScrollableScrollPhysics(),
|
physics: DraggableNeverScrollableScrollPhysics(),
|
||||||
child: _Card(title: '${translate('About')} RustDesk', children: [
|
child: _Card(title: '${translate('About')} RustDesk', children: [
|
||||||
Column(
|
Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user