mirror of
https://github.com/rustdesk/rustdesk.git
synced 2025-05-11 10:26:19 +02:00
fix: resize top edge (#9081)
Signed-off-by: fufesou <linlong1266@gmail.com>
This commit is contained in:
parent
071f51cf6f
commit
92752765ba
9 changed files with 31 additions and 8 deletions
|
@ -3492,7 +3492,8 @@ Widget buildVirtualWindowFrame(BuildContext context, Widget child) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
get windowEdgeSize => isLinux && !_linuxWindowResizable ? 0.0 : kWindowEdgeSize;
|
get windowResizeEdgeSize =>
|
||||||
|
isLinux && !_linuxWindowResizable ? 0.0 : kWindowResizeEdgeSize;
|
||||||
|
|
||||||
// `windowManager.setResizable(false)` will reset the window size to the default size on Linux and then set unresizable.
|
// `windowManager.setResizable(false)` will reset the window size to the default size on Linux and then set unresizable.
|
||||||
// See _linuxWindowResizable for more details.
|
// See _linuxWindowResizable for more details.
|
||||||
|
@ -3570,3 +3571,19 @@ Widget netWorkErrorWidget() {
|
||||||
],
|
],
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
List<ResizeEdge>? get windowManagerEnableResizeEdges => isWindows
|
||||||
|
? [
|
||||||
|
ResizeEdge.topLeft,
|
||||||
|
ResizeEdge.top,
|
||||||
|
ResizeEdge.topRight,
|
||||||
|
]
|
||||||
|
: null;
|
||||||
|
|
||||||
|
List<SubWindowResizeEdge>? get subWindowManagerEnableResizeEdges => isWindows
|
||||||
|
? [
|
||||||
|
SubWindowResizeEdge.topLeft,
|
||||||
|
SubWindowResizeEdge.top,
|
||||||
|
SubWindowResizeEdge.topRight,
|
||||||
|
]
|
||||||
|
: null;
|
||||||
|
|
|
@ -241,9 +241,9 @@ const kDefaultScrollDuration = Duration(milliseconds: 50);
|
||||||
const kDefaultMouseWheelThrottleDuration = Duration(milliseconds: 50);
|
const kDefaultMouseWheelThrottleDuration = Duration(milliseconds: 50);
|
||||||
const kFullScreenEdgeSize = 0.0;
|
const kFullScreenEdgeSize = 0.0;
|
||||||
const kMaximizeEdgeSize = 0.0;
|
const kMaximizeEdgeSize = 0.0;
|
||||||
// Do not use kWindowEdgeSize directly. Use `windowEdgeSize` in `common.dart` instead.
|
// Do not use kWindowResizeEdgeSize directly. Use `windowResizeEdgeSize` in `common.dart` instead.
|
||||||
final kWindowEdgeSize = isWindows ? 1.0 : 5.0;
|
const kWindowResizeEdgeSize = 5.0;
|
||||||
final kWindowBorderWidth = 1.0;
|
const kWindowBorderWidth = 1.0;
|
||||||
const kDesktopMenuPadding = EdgeInsets.only(left: 12.0, right: 3.0);
|
const kDesktopMenuPadding = EdgeInsets.only(left: 12.0, right: 3.0);
|
||||||
const kFrameBorderRadius = 12.0;
|
const kFrameBorderRadius = 12.0;
|
||||||
const kFrameClipRRectBorderRadius = 12.0;
|
const kFrameClipRRectBorderRadius = 12.0;
|
||||||
|
|
|
@ -257,8 +257,9 @@ class _ConnectionPageState extends State<ConnectionPage>
|
||||||
@override
|
@override
|
||||||
void onWindowLeaveFullScreen() {
|
void onWindowLeaveFullScreen() {
|
||||||
// Restore edge border to default edge size.
|
// Restore edge border to default edge size.
|
||||||
stateGlobal.resizeEdgeSize.value =
|
stateGlobal.resizeEdgeSize.value = stateGlobal.isMaximized.isTrue
|
||||||
stateGlobal.isMaximized.isTrue ? kMaximizeEdgeSize : windowEdgeSize;
|
? kMaximizeEdgeSize
|
||||||
|
: windowResizeEdgeSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
|
@ -126,6 +126,7 @@ class _DesktopTabPageState extends State<DesktopTabPage>
|
||||||
: Obx(
|
: Obx(
|
||||||
() => DragToResizeArea(
|
() => DragToResizeArea(
|
||||||
resizeEdgeSize: stateGlobal.resizeEdgeSize.value,
|
resizeEdgeSize: stateGlobal.resizeEdgeSize.value,
|
||||||
|
enableResizeEdges: windowManagerEnableResizeEdges,
|
||||||
child: tabWidget,
|
child: tabWidget,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -111,6 +111,7 @@ class _FileManagerTabPageState extends State<FileManagerTabPage> {
|
||||||
: SubWindowDragToResizeArea(
|
: SubWindowDragToResizeArea(
|
||||||
child: tabWidget,
|
child: tabWidget,
|
||||||
resizeEdgeSize: stateGlobal.resizeEdgeSize.value,
|
resizeEdgeSize: stateGlobal.resizeEdgeSize.value,
|
||||||
|
enableResizeEdges: subWindowManagerEnableResizeEdges,
|
||||||
windowId: stateGlobal.windowId,
|
windowId: stateGlobal.windowId,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,6 +43,7 @@ class _InstallPageState extends State<InstallPage> {
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return DragToResizeArea(
|
return DragToResizeArea(
|
||||||
resizeEdgeSize: stateGlobal.resizeEdgeSize.value,
|
resizeEdgeSize: stateGlobal.resizeEdgeSize.value,
|
||||||
|
enableResizeEdges: windowManagerEnableResizeEdges,
|
||||||
child: Container(
|
child: Container(
|
||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
backgroundColor: Theme.of(context).colorScheme.background,
|
backgroundColor: Theme.of(context).colorScheme.background,
|
||||||
|
|
|
@ -127,6 +127,7 @@ class _PortForwardTabPageState extends State<PortForwardTabPage> {
|
||||||
() => SubWindowDragToResizeArea(
|
() => SubWindowDragToResizeArea(
|
||||||
child: tabWidget,
|
child: tabWidget,
|
||||||
resizeEdgeSize: stateGlobal.resizeEdgeSize.value,
|
resizeEdgeSize: stateGlobal.resizeEdgeSize.value,
|
||||||
|
enableResizeEdges: subWindowManagerEnableResizeEdges,
|
||||||
windowId: stateGlobal.windowId,
|
windowId: stateGlobal.windowId,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -228,6 +228,7 @@ class _ConnectionTabPageState extends State<ConnectionTabPage> {
|
||||||
// Specially configured for a better resize area and remote control.
|
// Specially configured for a better resize area and remote control.
|
||||||
childPadding: kDragToResizeAreaPadding,
|
childPadding: kDragToResizeAreaPadding,
|
||||||
resizeEdgeSize: stateGlobal.resizeEdgeSize.value,
|
resizeEdgeSize: stateGlobal.resizeEdgeSize.value,
|
||||||
|
enableResizeEdges: subWindowManagerEnableResizeEdges,
|
||||||
windowId: stateGlobal.windowId,
|
windowId: stateGlobal.windowId,
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ class StateGlobal {
|
||||||
bool _isMinimized = false;
|
bool _isMinimized = false;
|
||||||
final RxBool isMaximized = false.obs;
|
final RxBool isMaximized = false.obs;
|
||||||
final RxBool _showTabBar = true.obs;
|
final RxBool _showTabBar = true.obs;
|
||||||
final RxDouble _resizeEdgeSize = RxDouble(windowEdgeSize);
|
final RxDouble _resizeEdgeSize = RxDouble(windowResizeEdgeSize);
|
||||||
final RxDouble _windowBorderWidth = RxDouble(kWindowBorderWidth);
|
final RxDouble _windowBorderWidth = RxDouble(kWindowBorderWidth);
|
||||||
final RxBool showRemoteToolBar = false.obs;
|
final RxBool showRemoteToolBar = false.obs;
|
||||||
final svcStatus = SvcStatus.notReady.obs;
|
final svcStatus = SvcStatus.notReady.obs;
|
||||||
|
@ -93,7 +93,7 @@ class StateGlobal {
|
||||||
? kFullScreenEdgeSize
|
? kFullScreenEdgeSize
|
||||||
: isMaximized.isTrue
|
: isMaximized.isTrue
|
||||||
? kMaximizeEdgeSize
|
? kMaximizeEdgeSize
|
||||||
: windowEdgeSize;
|
: windowResizeEdgeSize;
|
||||||
|
|
||||||
String getInputSource({bool force = false}) {
|
String getInputSource({bool force = false}) {
|
||||||
if (force || _inputSource.isEmpty) {
|
if (force || _inputSource.isEmpty) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue