This allows manually transferring focus from one window to another, if the
application has focus.
Change-Id: If73ddca6ffbb735eaf4ee9fd322d978f9366fb4c
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* Avoided crash, if root window is reparented
* Corrected video window name
* Made parent window member private again
Change-Id: Icef9fad5495413e0de87c4366f25dad6c4fd5775
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
When dragging by touch driven by synthesized mouse events, the cursor
is suppressed. Use a popup window to show the drag cursor instead.
[ChangeLog][QDrag][Windows] Fixed Drag and Drop driven by touch-synthesized mouse events.
Change-Id: Id8c1aab79a091c89986ee7ee62ded44a3267fd3f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This patch adds a new function which does the error handling for libscreen calls.
The patch introduces following changes:
- Libscreen errors will not crash (qFatal)the application any more but rather post a
warning message.
-With the "flush-screen-context" option the screen_context is always
flushed when a screen function is called. This enables better correlation between the
time an error happens and the time it is logged.
Change-Id: Ie2456e5b746dcf917d786f3b832847d2ebbe5f1e
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Roger Maclean <rmaclean@qnx.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Detect the 'suppressed' state new in Windows 8.
Change-Id: I0faa994aa7b91869cedba36b777b1784818efcce
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Introduce a struct CursorEntry for the cursor map which also contains
pixmap and hotspot required for follow-up changes. Streamline code
in createCursors(). Fix cacheKey checks in GiveFeedback() to trigger
for non-zero keys only.
Change-Id: Iafcbfd9ec9e8c6ae8bbaced21667887b10b47f23
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Add a per-window swap chain to a QPlatformWindow subclass instead of tying
it to the backing store. This is needed to support native widgets (as
opposed to alien widgets).
Change the backing store to draw to an intermediate pixmap and flush to
the requested window by using the per-window swap chain. This also opens
the door for faster window presentation later on by using the swap chain
more intelligently.
Also add a changelog entry for the direct2d plugin, which was omitted
earlier.
[ChangeLog][QtGui][Windows]
Introduce experimental direct2d platform plugin for Windows. This plugin
shares most code with the current windows plugin, but substitutes a
direct2d-based paint engine for window backing stores and pixmaps.
Change-Id: I5f54e7e4c1fb15b1639bd26b712fb40ac141e4ac
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@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>
On boards that provide their own custom ways of querying the screen size
the resolution of widget apps became somewhat incorrect after the recent
eglfs/eglconvenience refactor. This is because the physical size query
helper was not able to access the screenSize() provided by the hooks,
it was instead falling back to the default fb query which in turn returned
the default screen size (e.g. 800x600).
Change-Id: I46d487b61341d69dd9cb76d93198b1f44b64f195
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
The MSG structure is supposed to contain screen coordinates of the mouse
position. Use GET_X/Y_LPARAM for mouse events and transform for
client coordinates. Use GetCursorPos() for other events.
Task-number: QTBUG-36337
Change-Id: I3ad4de20e1a460ee58f22645a4339a2444d129ed
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
It was only used to access the QWindow which can be retrieved
using QPlatformBackingStore::window(), potentially causing a crash
when QWindowsBackingStore::resize() was called before the window
is shown.
Change-Id: I7c1bfce0f2c371d5d8847fd15fd1dc760b769a8f
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
When calling end the refcount should be greater than zero, as calls to
begin/end should match.
Change-Id: I49adbf6f9f1c21cb60985ba4e02574e6c0841b74
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
also add a boolean flag indicating if xsettings is initialized and can
be used
Change-Id: I9dae83b8fef224171744d2b940767cbf54ce4f55
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Opacity was not set initially and not committed to libscreen when
changed.
Change-Id: Icf24be833de28bd72275cf93a3ab2fb344726023
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Introduce logging categories and change most debug statements
to qCDebug().
Retrieve the filter rules from the environment variable
QT_QPA_VERBOSE (should be removed once the logging framework
offers a more convenient way of configuring).
Replace the old per-category variables controlling verboseness
of the output by a single variable which can be set on the command
line.
Change-Id: Iae55ecdb0e150efd165b7d3e90b371f72853f194
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Some debug info and a #warning had somehow made it through :)
Change-Id: I420a7637bfd5d1a79a342eacefcc35430994feff
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
The event must be freed in all cases, also when a motion or configure
notify is skipped.
Change-Id: Ie55e62d0c3ab25bd9b20cc85098ea337d0b1ac5d
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Needed to run the XKB extension where we used to expect X11 to be
installed in /usr. In FreeBSD, for instance, X11 is installed in
/usr/local like all the other not out-of-the-box packages.
Same thing goes for the compose platform input context plugin.
Change-Id: Ib7ace3117eaacc6e150394450d1330cba654ba8a
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Local references are valid until the original native method
returns (if it's a Java thread), or until the current thread
is detached from the VM. This means that we have to manually
manage local references and delete them when they are no longer
in use, otherwise we will leak memory and flood JNI's local
reference array.
[ChangeLog][Android] Fixed crash on populating large combo boxes
or menus.
Task-number: QTBUG-36074
Change-Id: I7095bd1472f759be98183737a8d3912fa9763f30
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
dlopen, etc. are defined in libc on FreeBSD.
Change-Id: Iad47113ec77029f8e300e4f08f454d70b3070b5a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
There is no reason why a parentless window from a Qt perspective needs
to be a screen application window. There are some cases, such as the
BB10 dialog service whose windows are always parented by a window in
another process.
Ideally one would have a means to indicate a child window was wanted that
had no other side effect (i.e. the rest of Qt would ignore). The use of
Qt::Dialog is not ideal as some code does pay attention to this type given
the number of bits available for window type, it is not reasonable to add a
new one. The use of Qt::Dialog seems safe since it is hard to conceive of
a window of type Qt::Dialog wanting to be a top level window. If in future
it is required to have a parentless, child window that is not of type
Qt::Dialog one can simply define some additional way of signalling this.
Change-Id: Ie7035980ac2efd5bc722a8371c834f21ea7755f4
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
QQnxScreen destructor was leaving the cover window to a reference
to it leading to a crash when the cover window itself was destroyed.
Change-Id: Id82097d54fea79b0b9ec1cef439bd704da9ca453
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Window group related code worked previously only for the 'root'
window and other windows that had no parents (which then joined
the window group of the root).
Introduced a new function joinGroup that makes the group related
calls, this can both join and leave groups.
Default group joining is performed in setVisible now rather than
setScreen. The advantage of setVisible is that one can rely on it
getting called at some point but it is also possible to create and
interact with a QQnxWindow before it is called. This allows
the default group handling to be overridden via the native
interface. If the group is set (or explicitly not set) then the
default handling is not done.
joinGroup is also called from setParent so that if the parent window
is changed the window joins the parent group.
Change-Id: I03e3801ecb4e4cf901c02e45f00472a87692c2ec
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
The cursor implementation is generic GL(ES) code that should be shared
by all the present and future egl-based embedded platform
plugins. Follow the pattern of QEGLPlatformContext and move this class
into eglconvenience as QEGLPlatformCursor.
Similarly, the common bits from the context implementation context are
moved back to EGLPlatformContext.
eglconvenience has now base classes for integration, screen, window,
etc. too. By using these, eglfs becomes much smaller and cleaner. This
also paves the way for creating new, separate EGL-based platform
plugins for Android, embedded Linux, etc.
Also added some documentation to each of the base classes.
devicediscovery is now fixed to be usable on any platform. The
implementation in this case is naturally a dummy one. This finally
allows using it from anywhere without myriads of ugly ifdefs.
Change-Id: I02946e360c04e02de7fe234a23a08320eff4ccf5
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
This commit adds a dependency checking for a recently
introduced define. On NDKs 10.2.1 and later it compiles
with support for VIRTUALKEYBOARD_LAYOUT_ALPHANUMERIC.
NDKs 10.2.0 and earlier do not know this define
and therefore it will be ignored.
This is necessary because there is no newer NDK
publicly available than 10.2.0.
Assuming pure QNX SDKs are missing the define completely,
we are only including it on recent BB NDKs.
Change-Id: I6f814e5c2d77c50edf8534f3567b157f71147555
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
Commit 773dd01 introduced a general mingw platform scope, which
is cleaner and more flexible than matching the spec name.
Change-Id: Ie3a9cb791a83f7c8a51bc4e23069190c452ab521
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Child windows have to keep their relative position when the parent is
moved.
Change-Id: I7d24d67578c9aaa332136d18ad9b478b120e4696
Reviewed-by: Roger Maclean <rmaclean@qnx.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Support for multiple native surfaces is needed by applications that need
to mix raster windows with GL windows.
Rework the raster and opengl implementation, get rid of eglfs and
fbconvenience dependencies.
Create a single android platform plugin.
[ChangeLog][Android] Rework the raster and opengl implementation.
[ChangeLog][Android] Create a single android platform plugin.
Task-number: QTBUG-34650
Change-Id: I9b1ab51554823329dda8cfbf8fef27c38f917c7b
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Corrected EGL error code query and cover windows creation in the
"no-rootwindow" case.
Change-Id: I86aaa4b59283f7153f8ab63c5bf231bc9da7538c
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
The code assumed that CGImageForProposedRect would return a sensible
sized image, but that can return basically any size (depending on the
NSImage's image representations). In the case of the bug report this is
a 1024x1024 pixmap when requesting a pixmap of size 64x64 and larger.
Make sure that we return a pixmap of the exact requested size.
For this, themeHint must also return sizes in device coordinates.
Task-number: QTBUG-35009
Change-Id: Iaae11023bab6d4122815ca4010aab6967dfb18a0
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Right now /dev/fb0 is hardcoded. This is not ideal. Therefore
QT_QPA_EGLFS_FB is introduced. This environment variable can be set to
a different framebuffer device. Once it is set, eglfs will use the
specific device. This is similar to linuxfb's fb=... plugin parameter.
The actual behavior depends on the board-specific implementations.
For now only iMX6 has real support. It extracts the index from the
device name as bind the EGL display to the corresponding framebuffer
using the vendor-specific fbGetDisplayByIndex(). Other hooks can
follow suit later on.
With this patch eglfs is at least on par with linuxfb, meaning that,
if the board supports it, different apps can run on different screens.
Task-number: QTBUG-36113
Change-Id: Ia3c88bd06e108bc668433e3c5c3fce34a5a0e73d
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Preparing the introduction of the categorized logging system for the
plugin.
Change-Id: I2b180d88cf508559f495d39d4e1d36b8f3da7051
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
On windows (tested on win7) physicalSizeMM is changed after changing
screen resolution. We need to save new size.
Change-Id: I1b38d9ba2af9679812a973737a724c9a9c5395da
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
After showing the lock screen, spurious warnings about BitBlt()
failing occur with last error set to ERROR_SUCCESS or
ERROR_INVALID_HANDLE.
Task-number: QTBUG-35926
Task-number: QTBUG-29716
Change-Id: I3e899cdf1ae60e76d13b81caec43716ad7c9725d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
A parent is required, otherwise the application gets deactivated when
the dialog closes. The same is done in Qt 4.
Task-number: QTBUG-36039
Change-Id: I56688b3259f1d207edd1bec499afd1365ae511dc
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
the diff -w for this commit is empty.
Started-by: Thiago Macieira <thiago.macieira@intel.com>
Change-Id: I77bb84e71c63ce75e0709e5b94bee18e3ce6ab9e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
updateHierarchy is already called in the lower/raise member function in
the QQnxWindow.
Change-Id: If3765fa7a7e69273672d47003534b04e3615916c
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Add setContentBorderThickness() to the Cocoa platform
plugin. This functions requests that the platform
plugin draws a gradient in the unified title and toolbar
area and/or the status bar area.
The background gradient is drawn before and under
the Qt backing store content. It is expected that
parts of the backing store will be filled with transparent
pixels to allow the gradient to be visible. To facilitate
this the backing store image is created with an alpha
channel.
Task-number: QTBUG-34411
Change-Id: Iadc5e64ee9b9b42e92fb84a615817fdffd7a8802
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Since bearer has no idea about user interaction, we just do this,
and make the roaming/always ask scenario unavailable.
Change-Id: Id509a4d3346cdbb9367ddb465364c3500fc62fdf
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Make Discovered depend on autoconnectable service
This stops seemingly automatic use of a non autconnectable service,
and allows the connection dialog to popup.
Change-Id: Idea9a22eb4bbfb4fefeca7867526a2ddc3954376
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
when changes in the networks happen.
Task-number: QTBUG-34021
Change-Id: I2bd187e7d04d6876294f18d917c9a384afe5db35
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>