Move creating WaylandBackend into ApplicationWayland
Early creation to ensure that we can abort if there is no Wayland display to connect to.
This commit is contained in:
parent
f9a7b94ee7
commit
670973efdb
3 changed files with 11 additions and 3 deletions
|
@ -20,6 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
#include "main_wayland.h"
|
#include "main_wayland.h"
|
||||||
#include <config-kwin.h>
|
#include <config-kwin.h>
|
||||||
// kwin
|
// kwin
|
||||||
|
#include "wayland_backend.h"
|
||||||
#include "xcbutils.h"
|
#include "xcbutils.h"
|
||||||
|
|
||||||
// KDE
|
// KDE
|
||||||
|
@ -48,6 +49,7 @@ ApplicationWayland::ApplicationWayland(int &argc, char **argv)
|
||||||
ApplicationWayland::~ApplicationWayland()
|
ApplicationWayland::~ApplicationWayland()
|
||||||
{
|
{
|
||||||
destroyWorkspace();
|
destroyWorkspace();
|
||||||
|
delete Wayland::WaylandBackend::self();
|
||||||
// TODO: only if we support X11
|
// TODO: only if we support X11
|
||||||
Xcb::setInputFocus(XCB_INPUT_FOCUS_POINTER_ROOT);
|
Xcb::setInputFocus(XCB_INPUT_FOCUS_POINTER_ROOT);
|
||||||
}
|
}
|
||||||
|
@ -75,7 +77,14 @@ void ApplicationWayland::performStartup()
|
||||||
XCB_CW_EVENT_MASK,
|
XCB_CW_EVENT_MASK,
|
||||||
maskValues)));
|
maskValues)));
|
||||||
if (!redirectCheck.isNull()) {
|
if (!redirectCheck.isNull()) {
|
||||||
fputs(i18n("kwin: an X11 window manager is running on the X11 Display.\n").toLocal8Bit().constData(), stderr);
|
fputs(i18n("kwin_wayland: an X11 window manager is running on the X11 Display.\n").toLocal8Bit().constData(), stderr);
|
||||||
|
::exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// try creating the Wayland Backend
|
||||||
|
Wayland::WaylandBackend *backend = Wayland::WaylandBackend::create();
|
||||||
|
if (!backend) {
|
||||||
|
fputs(i18n("kwin_wayland: could not connect to Wayland Server, ensure WAYLAND_DISPLAY is set.\n").toLocal8Bit().constData(), stderr);
|
||||||
::exit(1);
|
::exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -204,7 +204,7 @@ private:
|
||||||
* It creates the connection to the Wayland Compositor, sets up the registry and creates
|
* It creates the connection to the Wayland Compositor, sets up the registry and creates
|
||||||
* the Wayland surface and its shell mapping.
|
* the Wayland surface and its shell mapping.
|
||||||
*/
|
*/
|
||||||
class WaylandBackend : public QObject
|
class KWIN_EXPORT WaylandBackend : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -149,7 +149,6 @@ Workspace::Workspace(bool restore)
|
||||||
|
|
||||||
// start the Wayland Backend - will only be created if WAYLAND_DISPLAY is present
|
// start the Wayland Backend - will only be created if WAYLAND_DISPLAY is present
|
||||||
#if HAVE_WAYLAND
|
#if HAVE_WAYLAND
|
||||||
Wayland::WaylandBackend::create(this);
|
|
||||||
if (kwinApp()->operationMode() != Application::OperationModeX11) {
|
if (kwinApp()->operationMode() != Application::OperationModeX11) {
|
||||||
connect(this, SIGNAL(stackingOrderChanged()), input(), SLOT(updatePointerWindow()));
|
connect(this, SIGNAL(stackingOrderChanged()), input(), SLOT(updatePointerWindow()));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue