flutter_desktop: update custom cursor lib & menubar margin & better callback for pinning menubar

Signed-off-by: fufesou <shuanglongchen@yeah.net>
This commit is contained in:
fufesou
2022-09-13 19:10:55 -07:00
parent f4bc27f969
commit c5a78ce107
4 changed files with 54 additions and 27 deletions

View File

@@ -26,13 +26,15 @@ class _MenubarTheme {
class RemoteMenubar extends StatefulWidget {
final String id;
final FFI ffi;
final List<Function(bool)> onEnterOrLeaveImage;
final Function(Function(bool)) onEnterOrLeaveImageSetter;
final Function() onEnterOrLeaveImageCleaner;
const RemoteMenubar({
Key? key,
required this.id,
required this.ffi,
required this.onEnterOrLeaveImage,
required this.onEnterOrLeaveImageSetter,
required this.onEnterOrLeaveImageCleaner,
}) : super(key: key);
@override
@@ -52,10 +54,10 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
}
@override
void initState() {
initState() {
super.initState();
widget.onEnterOrLeaveImage.add((enter) {
widget.onEnterOrLeaveImageSetter((enter) {
if (enter) {
_rxHideReplay.add(0);
_isCursorOverImage = true;
@@ -74,6 +76,13 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
});
}
@override
dispose() {
super.dispose();
widget.onEnterOrLeaveImageCleaner();
}
@override
Widget build(BuildContext context) {
return Align(
@@ -85,21 +94,20 @@ class _RemoteMenubarState extends State<RemoteMenubar> {
Widget _buildShowHide(BuildContext context) {
return Obx(() => Tooltip(
message: translate(_show.value ? "Hide Menubar" : "Show Menubar"),
child: SizedBox(
width: 100,
height: 5,
child: TextButton(
onHover: (bool v) {
_hideColor.value = v ? Colors.white60 : Colors.white24;
},
onPressed: () {
_show.value = !_show.value;
},
child: Obx(() => Container(
color: _hideColor.value,
)))),
));
message: translate(_show.value ? "Hide Menubar" : "Show Menubar"),
child: SizedBox(
width: 100,
height: 13,
child: TextButton(
onHover: (bool v) {
_hideColor.value = v ? Colors.white60 : Colors.white24;
},
onPressed: () {
_show.value = !_show.value;
},
child: Obx(() => Container(
color: _hideColor.value,
).marginOnly(bottom: 8.0))))));
}
Widget _buildMenubar(BuildContext context) {