Add support for QWindow::setOrientation on Harmattan
Set the _MEEGOTOUCH_ORIENTATION_ANGLE property on the window, just like Qt Components for MeeGo and MeegoTouch itself. Change-Id: I0b9adf4550593678bbcba89a2d4f1f65c1f4bd20 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>bb10
parent
bc02ef882b
commit
14e237816d
|
|
@ -909,6 +909,9 @@ static const char * xcb_atomnames = {
|
|||
"Abs MT Pressure\0"
|
||||
"Abs MT Tracking ID\0"
|
||||
"Max Contacts\0"
|
||||
#if XCB_USE_MAEMO_WINDOW_PROPERTIES
|
||||
"_MEEGOTOUCH_ORIENTATION_ANGLE\0"
|
||||
#endif
|
||||
};
|
||||
|
||||
xcb_atom_t QXcbConnection::atom(QXcbAtom::Atom atom)
|
||||
|
|
|
|||
|
|
@ -243,6 +243,10 @@ namespace QXcbAtom {
|
|||
AbsMTTrackingID,
|
||||
MaxContacts,
|
||||
|
||||
#if XCB_USE_MAEMO_WINDOW_PROPERTIES
|
||||
MeegoTouchOrientationAngle,
|
||||
#endif
|
||||
|
||||
NPredefinedAtoms,
|
||||
|
||||
_QT_SETTINGS_TIMESTAMP = NPredefinedAtoms,
|
||||
|
|
|
|||
|
|
@ -1148,6 +1148,23 @@ void QXcbWindow::requestActivateWindow()
|
|||
connection()->sync();
|
||||
}
|
||||
|
||||
#if XCB_USE_MAEMO_WINDOW_PROPERTIES
|
||||
void QXcbWindow::setOrientation(Qt::ScreenOrientation orientation)
|
||||
{
|
||||
int angle = 0;
|
||||
switch (orientation) {
|
||||
case Qt::PortraitOrientation: angle = 270; break;
|
||||
case Qt::LandscapeOrientation: angle = 0; break;
|
||||
case Qt::InvertedPortraitOrientation: angle = 90; break;
|
||||
case Qt::InvertedLandscapeOrientation: angle = 180; break;
|
||||
case Qt::UnknownOrientation: break;
|
||||
}
|
||||
Q_XCB_CALL(xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window,
|
||||
atom(QXcbAtom::MeegoTouchOrientationAngle), XCB_ATOM_CARDINAL, 32,
|
||||
1, &angle));
|
||||
}
|
||||
#endif
|
||||
|
||||
QSurfaceFormat QXcbWindow::format() const
|
||||
{
|
||||
// ### return actual format
|
||||
|
|
|
|||
|
|
@ -79,6 +79,10 @@ public:
|
|||
|
||||
void requestActivateWindow();
|
||||
|
||||
#if XCB_USE_MAEMO_WINDOW_PROPERTIES
|
||||
void setOrientation(Qt::ScreenOrientation orientation);
|
||||
#endif
|
||||
|
||||
bool setKeyboardGrabEnabled(bool grab);
|
||||
bool setMouseGrabEnabled(bool grab);
|
||||
|
||||
|
|
|
|||
|
|
@ -46,11 +46,14 @@ contains(QT_CONFIG, xcb-xlib) {
|
|||
DEFINES += XCB_USE_XLIB
|
||||
LIBS += -lX11 -lX11-xcb
|
||||
|
||||
linux-g++-maemo:contains(QT_CONFIG, xinput2) {
|
||||
# XInput2 support for Harmattan.
|
||||
DEFINES += XCB_USE_XINPUT2_MAEMO
|
||||
SOURCES += qxcbconnection_maemo.cpp
|
||||
LIBS += -lXi
|
||||
linux-g++-maemo {
|
||||
contains(QT_CONFIG, xinput2) {
|
||||
# XInput2 support for Harmattan.
|
||||
DEFINES += XCB_USE_XINPUT2_MAEMO
|
||||
SOURCES += qxcbconnection_maemo.cpp
|
||||
LIBS += -lXi
|
||||
}
|
||||
DEFINES += XCB_USE_MAEMO_WINDOW_PROPERTIES
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue