Guest User

Untitled

a guest
Nov 7th, 2021
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. int main(int argc, char *argv[])
  2. {
  3. #if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
  4. QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
  5. #endif
  6.  
  7. QGuiApplication app(argc, argv);
  8. QmlCBridge c_app;
  9.  
  10. QQmlApplicationEngine engine;
  11. const QUrl url(QStringLiteral("qrc:/main.qml"));
  12. QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
  13. &app, [url](QObject *obj, const QUrl &objUrl) {
  14. if (!obj && url == objUrl)
  15. QCoreApplication::exit(-1);
  16. }, Qt::QueuedConnection);
  17. engine.load(url);
  18.  
  19. QQmlContext *root = engine.rootContext();
  20. root->setContextProperty("app", &c_app);
  21.  
  22. QObject *component = engine.rootObjects().first();
  23. c_app.setComponent(component);
  24.  
  25. WId window = qobject_cast<QWindow*>(component)->winId();
  26. Display *display = QX11Info::display();
  27.  
  28. // make window visible on all desktops
  29. unsigned long data = 0xffffffff; // all desktop
  30. XChangeProperty (display, window,
  31. XInternAtom(display, "_NET_WM_DESKTOP", False),
  32. XA_CARDINAL,
  33. 32,
  34. PropModeReplace,
  35. reinterpret_cast<unsigned char *>(&data),
  36. 1);
  37.  
  38. // make window pass-through
  39. XRectangle rect;
  40. XserverRegion region = XFixesCreateRegion(display, &rect, 1);
  41. XFixesSetWindowShapeRegion(display, window, ShapeInput, 0, 0, region);
  42. XFixesSetWindowShapeRegion (display, window, ShapeBounding, 0, 0, 0);
  43. XFixesDestroyRegion(display, region);
  44.  
  45. XMapWindow(display, window);
  46. XFlush(display);
  47.  
  48. int status = app.exec();
  49. return status;
  50. }
  51.  
Advertisement
Add Comment
Please, Sign In to add comment