diff --git a/game/presentation/views/board_zone_view.gd b/game/presentation/views/board_zone_view.gd index 42f6b5f5..1fef6e35 100644 --- a/game/presentation/views/board_zone_view.gd +++ b/game/presentation/views/board_zone_view.gd @@ -59,7 +59,12 @@ func _init() -> void: pause_badge.tooltip_text = "查看钥石与永久强化进度(只读)" pause_badge.visible = false # 显式初始化——非对局期不误现(可见性归组合根同步) corner.add_child(pause_badge) - corner.set_anchors_and_offsets_preset(Control.PRESET_BOTTOM_RIGHT, Control.PRESET_MODE_MINSIZE, 16) + # 右下角锚定(迭代 18 卡⑦):MINSIZE 预设须在入树后调用——容器出树的最小尺寸缓存陈旧为 0 + #(裸 Button 无此病,容器延迟到首轮排序才重算),零尺寸锚角会使钮对悬出屏边; + # grow 向左上=后续最小尺寸变化向屏内生长。预设延迟帧尾——届时容器最小尺寸已就绪 + corner.grow_horizontal = Control.GROW_DIRECTION_BEGIN + corner.grow_vertical = Control.GROW_DIRECTION_BEGIN + corner.set_anchors_and_offsets_preset.call_deferred(Control.PRESET_BOTTOM_RIGHT, Control.PRESET_MODE_MINSIZE, 16) board_area.add_child(corner) # M8(UI 落码批):棋盘底常驻操作提示条(demo ⑦——文案经 board_view 输入代码证实; # 旧 chord 一次性 toast 提示退役归此常驻条;审计第 7 条用户批) diff --git a/game/smoke/ui_struct_probe.gd b/game/smoke/ui_struct_probe.gd index 925e2e61..26ce81f9 100644 --- a/game/smoke/ui_struct_probe.gd +++ b/game/smoke/ui_struct_probe.gd @@ -345,6 +345,11 @@ func _audit(screen: String, roots: Array) -> void: var b: Control = all_buttons[j] if _wl(screen, "overlap", a) or _wl(screen, "overlap", b): continue + # 滚动区跨界豁免(迭代 18 卡⑦——当局数据区块加高列表后实证:恰好一枚在 ScrollContainer + # 内时,其未剪裁内容矩形与滚区外控件的全局矩形交叠是滚动态样貌非布局缺陷; + # 同滚区两钮仍查——同一容器 stacking 真重叠照红) + if _in_scroll(a) != _in_scroll(b): + continue if a.get_global_rect().intersects(b.get_global_rect()): problems.append("[%s][overlap] %s 与 %s 矩形相交(%s ∩ %s)" % [ screen, a.name, b.name, a.get_global_rect(), b.get_global_rect()])