Skip to content

Add title bar color sync with app theme on Windows#163

Open
mrvokintos wants to merge 5 commits into
ExteraApp:mainfrom
mrvokintos:feature/titlebar-dark-mode
Open

Add title bar color sync with app theme on Windows#163
mrvokintos wants to merge 5 commits into
ExteraApp:mainfrom
mrvokintos:feature/titlebar-dark-mode

Conversation

@mrvokintos

Copy link
Copy Markdown

Навайбкодил синхронизацию цвета заголовка окна с темой приложения для Windows. При переключении между светлой и тёмной темами оформление окна меняется автоматически

Pull Request has been tested on:

  • Android
  • iOS
  • Browser (Chromium based)
  • Browser (Firefox based)
  • Browser (WebKit based)
  • Desktop Linux
  • Desktop Windows
  • Desktop macOS

Implements platform channel to sync the native window title bar color with
the app's theme mode. When the user switches between light and dark themes,
the title bar automatically updates to match.

Changes:
- Add MethodChannel 'com.extera.app/window' in Dart for theme-related native calls
- Implement SetTitleBarColor() in Windows native code using DwmSetWindowAttribute
- Sync title bar brightness in real-time when app theme changes
- Only applies on Windows platform
@ArThirtyFour

Copy link
Copy Markdown
Contributor

бро , а скрины где?
И напомню до сих пор нет оффиц билдов под шинду . ток не офиц пока что

@mrvokintos

Copy link
Copy Markdown
Author

бро , а скрины где?

Было Стало
Было Стало

И напомню до сих пор нет оффиц билдов под шинду . ток не офиц пока что

но возможность-то собрать имеется. лично я был разочарован при виде этого

Comment thread lib/widgets/fluffy_chat_app.dart Outdated

RECT frame = GetClientArea();

// The size here must match the window dimensions to avoid unnecessary surface

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

зачем коменты апстрима удалять ?
верни на место

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

зачем коменты апстрима удалять ? верни на место

Навайбкодил

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ну их вернуть надо везде типа

Comment thread windows/runner/flutter_window.cpp Outdated
void FlutterWindow::SetupChannelHandlers() {
auto channel =
std::make_unique<flutter::MethodChannel<flutter::EncodableValue>>(
flutter_controller_->engine()->messenger(), "com.extera.app/window",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
flutter_controller_->engine()->messenger(), "com.extera.app/window",
flutter_controller_->engine()->messenger(), "xyz.extera.extera/window",


#include "win32_window.h"

// A window that does nothing but host a Flutter view.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

верни коменты

Co-authored-by: meoovv <296894618+meoovv@users.noreply.github.com>
@ryotairi

Copy link
Copy Markdown
Contributor

it's xyz.extera.next, not xyz.extera.extera

@meoovv

meoovv commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

@ryotairi are you sure ? xyz.extera.extera is the most widely used in codebase rn and last time this topic was raised in matrix room, there wasnt clear feedback from you 🫠

ps. not to mention, wip flatpak build is using this id, too !

@mrvokintos
mrvokintos requested a review from meoovv July 18, 2026 16:05
builder: (context, child) => AppLockWidget(
pincode: widget.pincode,
clients: widget.clients,
// Need a navigator above the Matrix widget for

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

эти 2 комента тоже надо бы, пропустила сначала

@mrvokintos
mrvokintos requested a review from meoovv July 18, 2026 16:25
flutter_controller_->engine()->messenger(), "xyz.extera.next/window",
&flutter::StandardMethodCodec::GetInstance());

channel->SetMethodCallHandler(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

мне кажется тут чтото странное/неэффективное начинает происходить, но я цпп не знаю так что норм.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants