| | |
| | | } |
| | | |
| | | inline void setupNecessaryAttributes() { |
| | | // https://github.com/microsoft/terminal/blob/71a6f26e6ece656084e87de1a528c4a8072eeabd/src/cascadia/WindowsTerminal/NonClientIslandWindow.cpp#L940 |
| | | // Must extend top frame to client area |
| | | static QVariant defaultMargins = QVariant::fromValue(QMargins(0, 1, 0, 0)); |
| | | ctx->setWindowAttribute(QStringLiteral("extra-margins"), defaultMargins); |
| | | if (!isWin11OrGreater()) { |
| | | // https://github.com/microsoft/terminal/blob/71a6f26e6ece656084e87de1a528c4a8072eeabd/src/cascadia/WindowsTerminal/NonClientIslandWindow.cpp#L940 |
| | | // Must extend top frame to client area |
| | | static QVariant defaultMargins = QVariant::fromValue(QMargins(0, 1, 0, 0)); |
| | | ctx->setWindowAttribute(QStringLiteral("extra-margins"), defaultMargins); |
| | | } |
| | | |
| | | // Enable dark mode by default, otherwise the system borders are white |
| | | ctx->setWindowAttribute(QStringLiteral("dark-mode"), true); |
| | |
| | | (Qt::WindowMinimized | Qt::WindowMaximized | Qt::WindowFullScreen)); |
| | | } |
| | | |
| | | inline void drawBorder() { |
| | | inline void drawBorderEmulated(QPainter *painter, const QRect &rect) { |
| | | QRegion region(rect); |
| | | void *args[] = { |
| | | painter, |
| | | const_cast<QRect *>(&rect), |
| | | ®ion, |
| | | }; |
| | | ctx->virtual_hook(AbstractWindowContext::DrawWindows10BorderHook_Emulated, args); |
| | | } |
| | | |
| | | inline void drawBorderNative() { |
| | | ctx->virtual_hook(AbstractWindowContext::DrawWindows10BorderHook_Native, nullptr); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | inline void updateExtraMargins(bool windowActive) { |
| | | if (isWin11OrGreater()) { |
| | | return; |
| | | } |
| | | |
| | | // ### FIXME: transparent seam |
| | | if (windowActive) { |
| | | // Restore margins when the window is active |
| | | static QVariant defaultMargins = QVariant::fromValue(QMargins(0, 1, 0, 0)); |