mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.4 KiB
60 lines
1.4 KiB
/* |
|
Main |
|
SPDX-FileCopyrightText: 2015 David Edmundson <[email protected]> |
|
|
|
SPDX-License-Identifier: LGPL-2.1-or-later |
|
*/ |
|
|
|
#include <QGuiApplication> |
|
#include <QSessionManager> |
|
|
|
#include "fdoselectionmanager.h" |
|
|
|
#include "debug.h" |
|
#include "snidbus.h" |
|
#include "xcbutils.h" |
|
|
|
#include <QDBusMetaType> |
|
|
|
#include <KWindowSystem> |
|
|
|
namespace Xcb |
|
{ |
|
Xcb::Atoms *atoms; |
|
} |
|
|
|
int main(int argc, char **argv) |
|
{ |
|
// the whole point of this is to interact with X, if we are in any other session, force trying to connect to X |
|
// if the QPA can't load xcb, this app is useless anyway. |
|
qputenv("QT_QPA_PLATFORM", "xcb"); |
|
|
|
QGuiApplication::setDesktopSettingsAware(false); |
|
|
|
QGuiApplication app(argc, argv); |
|
|
|
if (!KWindowSystem::isPlatformX11()) { |
|
qFatal("xembed-sni-proxy is only useful XCB. Aborting"); |
|
} |
|
|
|
auto disableSessionManagement = [](QSessionManager &sm) { |
|
sm.setRestartHint(QSessionManager::RestartNever); |
|
}; |
|
QObject::connect(&app, &QGuiApplication::commitDataRequest, disableSessionManagement); |
|
QObject::connect(&app, &QGuiApplication::saveStateRequest, disableSessionManagement); |
|
|
|
app.setQuitOnLastWindowClosed(false); |
|
|
|
qDBusRegisterMetaType<KDbusImageStruct>(); |
|
qDBusRegisterMetaType<KDbusImageVector>(); |
|
qDBusRegisterMetaType<KDbusToolTipStruct>(); |
|
|
|
Xcb::atoms = new Xcb::Atoms(); |
|
|
|
FdoSelectionManager manager; |
|
|
|
auto rc = app.exec(); |
|
|
|
delete Xcb::atoms; |
|
return rc; |
|
}
|
|
|