forked from quickshell/quickshell
fix: fix scopes of created QQmlComponents
Using the scope of the component itself makes sure things availible in its scope are usable, instead of the parent scope.
This commit is contained in:
parent
7467b65809
commit
4cfe6ee0a1
|
@ -95,7 +95,7 @@ void Variants::updateVariants() {
|
|||
|
||||
auto* instance = this->mComponent->createWithInitialProperties(
|
||||
variant,
|
||||
QQmlEngine::contextForObject(this)
|
||||
QQmlEngine::contextForObject(this->mComponent)
|
||||
);
|
||||
|
||||
if (instance == nullptr) {
|
||||
|
|
|
@ -177,7 +177,7 @@ void SocketServer::disableServer() {
|
|||
|
||||
void SocketServer::onNewConnection() {
|
||||
if (auto* connection = this->server->nextPendingConnection()) {
|
||||
auto* instanceObj = this->mHandler->create(QQmlEngine::contextForObject(this));
|
||||
auto* instanceObj = this->mHandler->create(QQmlEngine::contextForObject(this->mHandler));
|
||||
auto* instance = qobject_cast<Socket*>(instanceObj);
|
||||
|
||||
if (instance == nullptr) {
|
||||
|
|
|
@ -73,7 +73,8 @@ void SessionLock::updateSurfaces(SessionLock* old) {
|
|||
|
||||
for (auto* screen: screens) {
|
||||
if (!this->surfaces.contains(screen)) {
|
||||
auto* instanceObj = this->mSurfaceComponent->create(QQmlEngine::contextForObject(this));
|
||||
auto* instanceObj =
|
||||
this->mSurfaceComponent->create(QQmlEngine::contextForObject(this->mSurfaceComponent));
|
||||
auto* instance = qobject_cast<SessionLockSurface*>(instanceObj);
|
||||
|
||||
if (instance == nullptr) {
|
||||
|
|
Loading…
Reference in a new issue