fix: 修复打开应用后,点击应用右键菜单“关闭所有”,应用图标背景颜色没有调整的问题
修复点击应用右键菜单“关闭所有”后,没有接受到DestroyNotify事件,主动调用xcb_flush刷新缓存数据 Log: 修复点击应用右键菜单“关闭所有”后应用图标背景颜色没有调整的问题 Task: https://pms.uniontech.com/task-view-150883.html Influence: 应用“关闭所有”后图标显示正常 Change-Id: I8ed731adbd491e531251820826bf75cf891155b6
This commit is contained in:
parent
e0ad69d3d7
commit
2d36508f1e
@ -51,6 +51,11 @@ XWindow XCBUtils::allocId()
|
|||||||
return xcb_generate_id(m_connect);
|
return xcb_generate_id(m_connect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void XCBUtils::flush()
|
||||||
|
{
|
||||||
|
xcb_flush(m_connect);
|
||||||
|
}
|
||||||
|
|
||||||
void XCBUtils::killClientChecked(XWindow xid)
|
void XCBUtils::killClientChecked(XWindow xid)
|
||||||
{
|
{
|
||||||
xcb_kill_client_checked(m_connect, xid);
|
xcb_kill_client_checked(m_connect, xid);
|
||||||
@ -172,8 +177,7 @@ void XCBUtils::setActiveWindow(XWindow xid)
|
|||||||
void XCBUtils::changeActiveWindow(XWindow newActiveXid)
|
void XCBUtils::changeActiveWindow(XWindow newActiveXid)
|
||||||
{
|
{
|
||||||
xcb_ewmh_request_change_active_window(&m_ewmh, m_screenNum, newActiveXid, XCB_EWMH_CLIENT_SOURCE_TYPE_OTHER, XCB_CURRENT_TIME, XCB_WINDOW_NONE);
|
xcb_ewmh_request_change_active_window(&m_ewmh, m_screenNum, newActiveXid, XCB_EWMH_CLIENT_SOURCE_TYPE_OTHER, XCB_CURRENT_TIME, XCB_WINDOW_NONE);
|
||||||
// 此处getActiveWindow作用是触发缓冲机制,执行设置活动窗口动作
|
flush();
|
||||||
getActiveWindow();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void XCBUtils::restackWindow(XWindow xid)
|
void XCBUtils::restackWindow(XWindow xid)
|
||||||
@ -596,7 +600,7 @@ void XCBUtils::registerEvents(XWindow xid, uint32_t eventMask)
|
|||||||
xid,
|
xid,
|
||||||
XCB_CW_EVENT_MASK,
|
XCB_CW_EVENT_MASK,
|
||||||
&value);
|
&value);
|
||||||
xcb_flush(m_connect);
|
flush();
|
||||||
|
|
||||||
xcb_generic_error_t *error = xcb_request_check(m_connect, cookie);
|
xcb_generic_error_t *error = xcb_request_check(m_connect, cookie);
|
||||||
if (error != nullptr) {
|
if (error != nullptr) {
|
||||||
|
@ -100,6 +100,9 @@ public:
|
|||||||
// 分配XID
|
// 分配XID
|
||||||
XWindow allocId();
|
XWindow allocId();
|
||||||
|
|
||||||
|
// 刷新
|
||||||
|
void flush();
|
||||||
|
|
||||||
/************************* xpropto method ***************************/
|
/************************* xpropto method ***************************/
|
||||||
// 杀掉进程
|
// 杀掉进程
|
||||||
void killClientChecked(XWindow xid);
|
void killClientChecked(XWindow xid);
|
||||||
|
@ -778,6 +778,9 @@ AppMenuItem Entry::getMenuItemCloseAll()
|
|||||||
qInfo() << "close WindowId " << info->getXid();
|
qInfo() << "close WindowId " << info->getXid();
|
||||||
info->close(timestamp);
|
info->close(timestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 关闭窗口后,主动刷新事件
|
||||||
|
XCB->flush();
|
||||||
};
|
};
|
||||||
|
|
||||||
AppMenuItem item;
|
AppMenuItem item;
|
||||||
|
Loading…
Reference in New Issue
Block a user