diff --git a/frame/window/tray/tray_delegate.cpp b/frame/window/tray/tray_delegate.cpp index dd6c65b79..c3122e1b7 100644 --- a/frame/window/tray/tray_delegate.cpp +++ b/frame/window/tray/tray_delegate.cpp @@ -64,14 +64,13 @@ QWidget *TrayDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem BaseTrayWidget *trayWidget = nullptr; if(type == TrayIconType::XEMBED) { if (Utils::IS_WAYLAND_DISPLAY) { - trayWidget = new XEmbedTrayItemWidget(winId, nullptr, nullptr, parent); - } else { - int screenp = 0; + static Display *display = XOpenDisplay(nullptr); + static int screenp = 0; static xcb_connection_t *xcb_connection = xcb_connect(qgetenv("DISPLAY"), &screenp); - static Display *m_display = XOpenDisplay(nullptr); - trayWidget = new XEmbedTrayItemWidget(winId, xcb_connection, m_display, parent); + trayWidget = new XEmbedTrayItemWidget(winId, xcb_connection, display, parent); + } else { + trayWidget = new XEmbedTrayItemWidget(winId, nullptr, nullptr, parent); } - const TrayModel *model = qobject_cast(index.model()); if (model) connect(model, &TrayModel::requestUpdateIcon, trayWidget, &BaseTrayWidget::updateIcon);