fix wayland screen prompt on display menu

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
This commit is contained in:
Sahil Yeole 2023-10-02 21:22:40 +05:30
parent b02f169764
commit 7a482fd22a

View File

@ -1053,10 +1053,12 @@ class _ResolutionsMenuState extends State<_ResolutionsMenu> {
FfiModel get ffiModel => widget.ffi.ffiModel; FfiModel get ffiModel => widget.ffi.ffiModel;
Display get display => ffiModel.display; Display get display => ffiModel.display;
List<Resolution> get resolutions => pi.resolutions; List<Resolution> get resolutions => pi.resolutions;
bool get isWayland => bind.mainCurrentIsWayland();
@override @override
void initState() { void initState() {
super.initState(); super.initState();
_getLocalResolutionWayland();
} }
@override @override
@ -1065,7 +1067,6 @@ class _ResolutionsMenuState extends State<_ResolutionsMenu> {
final visible = final visible =
ffiModel.keyboard && (isVirtualDisplay || resolutions.length > 1); ffiModel.keyboard && (isVirtualDisplay || resolutions.length > 1);
if (!visible) return Offstage(); if (!visible) return Offstage();
_getLocalResolution();
final showOriginalBtn = final showOriginalBtn =
display.isOriginalResolutionSet && !display.isOriginalResolution; display.isOriginalResolutionSet && !display.isOriginalResolution;
final showFitLocalBtn = !_isRemoteResolutionFitLocal(); final showFitLocalBtn = !_isRemoteResolutionFitLocal();
@ -1101,6 +1102,20 @@ class _ResolutionsMenuState extends State<_ResolutionsMenu> {
); );
} }
Future<void> _getLocalResolutionWayland() async {
if (!isWayland) return _getLocalResolution();
final window = await window_size.getWindowInfo();
final screen = window.screen;
if (screen != null) {
setState(() {
_localResolution = Resolution(
screen.frame.width.toInt(),
screen.frame.height.toInt(),
);
});
}
}
_getLocalResolution() { _getLocalResolution() {
_localResolution = null; _localResolution = null;
final String currentDisplay = bind.mainGetCurrentDisplay(); final String currentDisplay = bind.mainGetCurrentDisplay();