Open
Description
(accidentally filed at and since moved from google/flutter-desktop-embedding#340)
It would be great if desktop embedding supported CSDs. Something to the effect of:
import 'package:csd/csd.dart';
//...
Csd.enableIfPossible(); // inside main()
// inside a build function
AppBar(
actions: [
if (Csd.enabled)
MyCloseButton(),
]
)
I'd be happy to contribute to this, but it seems to be pending some upstream GLFW stuff, unless Flutter does the window drag / resize callbacks manually...
Metadata
Metadata
Assignees
Labels
Issues that are less important to the Flutter projectRunning on desktopNothing broken; request for a new capabilityAffects or could affect many people, though not necessarily a specific customer.flutter/engine repository. See also e: labels.flutter/packages/flutter repository. See also f: labels.Building on or for Linux specificallyBuilding on or for Windows specificallyOwned by Framework teamTriaged by Framework team
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
stuartmorgan-g commentedon Apr 21, 2019
Context: https://en.wikipedia.org/wiki/Client-Side_Decoration
I'm not sure supporting this in the GLFW shell is useful since that won't be the primary supported shell on any platform. It's something to consider for the real Windows (likely UWP) and Linux (likely GTK) shells, however.
refi64 commentedon Apr 21, 2019
At least for GTK that would actually be far easier, since GDK already has functions for this that also take care of the X11 / Wayland differences.
Thinking about this a bit more, there would likely be some widget
CsdBar
or similar that would wrap a child and automatically call the platform-specific drag functions.handicraftsman commentedon Oct 11, 2019
I believe SDL shell would be pretty nice for this - it abstracts most platform specific features like this.
stuartmorgan-g commentedon Oct 11, 2019
Abstracting the platform at the level of implementing the embedding isn't a goal. Embeddings are platform-specific implementations of our own abstraction. Additional layers of abstractions make it harder to implement platform-specific features, or to support uses like add-to-app.
[-]Desktop CSD support[/-][+]Desktop Client Side Decoration support on Windows[/+]55 remaining items