File indexing completed on 2025-02-02 04:26:12
0001 /* SPDX-FileCopyrightText: 2023 Noah Davis <noahadvs@gmail.com> 0002 * SPDX-License-Identifier: LGPL-2.0-or-later 0003 */ 0004 0005 #pragma once 0006 0007 #include <QWidget> 0008 #include <QWindow> 0009 0010 /* A small collection of functions to set the transient parents of QWidgets without segfaults. 0011 * For some reason, we have to check winId() to avoid crashes. 0012 */ 0013 0014 inline void setWidgetTransientParent(QWidget *widget, QWindow *parent) 0015 { 0016 if (widget && widget->winId() && parent && parent->winId()) { 0017 widget->windowHandle()->setTransientParent(parent); 0018 } 0019 } 0020 0021 inline void setWidgetTransientParentToWidget(QWidget *widget, QWidget *parent) 0022 { 0023 if (widget && widget->winId() && parent && parent->winId()) { 0024 widget->windowHandle()->setTransientParent(parent->windowHandle()); 0025 } 0026 } 0027 0028 inline QWindow *getWidgetTransientParent(QWidget *widget) 0029 { 0030 return widget && widget->winId() ? widget->windowHandle()->transientParent() : nullptr; 0031 }