2
* Copyright (C) 2014-2016 Canonical, Ltd.
4
* This program is free software: you can redistribute it and/or modify it under
5
* the terms of the GNU Lesser General Public License version 3, as published by
6
* the Free Software Foundation.
8
* This program is distributed in the hope that it will be useful, but WITHOUT
9
* ANY WARRANTY; without even the implied warranties of MERCHANTABILITY,
10
* SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
* Lesser General Public License for more details.
13
* You should have received a copy of the GNU Lesser General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
1
/****************************************************************************
3
** Copyright (C) 2014-2016 Canonical, Ltd.
4
** Contact: https://www.qt.io/licensing/
6
** This file is part of the plugins of the Qt Toolkit.
8
** $QT_BEGIN_LICENSE:LGPL$
9
** Commercial License Usage
10
** Licensees holding valid commercial Qt licenses may use this file in
11
** accordance with the commercial license agreement provided with the
12
** Software or, alternatively, in accordance with the terms contained in
13
** a written agreement between you and The Qt Company. For licensing terms
14
** and conditions see https://www.qt.io/terms-conditions. For further
15
** information use the contact form at https://www.qt.io/contact-us.
17
** GNU Lesser General Public License Usage
18
** Alternatively, this file may be used under the terms of the GNU Lesser
19
** General Public License version 3 as published by the Free Software
20
** Foundation and appearing in the file LICENSE.LGPL3 included in the
21
** packaging of this file. Please review the following information to
22
** ensure the GNU Lesser General Public License version 3 requirements
23
** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
25
** GNU General Public License Usage
26
** Alternatively, this file may be used under the terms of the GNU
27
** General Public License version 2.0 or (at your option) the GNU General
28
** Public license version 3 or any later version approved by the KDE Free
29
** Qt Foundation. The licenses are as published by the Free Software
30
** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
31
** included in the packaging of this file. Please review the following
32
** information to ensure the GNU General Public License requirements will
33
** be met: https://www.gnu.org/licenses/gpl-2.0.html and
34
** https://www.gnu.org/licenses/gpl-3.0.html.
38
****************************************************************************/
20
#include "orientationchangeevent_p.h"
21
#include "nativeinterface.h"
42
#include "qmirclientscreen.h"
43
#include "qmirclientlogging.h"
44
#include "qmirclientorientationchangeevent_p.h"
45
#include "qmirclientnativeinterface.h"
23
47
#include <mir_toolkit/mir_client_library.h>
101
125
// Raise the event signal so that client apps know the orientation changed
102
qCDebug(ubuntumirclient, "UbuntuScreen::customEvent - handling orientation change to %s", orientationToStr(mCurrentOrientation));
126
qCDebug(mirclient, "QMirClientScreen::customEvent - handling orientation change to %s", orientationToStr(mCurrentOrientation));
103
127
QWindowSystemInterface::handleScreenOrientationChange(screen(), mCurrentOrientation);
106
void UbuntuScreen::handleWindowSurfaceResize(int windowWidth, int windowHeight)
130
void QMirClientScreen::handleWindowSurfaceResize(int windowWidth, int windowHeight)
108
132
if ((windowWidth > windowHeight && mGeometry.width() < mGeometry.height())
109
133
|| (windowWidth < windowHeight && mGeometry.width() > mGeometry.height())) {
120
144
mGeometry.setWidth(currGeometry.height());
121
145
mGeometry.setHeight(currGeometry.width());
123
qCDebug(ubuntumirclient, "UbuntuScreen::handleWindowSurfaceResize - new screen geometry (w=%d, h=%d)",
147
qCDebug(mirclient, "QMirClientScreen::handleWindowSurfaceResize - new screen geometry (w=%d, h=%d)",
124
148
mGeometry.width(), mGeometry.height());
125
149
QWindowSystemInterface::handleScreenGeometryChange(screen(),
126
150
mGeometry /* newGeometry */,
132
156
mCurrentOrientation = Qt::LandscapeOrientation;
134
qCDebug(ubuntumirclient, "UbuntuScreen::handleWindowSurfaceResize - new orientation %s",orientationToStr(mCurrentOrientation));
158
qCDebug(mirclient, "QMirClientScreen::handleWindowSurfaceResize - new orientation %s",orientationToStr(mCurrentOrientation));
135
159
QWindowSystemInterface::handleScreenOrientationChange(screen(), mCurrentOrientation);
139
void UbuntuScreen::setMirOutput(const MirOutput *output)
163
void QMirClientScreen::setMirOutput(const MirOutput *output)
141
165
// Physical screen size (in mm)
142
166
mPhysicalSize.setWidth(mir_output_get_physical_width_mm(output));
213
void UbuntuScreen::setAdditionalMirDisplayProperties(float scale, MirFormFactor formFactor, int dpi)
237
void QMirClientScreen::setAdditionalMirDisplayProperties(float scale, MirFormFactor formFactor, int dpi)
215
239
if (mDpi != dpi) {
217
241
QWindowSystemInterface::handleScreenLogicalDotsPerInchChange(screen(), dpi, dpi);
220
auto nativeInterface = static_cast<UbuntuNativeInterface *>(qGuiApp->platformNativeInterface());
244
auto nativeInterface = static_cast<QMirClientNativeInterface *>(qGuiApp->platformNativeInterface());
221
245
if (!qFuzzyCompare(mScale, scale)) {
223
247
nativeInterface->screenPropertyChanged(this, QStringLiteral("scale"));