Size hints will not be implemented. Grabs maybe some day but the
warnings should be silenced for now.
Change-Id: I1f4861454d45e668c4d758c7f82940cd1136d0c8
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Unify the behavior for eglfs, linuxfb and kms. The relevant code is
now moved from kms into fbconvenience.
From now on, on all three platforms, terminal keyboard input is turned
off by default. This feature can be disabled by setting
QT_QPA_ENABLE_TERMINAL_KEYBOARD to 1. This is similar to what the
evdev-based keyboard handler did in QWS in Qt4.
[ChangeLog][QtGui] The main Embedded Linux platform plugins (eglfs,
linuxfb, kms) are changed to behave identically with regards to
terminal keyboard input: it is turned off by default on all of these
platforms. If this feature is not desired, it can be disabled by
setting the environment variable QT_QPA_ENABLE_TERMINAL_KEYBOARD.
Task-number: QTBUG-36394
Change-Id: I69e47ed7580464dc5e703e9a0e23891c7c8b7790
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
Use the same variable in QAndroidPlatformWindow.
Task-number: QTBUG-34764
Change-Id: Idf33707e81cf7306663196f3c17735d8dc1dde5d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Previously, showFullScreen() had a race condition: it depended
on QFbScreen::setGeometry() being called after the window state was
set (that would trigger QPlatformScreen::resizeMaximizedWindows(), which
was the only part of the code that reacted to WindowFullScreen).
On Android this caused random behaviour.
Task-number: QTBUG-33294
Change-Id: I228e6af4139af1a47387e7d80757d7b46e859580
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
We will show an error message saying no platform context is available
but the crash (due to GL windows having a null backingstore) is not
desirable.
Change-Id: Iba3a61bfc4eeeb89b4a0017a58c87a7dbd0895e7
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
QPlatformBackingStore::endPaint does not take a QRegion parameter.
6ce6b8a378 set the API, but the
platform implementations were not all synced up since then. There
was anyway no point in overriding beginPaint and endPaint on
platforms which don't need to do anything there. This fixes
clang warnings of the form
QXcbBackingStore::endPaint hides overloaded virtual function
Change-Id: Id6cd0fc2c831a34576ac2c73eeb0d5741d26e622
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
When making a QBackingStore for a QWindow that was not created yet,
Qt would try to dereference the (null) platform window pointer.
Task-number: QTBUG-31022
Change-Id: I866c71cce9d401ebb598ea4cc91f7cf9bbb30982
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Additions to make the convenience classes work for the
Qt for Android port.
Change-Id: I25ba0faf93c7e09ab04a3fa0784e04631e5ab036
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Currently, there is no concept of not having a cursor set on
a Window. Qt::ArrowCursor is always set instead. This causes
bugs when native child widgets are involved, for example setting
a cursor on the native widget's parent no longer works since
the child's Qt::ArrowCursor applies.
Introduce QWindowPrivate::hasCursor tracking whether a cursor
has been explicitly set and clear in QWindow::unsetCursor().
Handle 0 in QPlatformCursor::changeCursor() to mean
"unsetCursor()":
- Windows: Introduce default constructor for QWindowsWindowCursor
meaning "0". Search for applicable parent cursor in applyCursor.
- XCB: No big changes required, set XCB_CURSOR_NONE for no cursor.
- Other platforms: Assume Qt::ArrowCursor when cursor = 0 is
passed for now.
Task-number: QTBUG-28879
Change-Id: Id82722592f3cd5fe577a5b64dcc600c85cfea484
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Mostly straightforward, the a11y changes might look a bit drastic, but the
base class QAccessibleTextWidget was already disabled in this case, so we
have to obviously take out its sub-classes as well.
Change-Id: I682ace20d6938688ddb1da23c3463f3c025fab8e
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Tasuku Suzuki <stasuku@gmail.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
The current implementation requests the platform window to set
as many of the flags it can, and return the same flags with the
unsupported flags removed.
The problem with this approach is that the platform window is created
as late as possible, so a call to QWindow::setWindowFlags would in
many (most?) cases never be forwarded to the platform window (instead,
the platform window is responsible to check the current window flags
upon creation). As such, the filtering would never be done.
Looking at the current set of plugins, most of them also seems to
ignore this protocol, returning the flags unfiltered.
This patch suggests removing the return value from
QPlatformWindow::setWindowFlags. This will at least be consistent, so
that setting/getting flags would produce the same result independent of
delayed window creation. If needed, we can later add new API to
QPlatformIntegration or QPlatformWindow for querying supported window
flags.
Change-Id: I9c759b5f9fab5ebed764a982f77fe19881118875
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Change copyrights and license headers from Nokia to Digia
Change-Id: If1cc974286d29fd01ec6c19dd4719a67f4c3f00e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
The QPlatformBackingStore::endPaint function does not take any
parameters.
Change-Id: If15d7824d65a52c38332c6676c12a954469a58ab
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Fix coding style, constness, m-prefix for member variables.
Change-Id: I9d75b410b398e5c3084b086b41884f2a0ddd6e5e
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
QFbWindow::setVisible doesn't call into the base class implementation
and thus suppresses the delivery of the expose event. It turns out we
don't need to track the visiblity at all since the base QPA code tracks
this already.
After this change, windows are now render on the framebuffer.
Change-Id: Ifcfc730456883eb423d79479bd0b04330b8c2d72
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
This moves the addWindow call to the platformsupport code.
Change-Id: Icf9175ae86ad880248036362e9c5f40124744272
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Move the screen code from integration. The design philosophy
is that QFbScreen takes care of generic framebuffer composition.
QLinuxFbScreen is just an linux framebuffer adaptation layer.
Change-Id: I8456c13826f06621037dd77fe0d0bd8873806c96
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
A QWindow can only be in one QScreen, so it makes no sense to track
a list of screens.
Change-Id: I341a67afa90c7fbbbd95786b43d0a322fc1ddba2
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
The backing store already knows about the window.
Also, rename surface to backing store in QFbWindow.
Change-Id: I3701b3cdbdc228200da9b93b13037655dc436f53
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Rename fb_base to fbconvenience in-line with the other
convenience classes.
The code only compiles, it is not known to work.
Change-Id: If51700ddf0a11ace5129af6f00f34fd895a6a4df
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>