fix: use rawRGBa cursor workaround

This commit is contained in:
Kingtous 2022-10-10 10:53:10 +08:00
parent b7b1b183f1
commit abbf56f2ab
2 changed files with 10 additions and 2 deletions

View File

@ -404,7 +404,9 @@ class ImagePaint extends StatelessWidget {
controller: _horizontal, controller: _horizontal,
thumbVisibility: false, thumbVisibility: false,
trackVisibility: false, trackVisibility: false,
notificationPredicate: (notification) => notification.depth == 1, notificationPredicate: layoutSize.height < size.height
? (notification) => notification.depth == 1
: defaultScrollNotificationPredicate,
child: widget, child: widget,
), ),
); );

View File

@ -1,5 +1,6 @@
import 'dart:async'; import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'dart:io';
import 'dart:math'; import 'dart:math';
import 'dart:typed_data'; import 'dart:typed_data';
import 'dart:ui' as ui; import 'dart:ui' as ui;
@ -848,7 +849,12 @@ class CursorModel with ChangeNotifier {
} }
_updateCacheLinux(ui.Image image, int id, int w, int h) async { _updateCacheLinux(ui.Image image, int id, int w, int h) async {
final data = await image.toByteData(format: ui.ImageByteFormat.png); ByteData? data;
if (Platform.isWindows) {
data = await image.toByteData(format: ui.ImageByteFormat.rawRgba);
} else {
data = await image.toByteData(format: ui.ImageByteFormat.png);
}
_cacheLinux = CursorData( _cacheLinux = CursorData(
peerId: this.id, peerId: this.id,
data: data?.buffer.asUint8List(), data: data?.buffer.asUint8List(),