CustomDragArea class

桌面端整窗拖拽与双击最大化的根手势层。

双击检测只在 Listener 层做,全程不参与手势竞技场。这里禁止注册 DoubleTapGestureRecognizer(哪怕回调是空的):它会让全 App 每一次点击都被 hold 约 300ms,且双击时内层 onTap / onTapDown 可能一次都不触发。

拖拽用 MyWindowDragGestureRecognizer,而不是默认的 PanGestureRecognizer (鼠标只要 2px 就认,点击手抖足以把 pointer 交给操作系统原生移动循环)。

双击按 hitTest 分成三种情况,见 classifyDesktopHit。

Inheritance
Available extensions

Constructors

CustomDragArea({Key? key, required Widget child, required bool enableDoubleClickMaximize, required bool draggable, Future<void> onToggleMaximize()?})
const

Properties

child → Widget
final
draggable → bool
final
enableDoubleClickMaximize → bool
final
hashCode → int
The hash code for this object.
no setterinherited
key → Key?
Controls how one widget replaces another widget in the tree.
finalinherited
marginZero → Widget

Available on Widget, provided by the WidgetMarginX extension

no setter
onToggleMaximize → Future<void> Function()?
测试或自定义最大化切换;为 null 时走 window_manager。
final
paddingZero → Widget

Available on Widget, provided by the WidgetPaddingX extension

no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
sliverBox → Widget

Available on Widget, provided by the WidgetSliverBoxX extension

no setter

Methods

createElement() → StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() → State<CustomDragArea>
Creates the mutable state for this widget at a given location in the tree.
override
debugDescribeChildren() → List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
marginAll(double margin) → Widget

Available on Widget, provided by the WidgetMarginX extension

marginOnly({double left = 0.0, double top = 0.0, double right = 0.0, double bottom = 0.0}) → Widget

Available on Widget, provided by the WidgetMarginX extension

marginSymmetric({double horizontal = 0.0, double vertical = 0.0}) → Widget

Available on Widget, provided by the WidgetMarginX extension

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
paddingAll(double padding) → Widget

Available on Widget, provided by the WidgetPaddingX extension

paddingOnly({double left = 0.0, double top = 0.0, double right = 0.0, double bottom = 0.0}) → Widget

Available on Widget, provided by the WidgetPaddingX extension

paddingSymmetric({double horizontal = 0.0, double vertical = 0.0}) → Widget

Available on Widget, provided by the WidgetPaddingX extension

setFocus({String? focusKey, VoidCallback? onPressed, bool opacity = false, Color focusedBorderColor = Colors.grey, double borderWidth = 1.5, Duration animationDuration = const Duration(milliseconds: 350), double opacityBeginScale = 0.65}) → Widget

Available on Widget, provided by the XlyFocusableExtension extension

showRightMenu({required BuildContext context, required List<MyMenuElement> menuElements, MyMenuPopStyle animationStyle = MyMenuPopStyle.reveal, MyMenuStyle? style}) → Widget

Available on Widget, provided by the RightClickMenuExtension extension

toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) → String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String
Returns a one-line detailed description of the object.
inherited
toStringShort() → String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited