Closed xuqi27837288 closed 10 months ago
最大化的窗口看起来有个先「还原」然后「最小化」的操作。 普通大小窗口则直接开始最小化动画
确实是有主动去去掉最大化然后最小化。
QXcbWindow::setWindowState
里面有个 unset old state
然后 set new state
的操作
void QXcbWindow::setWindowState(Qt::WindowStates state)
{
...
// unset old state
if (m_windowState & Qt::WindowMaximized)
setNetWmState(false,
atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_HORZ),
atom(QXcbAtom::_NET_WM_STATE_MAXIMIZED_VERT));
// set new state
if (state & Qt::WindowMinimized) {
{
xcb_client_message_event_t event;
event.response_type = XCB_CLIENT_MESSAGE;
event.format = 32;
event.sequence = 0;
event.window = m_window;
event.type = atom(QXcbAtom::WM_CHANGE_STATE);
event.data.data32[0] = XCB_ICCCM_WM_STATE_ICONIC;
event.data.data32[1] = 0;
event.data.data32[2] = 0;
event.data.data32[3] = 0;
event.data.data32[4] = 0;
xcb_send_event(xcb_connection(), 0, xcbScreen()->root(),
XCB_EVENT_MASK_STRUCTURE_NOTIFY | XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT,
(const char *)&event);
}
m_minimized = true;
}
...
}
通过 Qt (5.15)接口最小化会还原然后最小化,Qt 5.11 就没有这种逻辑。 所以 v20 没有这种效果,v23 看起来就是有点异常。
@Dami-star 该提交已经合并,可以patch到 v23 上的 qt 上
代码已合入,本地测试已经达到需求。文管和控制中心的表现正常
@xuqi27837288 跟进一下是否集成,集成后可以在 qt 5.15.8-1+deepin2
及以后版本回归测试
@kegechen 当前不满足回归测试条件,暂无环境可以测试,提交集成后再走单进行回归测试,谢谢~
@LiHua000 Qt 的集成搞一下吧,别忘了带上这个 issue
当前Beta2还是qt 5.15.7,待仓库冻结完毕后整体包含qt 5.15.8一起集成
集成完到测试回归 @Zeno-sole
@babyfengfjx 请使用beta3镜像验证,该版本已合入
@xuqi27837288 请在最新镜像回归验证。
【验证环境】:v23 beta3镜像 镜像:https://packagesupdate.uniontech.com/repo/uos-professional/image-beige/CUSTOM/lichenggang/20240102 仓库:deb https://ci.deepin.com/repo/deepin/deepin-community/testing/ unstable main dde community commercial 内核:Linux test-PC 6.6.7-amd64-desktop-hwe 【验证步骤】:问题单中描述的步骤 【验证结果】:回归测试通过 【截图录屏】:
SUMMARY | 问题概要
必现问题
SOFTWARE/OS VERSIONS | 软件/系统版本信息
PRE-REQUIREMENT | 预置条件
控制中心-个性化-桌面-最小化时效果设置为缩放
STEPS TO REPRODUCE | 复现步骤
将文管或控制中心最大化后,进行最小化操作,观察此时的最小化效果
OBSERVED RESULT | 观察到的结果
窗口最小化时会在屏幕中间停留后再缩放至任务栏上
https://github.com/linuxdeepin/developer-center/assets/62528742/f4721e07-58ca-45c5-9c2f-da8c211eb009
EXPECTED RESULT | 期望的结果
窗口最小化时直接缩放至任务栏上(可以对比窗口未最大化时进行缩放操作的效果)
ADDITIONAL INFORMATION | 额外补充
No response