Commit Graph

2670 Commits (f441d8e52360fe5c03887fa0bbce8bfda2c8ff2d)

Author SHA1 Message Date
Tor Arne Vestbø 2844be2434 iOS: Delete members in platform integration
Change-Id: Ibb1bf2bf4a1ced897172facbc9027402adfe6f08
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-10-03 18:17:53 +02:00
Tor Arne Vestbø 2b01ffe552 iOS: Use PROT_READ, not PROT_NONE, for custom stack memory guard
This allows V4 and other garbage collectors to pass through our
custom stack during the mark-phase without triggering access
violations.

Change-Id: Icafcf4df3537c628c641fe694bb9fe2016519a83
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-10-03 15:35:43 +02:00
Samuel Gaist 56cd9cc2b0 Update QSessionManager and related classes documentation
Update the Qt 4 documentation of QSessionManager to reflect the changes
in Qt 5

Task-number: QTBUG-33528

Change-Id: I74286134155efc2781f9f6fc505fb6cf736d814e
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-10-02 11:44:52 +02:00
Friedemann Kleint 5ad1e2578b Windows/Linux: Cache cursors by mask/pixmap keys and shape.
Task-number: QTBUG-33383

Change-Id: I65a5a0870f50f42c26a4d297331224b3597a36e0
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-10-02 10:43:55 +02:00
Jan Arve Saether 649e0b6002 AccessibleRelation::get_relationType didn't handle all enum values.
Add some more tests for relations
Change-Id: I934cd6aed36ca5ca88786325ed364fbc3abfc6f7
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-10-02 00:03:24 +02:00
Tor Arne Vestbø 3bcc44268e xcb: Initialize accessibility lazily, since it requires an event-dispatcher
QSpiAccessibleBridge uses a D-BUS connection, which in turn uses socket
notifiers and timers internally. Neither of these can be used before
a event-dispatcher is in place, so we need to defer creation of the
accessibility interface until later. We assume that clients will
only call QXcbIntegration::accessibility() when an event-dispatcher
is set up, but to be extra safe we do an assert, so that failures of
this pre-condition will trigger at the place they are caused -- not
as failures to register socket notifiers and timers in the D-BUS code.

Change-Id: I4f9d8362a3f285c3da9045d1ff6b8e7b04570488
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-10-01 17:48:21 +02:00
Laszlo Agocs 4e20df5fc5 eglfs: Make QML root objects sized to view working again
The size is queried from the window before create() is
called. Therefore Quick apps were not covering the entire screen as
they should. This is now fixed by properly returning the fullscreen
geometry from QEglFSWindow::geometry() even when create() has not yet
been called.

Pre-5.2 this was working because the QEglFSWindow constructor changed
the window state. This is not feasible anymore with the recent
compositing changes since the second, third, etc. windows are not
fullscreen.

Task-number: QTBUG-33620
Change-Id: If66d35f6f4768485d4e68c5ad825fe7a9d948a64
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-10-01 12:58:17 +02:00
Tor Arne Vestbø 999e5162ec QPA: Fix semantics of GUI event dispatcher ownership in platform plugins
The QPlatformIntegration::guiThreadEventDispatcher() function acted as an
accessor to event dispatchers created in the constructor of each platform
plugin, but the logic and semantics of event-dispatcher handling in Qt
itself (QCoreApplication/QGuiApplication) still assumed both ownership
and control over the event dispatcher, such as when to create one, which
one to create, and when to delete it. This conflicted with the explicit
calls in the platform plugins to QGuiApplication::setEventDispatcher(),
as well as left a possibility that the event-dispatcher created by
the platform plugin would never be deleted, as none of the platform
plugins actually took full ownership of the dispatcher and deleted it
in its destructor.

The integration function has now been renamed back to its old name,
createEventDispatcher(), and acts as a factory function, leaving
the logic and lifetime of event dispatcher to QtCoreApplication.

The only platform left with creating the event-dispatcher in the
constructor is QNX, where other parts of the platform relies on
having an event-dispatcher before their initialization. We then
need to manually take care of the ownership transfer, so that the
event-dispatcher is still destroyed at some point.

Change-Id: I113db97d2545ebda39ebdefa865e488d2ce9368b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-30 16:32:29 +02:00
Tor Arne Vestbø 1256ed05b2 xcb: Don't connect() to event-dispatcher until we are sure we have one
QCoreApplication sets up the event dispatcher in the constructor, through
createEventDispatcher(), which is overridden in QGuiApplication to take
the platform-integration into account. The problem is that the platform
integration is created before the event dispatcher, so when we create the
QXcbConnection we are not guaranteed to have an event dispatcher yet.

This is not an issue when using xcb_poll_for_queued_event() in a thread,
but for the fallback case we connect to the event-dispatcher's awake()
and aboutToBlock() signals. To ensure that we do this only when we have
an event dispatcher we post a queued method invocation, that will be
processed as one of the first events once there is an event-dispatcher.

Change-Id: I623011af447b585884b84c7559737f134aab83e8
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-09-30 13:45:16 +02:00
Morten Johan Sørvig 29585ec3d3 Fix regression in trackpad scroll event handling.
bab29dd76 changed scroll event handling to update
the keyboard modifier state during scroll event streams
and brought back the bug where Qt Creator would suddenly
change the font size if you pressed the command key
while scrolling.

Use momemtumPhase to detect scroll event streams.
momemtumPahse will be NSEventPhaseNone as long as there
are fingers on the trackpad. After liftoff it will
have a different value, and at this point we freeze
the keyboard modifier state until the scroll event
stream has ended.

This approach does not interfere with normal mouse
scroll wheels since momentumPhase is PahseNone for all
such scroll events.

Change-Id: I668ade8e794a97491487c9465366a316a7d6a9c8
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-09-27 16:08:31 +02:00
Morten Johan Sørvig 6afb057962 Clear m_activePopupWindow on popup close.
QCocoaWindow keeps track of popup windows in order
to close them when appropriate, for example on mouse
clicks outside the popup. In this case the mouse click
will be used to close the popup, and will not be
send to the QCocoaWindow.

Clear m_activePopupWindow when the popup is closed
to fix a bug where the first mouse click after
closing a popup would have no effect.

Change-Id: I7a3e850e4fbf4686540d5d89dac6d7b613ed10a4
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-09-27 16:03:36 +02:00
Friedemann Kleint 4b755ffa6d QWindowsWindow: Output warnings with classname/objectname.
Change-Id: I55a165669dbcadf2bd06b2315b1db43b092a1758
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2013-09-27 12:44:18 +02:00
Friedemann Kleint 61c49611fc Windows: Use PostMessage for clipboard notifications for debugged apps.
Task-number: QTBUG-33492

Change-Id: I68af5f8ad767c55c95f758259cbb5d8a8080e70e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-27 09:32:28 +02:00
Gabriel de Dietrich 06e7d61b68 Cocoa: Allow widgets to receive events event when no app is running
This is necessary for QMacNativeWidget, where there exists a QApplication, but
is never executed. This directly translates in calls to the event dispatcher's
processEvents() function, whose calls we keep track. If no calls have been made,
we always allow timer and posted events to be processed.

Change-Id: Ia0062ee8c59a2572082f520a2eb85ed44a9856a7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-09-26 22:25:10 +02:00
Gabriel de Dietrich 79fc0ff67a QCocoaBackingStore: Initialize non-opaque images with transparent color
In particular, this is needed when a QWidget has WA_TranslucentBackground set
and nobody is painting anything behind it (except maybe some native view).

Change-Id: Ib1f0714f85fa7eeced527617ecd09bb2ed6ddfc9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-09-26 22:25:10 +02:00
Shawn Rutledge f37990712b [QNSView viewWillMoveToWindow:] remove observer from previous window
Even if there is not a new window, the notifications from the old one
are not needed.

Change-Id: I9c1858d25e49379ca4737e23beec06623e91b69c
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-09-26 22:25:10 +02:00
Liang Qi 5b70efb125 Mac: QWizard default background pixmap works again
Task-number: QTBUG-26722
Change-Id: I579111b5d34f8e3cdc6bb016d9c0e42ec3ffb8c9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Stephen Chu <stephen@ju-ju.com>
2013-09-26 20:42:33 +02:00
Vitalii Shastun 5889b239b1 Fix QT_NO_PRINTER build on Mac
On Mac the QT_NO_PRINTER build was not implemented.

Task-number: QTBUG-33565
Change-Id: I118472f9400aa0a0d0e192ae39a11ea38a66f340
Reviewed-by: John Layt <jlayt@kde.org>
2013-09-26 20:42:33 +02:00
Laszlo Agocs 279db88c39 Correct the detection of Windows-generated mouse events
Check only bit 8 to decide if the mouse event is generated from
a touch or pen event.

Task-number: QTBUG-33460

Change-Id: I83b23267b5de6df5e0e6b7113ecf377dd7e86c84
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-09-26 18:45:16 +02:00
Gabriel de Dietrich 9a683bfb84 QCocoaApplicationDelegate: Play nice with the user's application delegate
We tended to ignore the original application delegate a bit too often.

Change-Id: I0844c8658d128e4fbb9a6fc5000025f55e5293c2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-09-25 18:23:01 +02:00
Yoann Lopes 283ba0ef01 Android: remove environment variable warnings at app startup.
Change-Id: I8542809fd16465a29b4fb7e8276b63d71e1b9c0e
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-09-25 13:25:33 +02:00
Gabriel de Dietrich 6cdd9928ab Cocoa: Use internal style mask to disable resizing popup parents
Using QCocoaWindow::windowStyleMask() resets some private flags
Cocoa sets when showing sheets.

Task-number: QTBUG-33126
Change-Id: I34f0713f98e81e7010b0b7620ee24ea30f04dcff
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-09-24 17:48:13 +02:00
Richard Moe Gustavsen d25eead30f iOS: bugfix touch events to also work in inverted portrait/landscape
This patch simplifies the implementation of touch events to use a
views superview for calculating global touch coordinates rather than
the screen. This removes the need for taking orientation
into account, and will also play better along in a mixed environment.
This will also fix touch events reported for inverted orientations.

Change-Id: I0c8fd8745a1f65f0f4a97447a5676a38165ed032
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-09-24 14:33:00 +02:00
Giuseppe D'Angelo 458837ba09 Remove some qBinaryFind usages from the Cocoa helpers
This is done per the mailing list discussion at
http://www.mail-archive.com/development@qt-project.org/msg01603.html

Change-Id: I374ee2c88ee18d20fb2b295c936adaca1d696199
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-09-24 12:56:48 +02:00
Jan Arve Saether bb9cc387f0 Fix a c&p bug in the IA2 bridge when returning the row description
Unfortunately we returned the column description when the AT client
asked for the row description....

Change-Id: I46bc0edb4fd0f7cc6d98d7d6e0d8ca6f77553a26
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-09-23 16:08:34 +02:00
Richard Moe Gustavsen 2d00d3951d qios: always auto rotate as specified in Info.plist
Before this patch, we would only rotate if no autoRotationMask was set.
This was a temporary way to lock orientation from code until a better
API for this was in place.
But this causes problems for applications that both wants to auto rotate
but at the same time sets a mask to get QScreen::orientation
updates. So remove this heuristic before application code starts to
depend on it.

Change-Id: Idb54abd471b33afd866322738f4860c57bc9dcf7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-09-23 09:20:03 +02:00
Sergio Ahumada a5d34b34fb Merge branch 'stable' into dev
Change-Id: I37d85631ab1165ab91457d8880c4da907a9df73b
2013-09-21 17:33:15 +02:00
Samuel Gaist ac0bacc8af Port of Qt 4's Windows session management
This patch aims to implement the session management for Windows.
Based on the Qt 4 QApplication windows specific code

Task-number: QTBUG-28228
Task-number: QTBUG-33032
Change-Id: I7059298ad9661aebd51e77a03f55a7a04f461479
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-09-21 07:45:44 +02:00
Tor Arne Vestbø 9c6a4c1a37 iOS: Compare similar types when setting up QPlatformScreen
[NSArray count] returns an NSUInteger (unsigned long).

Change-Id: I3b1c6720e9503ed181f01a7e737de07a277f7bde
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-09-21 01:25:19 +02:00
Laszlo Agocs 88fb127331 eglfs: Unify the native resource getters
Similarly to how it's done in xcb. And add support for eglwindow since
the WId will soon once again cease to be an EGLNativeWindowType.

Change-Id: I0e3b86a21179439821550c9423f0e747ccae5897
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-09-21 01:25:19 +02:00
Bernd Weimer 6a12da7fb3 Added support for cover windows on BlackBerry platform
On the BlackBerry platform when an application is minimized an
alternate cover window is shown. This patch allows Qt to render
into those windows.
A new window type "Qt::CoverWindow" has been introduced.

Change-Id: If5e321f5cb00f6d3ed7a5dc0af425655d7a9253a
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-09-20 23:45:06 +02:00
Teo Mrnjavac 132190c3a2 Build X11 session management only if dependencies are found
This fixes the build breakage caused by Change I50b33d05 when attempting
to compile on Linux with session management enabled but libSM and/or
libICE not present.

Change-Id: I127f32e7041deb2ff968eae8458fee7d4e95d7a5
Reviewed-by: Samuel Gaist <samuel.gaist@edeltech.ch>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: aavit <eirik.aavitsland@digia.com>
2013-09-20 23:45:06 +02:00
Christian Strømme 1f47ceec47 Android: Use the new QJNI api in our QLocale implementation.
This change makes use of the private QJNI api that now exists in QtCore.

Change-Id: Id03664942d6c6cbfec028a3b52729057153a8466
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-09-20 23:45:06 +02:00
Jan Arve Saether 03520d7fde Add missing implementation in QAccessibleTabBar::indexOfChild
This avoids the assertion in iaccessible2.cpp(510)

Change-Id: I1a4c007ffcbcda70f0e37ef3cf55a303683b58c1
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-09-20 21:54:44 +02:00
Andrew Knight d959c37eaa WinRT: Basic global support
Various global changes, primarily preprocessor flow, to support the
WinRT platform.

Change-Id: I3fa9cf91d5fb24019362e88fcf205e31b4f810b5
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2013-09-20 13:53:59 +02:00
Laszlo Agocs 7e2b238c50 Add a WindowManagement capability to QPlatformIntegration
To be set to false by eglfs and similar platforms where no real window
management is provided.

When this capability is not set, some of the changes done for
QTBUG-26903 will be disabled, allowing dialogs to show up at their
QDialog-chosen place on platforms where no WM is present and so
windows are never repositioned by the system.

Change-Id: If1dac3cd11f2a856913a51277431fe3ec644b719
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-09-20 12:06:03 +02:00
Laszlo Agocs f89f099c55 eglfs: Support multiple raster windows
Allow widget apps with popups and multiple top-level widgets to
function on the eglfs platform. GL and Quick2 apps are not affected.

Instead of trying to create a native window and EGL surface for each
window, do it only for the window that is created first. This first
window is forced to fullscreen as usual. Later windows however are
treated differently: These will not have a native window, surface or
context, and keep their normal size. All the textures belonging to the
raster windows are then rendered in one step, using a stacking order
maintained based on visibility changes and window activation.

Note that this will only help apps that create a main window first and
have everything else inside that window or on top of it as menus,
dialogs, popups, etc.

Change-Id: Ia435458ba81bf3c35cc8f61bcb2d2a50cf17f0e3
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-09-20 12:05:08 +02:00
Gunnar Sletta 85708e7377 Revert "Fix Invalid Drawable error when using createWindowContainer on Mac."
This reverts commit 04325bdd26.

This change breaks qtdeclarative on Mac.

Change-Id: I77b121cc6b283cf7498e93e4b914d2fb68808ab6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-20 12:04:06 +02:00
Paul Olav Tvete 7805d39ca3 Fix android after Eglfs binary compatibility break
Change-Id: I95d98b475188b43f1e0946c7ad6fd2388839d619
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2013-09-20 12:03:43 +02:00
Paul Olav Tvete 74d2249e37 Android: handle inverted orientations
Add logic to detect InvertedPortrait and InvertedLandscape orientations
and implement QPlatformScreen::nativeOrientation() for Android.

Task-number: QTBUG-32144

Change-Id: I294506714ea0faa9eacd7a15e1cfc45342659964
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-09-20 12:02:58 +02:00
Frederik Gladhorn b449791c35 Make Accessibility public
There is no point in having QAccessible2, so merge it with the normal
QAccessible. The header will be removed in a subsequent commit as it is
still needed by declarative at this point in time.

Change-Id: I1fc47d484d482f25387eba827bc5a373536b7a8b
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-09-19 14:55:19 +02:00
Gatis Paeglis 663c5186e8 Fix timing issue in incremental data retrieval mechanism
Make sure that we are not reading wrong PropertyNotify events.

From icccm:

Requestors may receive a property of type INCR in response to any
target that results in selection data. This indicates that the owner
will send the actual data incrementally.

The selection requestor:
- Waits for the SelectionNotify event.
- Loops:
  + Retrieving data using GetProperty with the delete argument True.
  + Waiting for a PropertyNotify with the state argument NewValue.
- Waits until the property named by the PropertyNotify event is zero-length.
- Deletes the zero-length property.

The issue with the current approach was that after receiving INCR we
simply fetched the first PropertyNotify event from the queue, where
timestamp indicates that it was generated before INCR, which is not
what need. We need PropertyNotify events with a timestamp older than
the one on INCR.

Task-number: QTBUG-32045
Change-Id: I3b9a006f7d346f67c51e1a296d67a9dc89efadb1
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-19 12:57:06 +02:00
Gatis Paeglis bc6f5b3ff6 Implement INCR property mechanism for large data transfers [XCB]
Implement INCR property mechanism according to the icccm specification.

Change-Id: Ic8f85b71cab825d70ee1b61f29acd09fa4c3e642
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-19 12:56:56 +02:00
Fabian Bumberger aed9a8d49b Split QQnxWindow into QQnxEglWindow and QQnxRasterWindow
Change-Id: I2fb4096ccca54fa6631aa16c9b8d1308b0a6b918
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
2013-09-18 11:28:26 +02:00
Jan Arve Saether e39d629ebe Include hidden headers in trees and tables consistently
There was a disagreement between the a11y plugin and QTreeView
whether the horizontal header should have been exposed or not.
When the header was hidden, this resulted in that we sent an event
with a child id that was wrong, or in worst case higher than
QAI::childrenCount(). This was the reason we got the warning
output as described in the task.

With this commit, we consistently *expose* hidden headers both for
QTreeView and QTableView, but ensure that their state().invisible is
set to true instead.
This makes it consistent with how hidden cells are exposed.

This also fixes a bug in QTableViewPrivate::accessibleTable2Index
where we always added 1 to the index, which was spotted while
writing the test.

Task-number:  QTBUG-33247

Change-Id: Ifd1f83d56296dd071424fdb81fce7628bc24fe0a
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-09-18 11:28:22 +02:00
Morten Johan Sørvig 8f46cb3ade Keep Cocoa screen list in sync on screen connect.
The backtrace in QTBUG-33012 indicates that the
screen list is getting out of sync on plugging/unplugging
an external monitor. This happens on 10.9 only.

Check if we are about to out of bounds access the
screen list; call updateScreens() which will add the
new screen.

Task-number: QTBUG-33012
Change-Id: Id1acc3baca9e60e7f2a83188d66cdf9d322a582c
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-09-17 17:10:05 +02:00
Laszlo Agocs ff7b57bbb9 Use egl.prf in xcb instead of hardcoding -lEGL
Task-number: QTBUG-33494
Change-Id: I55df1acdf2c95f66a93890b4b30f14a52bee6684
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-09-17 14:57:12 +02:00
Laszlo Agocs ba20945c0f eglfs: Do not leak the QOpenGLShaderProgram instance
Change-Id: Ia0691b99d57986328b9dd81e527ea4f402d7bc5b
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-09-17 14:57:08 +02:00
Laszlo Agocs 2b20ed5af4 eglfs: Sanitize the X11 hooks
Replace all xlib calls with xcb equivalents, leaving only the
absolutely required xlib calls. Handle WM_DELETE_WINDOW so that
closing the window exits the app as expected. Finally, introduce
EGLFS_X11_FULLSCREEN to enable requesting a fullscreen native window.

Change-Id: I8c46ae832d38549ec7d673592f400a4f34bf4314
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-09-17 14:57:03 +02:00
Martin Gräßlin 9c3b79200b Export x11 screen of the QXcbConnection to the native interface
With XCB a client cannot retrieve the information on which X screen it
is running. This information is only available when opening the xcb
connection. As this is done by Qt no application is able to retrieve
this information. By exporting the x11 screen we can provide this
information again in QtX11Extras.

Change-Id: I50f1d3e803dc7e3afac0e5c7f1648ccda4502e7c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-09-17 14:35:59 +02:00
Kai Koehne bc9c03a550 Remove mentioning of 5.0 Alpha from QPA Readme
While at it, I hope that qplatformtheme API's are stable
by now :)

Change-Id: I83bf3118c91608710bb19380458e8f55cb3d427b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-17 09:31:19 +02:00
Thiago Macieira a33d9351a8 Remove useless code setting but not using variables
Clang 3.3 found a variable assigned to itself, probably to cause
GCC to shut up about a variable set-but-unused. So simply stop
assigning the value at all to this variable.

qxcbxsettings.cpp:155:16: error: explicitly assigning a variable of type 'uint' (aka 'unsigned int') to itself [-Werror,-Wself-assign]

Change-Id: I74ae8f724e87c1b3f6b9d358e13d6a440ff4a3e1
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-09-17 02:57:08 +02:00
Tor Arne Vestbø 4bae7158d3 Don't send posted events from QWindowSystemInterface::sendWindowSystemEvents
The responsibility of sendWindowSystemEvents() is to process events from
the window system. Historially that logic was part of the QPA/QWS event
dispatcher, which naturally also sent posted events. Through refactoring,
the code at some point ended up in in the QWindowSystemInterface class,
still with the posting of events in place.

This resulted in QPA event dispatchers adopting a pattern of just calling
sendWindowSystemEvents(), as that would cover both posted and window system
events. Other event dispatchers would call sendWindowSystemEvents(), and
then use a base-class implementation from QtCore for processing events,
resulting in two calls to QCoreApplication::sendPostedEvents() per
iteration of processEvents(). This breaks the contract that processEvents
will only process posted events that has been queued up until then.

We fix this entanglement by removing the sendPostedEvents() call from
QWindowSystemInterface::sendWindowSystemEvents() and move it to the
respective event dispatchers. For some EDs it means an explicit call
to sendPostedEvents, while others were already doing sendPostedEvents
though a separate source (GLib), or using a base-class (UNIX/BB), and
did not need an extra call.

We still keep the ordering of the original sendWindowSystemEvents()
function of first sending posted events, and then processing any
window system events.

Task-number: QTBUG-33485
Change-Id: I8b069e76cea1f37875e72a034c11d09bf3fe166a
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-09-16 15:22:40 +02:00
Shawn Rutledge 4c19055cb1 remove unnecessary beginPaint and endPaint overrides
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>
2013-09-16 15:21:40 +02:00
Shawn Rutledge 26ddb586ac xcb: QWindow never uses XCB_GRAVITY_CENTER
Center gravity doesn't mean center the window, it only affects the
method of converting between internal window bounds and decorated bounds.
So wanting to have each dialog centered w.r.t. its transient parent
is not a reason for using center gravity.  Instead it caused the
bug that when you resize a QMessageBox by clicking the Show Details
button, it jumps downwards on the screen.

Task-number: QTBUG-32473
Change-Id: I3fabf3caa1e4d10fd4f7508e297f73efe5cc51b6
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-09-16 14:15:06 +02:00
Marc Mutz 37a2b82d00 accessible: fix if (!foo != const) construct
Fixes a Clang warning.

Change-Id: I114cf0f84ef9a4fe4ae814cedca883945d76e86c
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-09-16 14:12:54 +02:00
Konstantin Ritt 0adc96c1c4 Drop leftovers after 02651060b6
Change-Id: I011359a47ed47308a7d25e306fbf45a83a3a5715
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-09-14 08:06:46 +02:00
Chris Meyer e19e1aae69 Revert recent attempt to fix Invalid Drawable error on Mac.
This reverts commit 59fd36bb914cae248d3c5100dd734d6d90a58dca,
which caused other drawing problems.

Change-Id: I3bb75fd3ca1cd21ffbb9ef5474266f4cd615a64a
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-09-13 19:26:12 +02:00
Sergio Ahumada f7837e28b5 Merge branch 'stable' into dev
Conflicts:
	src/concurrent/qtconcurrentmedian.h
	src/corelib/itemmodels/qabstractitemmodel.cpp

Change-Id: Iac46a90bbb2958cef7670031a4b59c3becd8538a
2013-09-13 18:04:17 +02:00
Tor Arne Vestbø 59601e06d9 iOS: Interleave Qt application main() with iOS startup sequence
Our previous event loop integration had two unfortunate flaws:

  1. We would call qt_user_main() from a timer, after returning from
     didFinishLaunchingWithOptions. This had the effect of showing the
     iOS application window long before the Qt application UI had been
     set up, resulting in a 1-2 second flash of black/pink between the
     launch image disappearing and the actual application showing.

  2. We spun a nested event loop, where our implementation of the
     different event loop modes did not perfectly match the Apple
     implementation. This resulted in scrolling being busted in
     some cases such as when showing the virtual keyboard for
     Emoji characters.

These two issues have now been solved by calling the user's main()
from didFinishLaunchingWithOptions. Normally this would not work, as
the user's main would call QApplication::exec() at the end of their
main(), which would block and we would never return back from the
didFinishLaunchingWithOptions callback, resulting in no UI on screen.

We work around this by longjmp'ing out of QApplication::exec(), back
into didFinishLaunchingWithOptions, so that it can return. Again,
this would normally not work, as the call stack where QApplication
and friends would live would get smashed as the application
continued executing. We work around this by allocating a block
of stack space at the start of main(), which we then redirect the
stack pointer to before calling the user's main. This results in
the whole stack of the user's main() and below being preserved, even
if we longjmp out of the call stack (which then restores the
stack pointer).

This approach should work fine together with garbage-collection as
well, since the mark-and-sweep phase will walk the stack from the
stack pointer to the stack base, including sections of the stack
that were part of qt_user_main() and live in the reserved area.
One case where GC will fail though is if it happens as part of the
qt_user_main() call, where the GC will not mark anything in the
'real' callstack below UIApplicationMain(), but this is not
expected to happen.

The size of the reserved stack can be controlled through the
Info.plist key 'QtRunLoopIntegrationStackSize', as well as the
'QtRunLoopIntegrationDisableSeparateStack' key to disable the
separate stack approach completely. This will fall back to the
old approach. The amount of stack space used by the user's
main can be determined by enabling a special debugging mode,
using the 'QtRunLoopIntegrationDebugStackUsage' key.

Change-Id: I2af7a6cfe1a006a80fd220ed83d8a66d4c45b523
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-09-13 14:08:44 +02:00
Teo Mrnjavac 060b862b61 Bring back Qt4 X11 session management functionality.
Added QXcbSessionManager to the Xcb plugin.
QXcbSessionManager inherits from QPlatformSessionManager, it's a port of
QSessionManager as it is in Qt 4.8.
Minor changes also in QPlatformSessionManager and QGuiApplication to
hook it up.

Task-number: QTBUG-28228
Task-number: QTBUG-30011
Task-number: QTBUG-33033
Change-Id: I50b33d05a1e32c5278dea339f693713acc870a70
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2013-09-13 11:47:06 +02:00
Laszlo Agocs e013eba203 eglfs: Set swap interval only when there is a context available
Mesa does not like eglSwapInterval calls without a current context.

Change-Id: I7ec2d4311586cf74da0461bc951a0e5d9399c35b
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-09-13 09:22:18 +02:00
Laszlo Agocs a26f47756b eglfs: Handle desktop and multiple windows gracefully
When trying to create more than one window, stop with a helpful error
message since this is not yet supported. Also, return a fake WId for
desktop windows.

Change-Id: I9859b62b1d4f6b6142982d2e5a90afc1fc3c6a28
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-09-13 09:22:13 +02:00
Laszlo Agocs a02e430db9 eglfs: Avoid glUniform calls with wrong type when drawing the cursor
It is not really fatal but fixing it gets rid of a Mesa warning.

Change-Id: I3045b2691e7457541d6524c3e3ff8a1882ca460b
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-09-13 09:21:39 +02:00
Konstantin Ritt ff0fdc0462 Warn if OpenType support missing for script of interest
Change-Id: I076cfc5244ca3c060fd005cc3fbf30b357604bc7
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-13 02:29:10 +02:00
Konstantin Ritt 02651060b6 Decrease code duplication in QFontDatabase-s
Move scriptRequiresOpenType() body right into QFontEngine::supportsScript(),
thus centralizing use of this performance cheat.

Change-Id: I5f494b086f8f900b631c491f41e9cb800002c0f6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-13 02:29:01 +02:00
MyoungSeok Song 30a4114e60 QNX: new signals for foreign windows creation/closing
Implement the foreignWindowCreated and foreignWindow closed signals, emitted when foreign windows are created and closed, respectively.

Change-Id: I72dd5380e6061f191eb8362fda5dd8fb8e9ed06b
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-09-13 01:48:07 +02:00
MyoungSeok Song fddf76f2ac QNX: add nativeResourceForScreen
Implemented nativeResourceForScreen api to return QObject* which can be used to connect  foreignWindowCreated, foreignWindowClosed signal in QQnxScreen.
Usecase is to connect signal in custom QML component as below
	QObject * obs = interface->nativeResourceForScreen("QObject*", screen);
	connect(obs, SIGNAL(foreignWindowCreated(void*)), d, SLOT(newForeignWindowCreated(void*)));

Change-Id: I512c3b6d188a2e90ef7b8e89c413ca420a29dd9b
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-09-12 19:43:33 +02:00
Shawn Rutledge 3865e473f2 QXcbSystemTrayTracker::trayWindow compiles if Q_XCB_DEBUG is on
Fixes qxcbsystemtraytracker.cpp:125:134:
error: 'connection' was not declared in this scope

Change-Id: If881aa9466ea94d5392da9f177e4b79e044710b7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-09-12 12:25:32 +02:00
Bernd Weimer d8ba940b94 QNX: Prevent rendering when app is minimized
Windows will only be exposed and hence rendered when they are not
minimized. This will save useless computations and hence battery.

Change-Id: I83166cc6c3d89e878106c998a35890dd7788ed8a
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-09-12 10:36:23 +02:00
Friedemann Kleint b7b573ad6d Windows: Fix window opacity for non-translucent windows.
Use the UpdateLayeredWindow() functions only for windows with alpha.

Task-number: QTBUG-33025

Change-Id: I64b0c28ee0997cd3d09dc76babe105ed474c6835
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-12 09:54:10 +02:00
Paul Olav Tvete ffa4de4bec Android: Make font size compatible with Qt for iOS
We recommend using pixel sizes for predictable results. For those who
use point sizes in their UIs, we will now give them results that look
similar to what we do on iOS. The default font is changed to give
the same size as before this change.

Task-number: QTBUG-32096
Change-Id: Ia25506ba721a39d31340f3df8bc14129e507af14
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-09-12 07:09:42 +02:00
Friedemann Kleint cfbc575b61 Windows: Fix/Improve closing of native file dialogs.
IFileDialog::close() only works from callbacks. Try to find
the dialog window and send it a WM_CLOSE in addition.

Change-Id: Id0f89f8781564e19e4763d43a71df55d5299fb35
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-11 23:34:28 +02:00
Tor Arne Vestbø 8a42502682 iOS: Change main-wrapper logic to not require changing the user's main
Instead of using a define to rename the user's main() function during
compilation, we leave the user code alone, and inject our wrapper one
step earlier in the process, at the application entry point 'start'.

This entry point is provided by crt1.o, which is normally linked into
the application automatically. The start() function sets up some state
and then calls main(), but we change the start() function to instead
call our main wrapper.

Instead of shipping our own crt1 binary/sources, we make a copy of
the appropriate crt1.o at build time, and modify its symbol table in
place. This is unproblematic as long as we keep the same length for
the wrapper function name, as the symbol names are just entries in
the global string table of the object file.

The result is that for the regular Qt use-case the user won't see
any changes to their main function, and we have more control over
the startup sequence. For the hybrid use-case, we no longer rely
on the fragile solution of having our back-up 'main' symbol in
a single translation unit, which would break eg with --load_all,
and we don't need to provide a dummy 'qt_user_main' symbol.

OSX 10.8 and iOS 6.0 introduced a new load command called LC_MAIN,
which places the state setup in the shared dyld, and then just
calls main() directly. Once we bump the minimum deployment target
to iOS 6.0 we can start using this loader instead of LC_UNIXTHREAD,
but for now we force the classic loader using the -no_new_main flag.

There's also a bug in the ld64 linker provided by the current Xcode
toolchains that results in the -e linker flag (to set the entry
point) having no effect, but hopefully this bug has been fixed
(or Apple has switched to the LLVM lld linker) by the time we
bump our deployment target.

Change-Id: Ie0ba869c13ddc5277dc95c539aebaeb60e949dc2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-09-11 21:50:55 +02:00
Tor Arne Vestbø fc2b36ca1d iOS: Guard against this and self being deleted when using dispatch_async
When the QIOSApplicationState object owned by the platform integration
was deleted we would deallocate QIOSApplicationStateListener, but would
then get a callback on the main queue later on where we would reference
the now invalid 'this' variable.

By moving the dispatch_async call to QIOSApplicationStateListener and
using 'self' we ensure that the listener is retained for as long as the
block is valid. This opens us up for receiving application state callbacks
after QCoreApplication has been deleted, so we need to guard against
that.

Change-Id: I2ac14d28d72fd79764e12b6657234b54d846cb79
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-09-11 21:50:46 +02:00
Sergio Ahumada bcbec4bc49 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-09-10 23:22:23 +02:00
Chris Meyer 04325bdd26 Fix Invalid Drawable error when using createWindowContainer on Mac.
You are not supposed to call NSOpenGLContext -setView: for a view that
has not yet called drawRect.  Doing this would result in a invalid
drawable error.

Similar to 4.8 commit cd2a51a66f

Change-Id: Ibb2300a8c6fe52f786f813987e93d4a3dc145366
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-09-10 16:14:33 +02:00
Laszlo Agocs cdc26c9316 Fix malformed assignment in QKmsScreen
Change-Id: Ic78160d27b2c768054feefe6ec3fd4aaf8280c83
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-09-10 16:11:15 +02:00
darius f079e9e77f Windows CE : Fix incorrect text rendering on wince with freetype engine
On wince with freetype engine can't render text for non-latin text.
because wince doesn't have truetype font FONTSIGNATURE api. so match
function in qwindowsfontdatabase_ft.cpp was always failed and render
incorrect text.
this patch has 3 changes.
1. extract font unicode signature using GetFontData function
2. append font fallback data from registry
   (see. http://msdn.microsoft.com/en-us/library/ms901076.aspx)
3. wince's default font path is windows. correct fontdir

Task-number: QTBUG-31974
Change-Id: If969df353492141669eeab33119f3506602871b3
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-10 14:38:18 +02:00
BogDan Vatra d6d119ac6e Fix Android Style plugin.
Task-number: QTBUG-29565

Change-Id: Iedb861962e3638bcbdf9d9a72a47bebc63b425b9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-09-10 11:52:16 +02:00
Konstantin Ritt 106843ad1a Make QFontEngine not derive from QObject
Whilst having the objectName set for each engine is
somewhat handy when debugging, deriving from QObject just for that
is a wasting of memory in all other cases.
This also broke the font engine abstraction by allowing qobject_cast()
to access some private data; the only sane way to distinguish
engines is querying their Type value.

Change-Id: Ib1d195692859eb39089f6d8d9016cb8f9dcc0400
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-10 01:56:20 +02:00
Konstantin Ritt daf0997844 Fix build on MinGW
Issue introduced in 87ff0af425 .

Change-Id: Ifa9a7bd5af63b1462b4c2cf5e0715962bbcd74b4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-09-09 16:21:10 +02:00
Friedemann Kleint 560de9725d Windows: Add command line parameter enabling OS-synthesized mouse events from touch.
Applications launched with -platform windows:mousefromtouch will
receive OS-synthesized mouse events.

Task-number: QTBUG-31386
Change-Id: I1c49486589c4a7fa4fb5525f7a5adca09b1cfb89
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-09 14:49:33 +02:00
Friedemann Kleint c03d0a9846 Windows: Use QSharedPointer for the dialog helpers.
The dialog thread can outlive the platform dialog helper if
the helper is destroyed. In that case, IFileDialog::Show()
returns since the parent window is destroyed and then tried
to emit signals on the destroyed helper class instance.
Pass a shared pointer to the native dialog instead of a pointer
to the helper class to the dialog.

Task-number: QTBUG-32494
Task-number: QTBUG-30513

Change-Id: I7c2e769460270a26d886fdefee93ea59c2a17196
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-09 14:49:27 +02:00
Giuseppe D'Angelo 7c270390c4 Remove qCopy from the Windows platform plugin
QtAlgorithms is getting deprecated,
see http://www.mail-archive.com/development@qt-project.org/msg01603.html

Change-Id: I949da7a111d9206b6a0be8114b2c4803c06728b8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-09-09 10:40:37 +02:00
Eskil Abrahamsen Blomfeldt 3f07d12ae2 Android: Fix unused variable/argument warnings
There were a bunch of these in Android specific code.

Change-Id: Icf6cda40302171810c1b559f9d442fba6444a3a5
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-09-09 09:02:58 +02:00
Friedemann Kleint 115da758b9 Replace XCB native interface resource map by a lookup function.
Remove global variable and duplicated lookup in the old code
(map.contains() followed by map.value()).

Change-Id: Id68c34bf38c6706db69dcb8422c3b1ea718aa064
Y# issue or contains a behavior change that is relevant to others,
Reviewed-by: David Faure <david.faure@kdab.com>
2013-09-08 21:16:03 +02:00
Sérgio Martins 149f3efc39 Be pedantic with Window's icon indexes.
Documentation for SHFILEINFO says iIcon is an index, so lets
initialize defaultFolderIIcon with -1 so it doesn't clash
with some icon that might exist at index 0.

Change-Id: Ic16538ee62e5433f3cdcceee19eb5d8d18d55c1e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-09-08 00:16:13 +02:00
Sergio Ahumada 2346ae1675 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I9ee4176f0a0078908d49896508826154c9f71530
2013-09-07 16:18:32 +02:00
Friedemann Kleint 87ff0af425 Windows: Added support for large icons to QFileIconProvider.
Added code using image lists to windows theme.

Initial-patch-by: Max Desyatov <max.desyatov@gmail.com>

Task-number: QTBUG-4970
Change-Id: I6e82f4edec60e456d0b1759bb1771955edb94491
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2013-09-06 12:50:57 +02:00
Giuseppe D'Angelo 6c88be2af2 Remove qFind usages from the XCB plugin
QtAlgorithms is getting deprecated,
see http://www.mail-archive.com/development@qt-project.org/msg01603.html

Change-Id: Ieccef12c617276d0526ce2876fd76e37b4240a43
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-09-06 09:12:36 +02:00
Giuseppe D'Angelo fdbabc4f03 Remove qSort usages from the Cocoa helpers
QtAlgorithms is getting deprecated,
see http://www.mail-archive.com/development@qt-project.org/msg01603.html

Change-Id: I482ce9320c07458a9f76df5823f17d53beec00d8
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-09-06 09:12:33 +02:00
Giuseppe D'Angelo 1b28e7838d Remove qFill from the Windows platform plugin
QtAlgorithms is getting deprecated,
see http://www.mail-archive.com/development@qt-project.org/msg01603.html

Change-Id: I777fc28857cc104fcd2b6c313a2840b697361be9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-09-05 23:20:09 +02:00
Giuseppe D'Angelo c6d3fa1dcf Remove deprecated QtAlgorithms calls from the compose inputcontext
QtAlgorithms is getting deprecated,
see http://www.mail-archive.com/development@qt-project.org/msg01603.html

Change-Id: I75ecfb84befd5dcc44f2ffcbef2cb6f1cc39cfd8
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-05 17:46:27 +02:00
Friedemann Kleint 62533768c8 Change QXcbConnection::atom() to be inline.
Change-Id: I88b5b2527808f7c603c5a041df9c8c9e8031a608
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-09-05 16:47:11 +02:00
Friedemann Kleint 1a844db508 Fix warning about unused variable.
Change-Id: I557785911073a35100902aa631fcef81133615cc
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-09-05 14:43:34 +02:00
Oswald Buddenhagen ac327aa3af the condition for building the x11 offscreen plugin is ... having xlib
Task-number: QTBUG-33240
Change-Id: Idc96239b0bcbe98d1519c239600aebcda42e8818
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-09-05 13:06:18 +02:00
Gunnar Sletta 0cf79e47da Remove undesired pixel padding of glyphs on windows.
The excessive padding has serious performance implications throughout
Qt and need to go. The original reason for having them was to fix
issues with GL text rendering and issues with unspecified OpenType
fonts. There have been several other changes to the glyph cache
since then and neither of the issues can be reproduced today.

Change-Id: I6de67598a079c296daf48be07cc5c2d67768c384
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-09-05 09:48:22 +02:00
Gunnar Sletta 35bc3dc45a Rely solely on alphaMapBoundingBox in QTextureGlyphCache
We're currently adding a lot of transparent pixels to the cache,
wasting both memory and cpu cycles while drawing. AlphaMapBoundingBox
was introduced to return the exact same bounds as the alphaMapForGlyph
function so we should only rely on this instead of adding arbitrary
padding and margins all over the place.

Windows still has an arbitrary +4 in the its drawGDIGlyph() which
means batching will not work on windows, but at least now
other platforms do not need to suffer.

Change-Id: I714903fa195004400c09c3bf6570e46179775f09
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-09-05 09:48:22 +02:00
hjk c0df6cbe86 Compile fix in qxcbwindow
There was a error: narrowing conversion of 'Myns::XEMBED_VERSION'
from 'unsigned int' to 'long int' inside { } [-Werror=narrowing]

Change-Id: I1e155870b0b632bfe5ffa9deac69c4f151f5aa23
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-09-05 09:48:22 +02:00
Martin Gräßlin 47d79be39a Enable XSync extension also for KWin
KWin supports the XSync extension. Since the check got added the XSync
implementation in KWin got reworked (release KDE SC 4.8).

Change-Id: I15c37fe4dd5501ca107b90a07ae8d70295ffaeda
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2013-09-04 20:18:53 +02:00
Gabriel de Dietrich 9554088557 Cocoa: Fix NSMenu popup coordinates
Those should be in window coordinates (or rather, its content view)
not view coordinates.

Task-number: QTBUG-32826
Change-Id: I52dddeccf17b359163ad477ce4299b934633b4fa
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-09-04 17:52:25 +02:00
Gabriel de Dietrich 8fd71914b4 Cocoa: Unregister view from window's notifications only
Otherwise the view will miss its own frame change notifications.
And we must unregister from all the notifications during dealloc.

This would also reveal a bug where we would expose an NSView before
its super view is visible, leading to those "invalid drawable" warnings
when using QQuickViews. Therefore, we add this extra check in
QCocoaWindow::exposeWindow().

Task-number: QTBUG-32826
Change-Id: I69018cb6f199b242768d114b2aa34c7f2d243196
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-09-04 17:52:20 +02:00
Morten Johan Sørvig a2bdda8e3b Fix event delivery for apps with native widgets.
Native widgets, which have a NSView but not a
NSWindow, must be created in the hidden state to
prevent Cocoa from selecting them for event delivery.

Change-Id: I741e52729047ad4e03959f2244abe5b14b5df46b
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-09-04 17:52:15 +02:00
Robin Burchell 500deb9a08 eglfs: Check for a valid window handle before attempting to retrieve resources.
In the case of a window that is not yet shown, or destroyed, there
will not be a native handle, and this would crash.

Change-Id: Ib8c1a4490d82654d04073dac240eaa1275cbc1b0
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-09-04 09:38:35 +02:00
Shawn Rutledge 86f8bee96b OSX: clicking outside a popup: don't propagate the event elsewhere
If you click outside a popup window, it only closes the popup; any
other widget that was under the cursor at that time should not get
the event.  The bug was about the popup list on a combobox, but this
patch assumes that this rule is universal; can't think of any
exceptions at this time.  (E.g. a tooltip is not a popup)  Clicking
on the application menubar still does not close the popup though.

Task-number: QTBUG-33241
Change-Id: I2444b7cfd40cf75ff7b70e3fecfeceb2fd4623bf
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-09-04 07:10:47 +02:00
Thiago Macieira e82c7a8abf Give QWindowsNativeFileDialogEventHandler a virtual destructor
GCC complains about this class having virtuals and no virtual destructor.

C:/Qt/qt5/qtbase/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp:750:20: warning: deleting object of polymorphic class type 'QWindowsNativeFileDialogEventHandler' which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]

Change-Id: I7494fce4bb71ed65954226259fa65fdc507ca403
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-09-03 17:29:20 +02:00
Sergio Ahumada 0a3eb0fe44 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-09-02 16:26:21 +02:00
Kai Koehne 0ed30cbf09 Fix compilation with latest Mingw-w64 headers
Fix compilation with e.g. mingw-builds 4.8.1-rev4 package. The Mingw-W64
headers define SHSTOCKICONINFO only for vista and newer.

Task-number: QTBUG-33225
Change-Id: I30a62c642ae017c7eafb99b1efb06578fd61a12e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-09-02 15:41:20 +02:00
Morten Johan Sørvig 8fc97fdfc7 Revert Mac event loop changes.
"Make QGuiApplication::exec() run within NSApplicationMain()"
"Make Qt process native and timer events on Cocoa applications"
"Cocoa: Fix QFontDialog, QColorDialog auto-tests"

This reverts commits
1e14762b8d
e4b2a0b4ba
df7944e7d7

Change-Id: I80b65b5ee0297b090f807bd420664233dfc44f7b
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-02 13:07:35 +02:00
Friedemann Kleint 99362fb7f2 Windows XP file dialog: Fix appending the selected filter suffix.
The mechanism is triggered by always setting lpstrDefExt,

Task-number: QTBUG-33156

Change-Id: Ib3a49410a1ad78fb433a4e0803a0751ec8c2a51e
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-30 15:25:04 +02:00
Gabriel de Dietrich df7944e7d7 Cocoa: Fix QFontDialog, QColorDialog auto-tests
The new Cocoa event dispatcher made apparent some deficiencies in the
way the dialog helpers were being hidden. In particular, we would not stop
a dialog helper's modal loop when closing the dialog, resulting in the
auto-tests hanging. Also, since the QApplication event loop is runnig with
[NSApp run] in the stack, the previous workarounds are no longer needed.

Task-number: QTBUG-24321
Change-Id: Ifba713c286638d78a699c319a15683d09714f06f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-08-29 12:44:24 +02:00
Gabriel de Dietrich e4b2a0b4ba Make Qt process native and timer events on Cocoa applications
Since we don't spin any QEventLoop, we need to make sure events posted
by the window system interface are processed.

Change-Id: I0e7b541d86a7a14f2ecd3702e7cbdbdee9920859
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-08-29 12:44:14 +02:00
Gabriel de Dietrich 1e14762b8d Make QGuiApplication::exec() run within NSApplicationMain()
We follow the same pattern as for iOS and Windows ports, making
sure the user's main() runs in a platform friendly environment. In
this particular case, it means calling the user's main() during the
call of NSApplicationMain(), and calling the user's main() function
(renamed to qMain() as in Windows) after receiving
NSApplicationDidFinishLaunchingNotification. In practice, this means
that NSApp is running when qMain() is called, and therefore when
QCoreApplication::exec() is called.

For those command-line utilities running on QGuiApplication, or any
deriving class, and that do not provide a bundle, we override the main
bundle's dictionary and get NSApplicationMain() to run as usual.

Added cocoa/cocoamain "subdir" to build libqtcocoamain.a (together with
cocoa/cocoaplugin -- plugins/platforms/cocoa is made a subdirs project).
This library is linked against all GUI Qt apps and provides the actual
main() function. It also catches the launching NSApplication notifications,
and calls the user's qMain() function. Note that this will happen in the
same cases when the user's application will run with the Cocoa QPA plugin.

Launch related code in QCocoaApplicationDelegate is moved to libqtcocoamain,
QNSApplication is removed (but sendEvent: redirection still there), and
code in QCocoaEventDispatcher dealing with calling [NSApp run] and related
has been removed since it's become unreachable.

ChangeLog: [Qt for Mac] Make QGuiApplication::exec() run within NSApplicationMain()
Change-Id: I790e5138c29aac2e0215a9147d0148fece40ca22
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-08-29 12:44:07 +02:00
Sergio Ahumada 3b3a9fe53f Merge remote-tracking branch 'origin/release' into stable
Change-Id: I815757e33b6c0b1e702c8e386e8e30307f78e318
2013-08-28 20:36:12 +02:00
Robin Burchell 80cb575953 Remove Maliit input context.
Maliit upstream has its own IC which is more advanced than this one, as well as
being supported.

Change-Id: I4b820fc7f39468e53c113699c4c43c75d490f65b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Pekka Vuorela <pvuorela@iki.fi>
2013-08-28 17:01:40 +02:00
Yoann Lopes e94c221655 Android: added ApplicationState capability.
The application state is tied to the QtActivity lifecycle.
Mapping of states between Android and Qt is as follows:
 onResume --> ApplicationActive
 onPause  --> ApplicationInactive
 onStop   --> ApplicationSuspended

Change-Id: Iefef08d6c7a7fde28fba1f4886882458cda6a0c0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-08-28 17:00:15 +02:00
Giuseppe D'Angelo a79e42b8f4 Enable DWM transparency for OpenGL windows under Windows
Starting with Windows Vista, we can control the compositing window
manager using the DWM APIs. This allows us to make truly transparent
OpenGL windows.

We also have to detect and listen if compositing is enabled, otherwise
enabling transparency will cause glitches all over the place.

This (partially) fixes
Task-number: QTBUG-28214

Change-Id: I0fe1ec7adec8181b788c32de03c59142731d9e7f
Done-with: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-08-28 09:33:46 +02:00
Frederik Gladhorn 190fa97c83 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	examples/widgets/doc/src/addressbook-fr.qdoc

Change-Id: Id1196e8e0c6445f1616c3f29234c974d809f8e48
2013-08-27 22:51:09 +02:00
Daiwei Li 79570157e3 Return 1.0 for devicePixelRatio in QCocoaWindow if no valid window
If m_window is invalid, devicePixelRatio returns 0, which leads to
adverse effects in other parts of the code. For example,
qquickshadereffectsource.cpp will get stuck in an infinite loop
trying to multiply 0 by 2.

Task-number: QTBUG-32975

Change-Id: Ie3db86f1f459df018ebce67bcb4226f6cffe854e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-08-23 11:48:00 +02:00
Friedemann Kleint 9194fc00a6 Windows: Keep monitors when system is locked.
Prevent windows from being recreated due to screen changes which
can cause GL widgets to stop updating among other things.

EnumMonitors returns only one temporary monitor named "WinDisc"
when locked. Do not remove monitors when that happens.

Task-number: QTBUG-33062
Change-Id: Ia2247bb04b3e10f99f594245f84238b5f9044f70
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-23 11:48:00 +02:00
Tor Arne Vestbø 29c1567ee4 Rename QIOSEventDispatcher to QEventDispatcherCoreFoundation
Now that it lives in QPlatformSupport, will be fleshed out more, and
might be used on OSX at some point in time. Still iOS specific, as
none of the iOS API usages have been ifdef'ed.

Change-Id: Ib7fde6403ef2dfef175a6f306a85d58027569a30
Reviewed-by: Ian Dean <ian@mediator-software.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-08-23 11:28:48 +02:00
Tor Arne Vestbø 4ab5870699 iOS: Determine render buffer resize based on CA layer, not Qt window
We resize the render-buffer based on the CALayer of the UIView that's
backing the QPlatformWindow, so the logic in defaultFramebufferObject()
to determine if a resize is needed should be based on the relationship
between the render buffer-and the CALayer, not the render-buffer and
the QPlatformWindow.

There is still an issue of the QPlatformWindow and its UIView/CALayer
not being in sync, but that's a separate issue.

Change-Id: I84f617d07ec64fea0d027473e9720523eeae0c7a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-08-23 11:28:48 +02:00
Uli Schlachter bd00b51c47 XCB: Fix race with the event thread
The XCB backend runs a thread which gets events out of the XCB event
queue and feeds it to the main thread via another queue. This queue is
protected by a mutex.

However, when the event thread exits, it cleans up after itself and
frees all remaining entries in the queue. This code messed with the
event queue without acquiring the needed mutex and left behind a list
full of stale pointers.

Fix this and protect the freeing with the correct mutex and clear the event
queue afterwards.

Change-Id: Ie49cf6241b76be86d8cebbc931f7226a3f6a14e5
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-23 09:16:41 +02:00
Andy Shaw 1baf293548 Move SnapToDefaultButton from QPlatformDialogHelper to QPlatformTheme
Since QPlatformTheme covers all dialogs whereas QPlatformDialogHelper is
really only for the native dialogs then the SnapToDefaultButton hint is
moved as it has relevance for all dialogs

Task-number: QTBUG-32631

Change-Id: I1dce0bb4abcd4cfd39c4a199a33fc7078176ab4b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-08-23 08:42:35 +02:00
Rafael Roquetto 9de6d1a74f BB10: Do not send deactivate event twice
On BB10, NAVIGATOR_WINDOW_INACTIVE is called before
NAVIGATOR_WINDOW_INVISIBLE, already triggering handleWindowGroupDeactivated()

Change-Id: I7d82c0220fe8dc8e87bfa2b31af6085c7d1d6cee
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2013-08-22 23:36:40 +02:00
Rafael Roquetto 4994300fe7 Playbook: Fix rendering when thumbnailed/minimized
On Playbook, rendering should happen when the application is thumbnailed,
therefore we need to send a window activated event to resume rendering once
the thumbnail is restored from the minimized state.

Change-Id: I0fa5da483dc101e25f718e52859a66edfe5c66c7
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2013-08-22 23:36:40 +02:00
Gabriel de Dietrich 68563cdabd Cocoa: Fix memory leak in event dispatcher
We retain each modal NSWindow as long as its modal session is running,
and we should release it every time that modal session ends.

Task-number: QTBUG-32728
Change-Id: Ia30c9c2d15be1350e7150a0d3c2f530a2fe4f38b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-08-22 19:14:03 +02:00
Gabriel de Dietrich 2af8feee92 Cocoa: Bring back old exposure behavior on Mac OS X 10.6
Task-number: QTBUG-31864
Change-Id: Ife2429b2d6b845e5ccca31a03e66351a3ff5ba4b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-08-22 19:14:03 +02:00
Frederik Gladhorn 3abecf2ee9 Accessibility for Android
This enables both modes for TalkBack,
explore-by-touch and the normal swiping mode.

It is partially inspired by the BarGraphView example
of the Google/Android Eyes-Free project.

Note that for any accessibility to work you'll need
a device with api level 16 at least.
Using reflection we should be able to dynamically pick up
the classes if we have the high enough api level.

Change-Id: I11b93bead451483782a1711434d45c8f9a35996f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-08-22 18:45:24 +02:00
Frederik Gladhorn 59b6a67b94 Remove rowColumnExtents from QAccessibleTableCellInterface
The API is broken and available in individual functions.
Don't make it more complicated than necessary to implement
the interfaces for new widgets.

Change-Id: Ie408c369ef05b2b8e7ac666b25153d090fcf3aae
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-08-22 18:45:24 +02:00
Richard Moe Gustavsen ce16e70985 iOS: Activate window on touchesEnded instead of touchesBegan
Since we await giving focus to a focus object until a press
release, it also makes sense to await activating a window until
a press release, since they both have to do with focus. By doing
so, the input panel now stays open if the user selects a line edit
in one window when a line edit in another window still has focus. We
also avoid activating a window in case of a touch cancel (e.g as
a result of the user flicking or triggering a gesture).

Change-Id: Ic00c4be69c257fceb10ce2d5a81cb490ea93710f
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-08-22 18:45:24 +02:00
Thiago Macieira c374f4441a Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-08-22 02:04:39 +02:00
Friedemann Kleint 95e880bd9d Windows: Handle Qt::ForeignWindow.
Task-number: QTBUG-33079

Change-Id: Iec2ddfe07b07b3a921098c7147f26aff316bf6e6
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-21 23:00:32 +02:00
Friedemann Kleint bc4ce284ad Windows: Generate expose events for layered transient children.
Layered (translucent/non-opaque) windows do not receive WM_PAINT,
expose events need to be generated. Improve
6800728d09 to handle transient
children as well.

Task-number: QTBUG-17548
Change-Id: Id113604512692dfbea1f2b10d0db3068213cf599
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-21 16:39:55 +02:00
Shawn Rutledge f7ebb8d4c6 QXcbBackingStore: don't crash in flush() if no platformWindow
Task-number: QTBUG-32681
Change-Id: Iec7204985867a8d65cea393ba6ab66d328a5e7b2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-08-21 16:39:55 +02:00
Eskil Abrahamsen Blomfeldt ecbd3a70e4 Android: Remove EGL_BAD_SURFACE warning on suspension
When suspending the app we would destroy the surface twice,
causing libEGL to output a warning on the second attempt.
We would also destroy the surface before all references were
released which is not 100% nice. We don't need to call the
super class implementation at all, since we are managing
the EGL surface ourselves.

Change-Id: Ie1ab2ea8561d0018b5f16ac8cdf3296313a0a92c
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-08-21 16:39:55 +02:00
Andreas Holzammer 5680484476 [QNX]Fix transparencies
It is not guaranteed that buffers are cleared when they
are allocated. So don't use a buffer for the root window,
and clear buffers for the actual content.

Change-Id: I42939baec03fa05968c83bbf2739ab8d1d70c8be
Reviewed-by: Matt Hoosier <matt.hoosier@garmin.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-08-21 16:39:55 +02:00
Friedemann Kleint a4d4e18c31 XCB: Suppress warnings about unhandled client messages.
Introduced by the tray icon refactoring
d8090022f6 among other things.

Task-number: QTBUG-33068
Change-Id: I7c536c68acc2fae39ca30afb401500d0dc8701b1
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-21 11:13:56 +02:00
Frederik Gladhorn c8ca300e49 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	qmake/doc/src/qmake-manual.qdoc
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/src.pro

Change-Id: I0a560826c420e46988da3776bd8f9160c365459a
2013-08-21 11:03:18 +02:00
Stephen Kelly 692bee634e Add missing PLUGIN_CLASS_NAME
Change-Id: Ic2d59ac9194d6756c9f978fb1c13baf3fa7009b7
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-08-20 20:09:20 +02:00
Friedemann Kleint eb2ae61cb4 Windows: Add hit test handling for non-client areas.
Suppress resize cursor for fixed size windows.

Task-number: QTBUG-32663
Change-Id: I9579bb13d494fe21e5db7b75d01a3cf1b693c7f6
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-19 21:56:12 +02:00
Eskil Abrahamsen Blomfeldt 05ddae12d1 Android: Fix orientation change on Android 4.3
In Android 4.3, we will get a new native window pointer for the
same surface (the old surface has not been destroyed), whereas
before we would get the same pointer, thus hitting the
"sameNativeWindow" branch. This revealed some bugs in the
surfaceChanged code path when the old surface had not been
destroyed. This path is now taken both when there's no old surface
(the app has been suspended in the mean time) and when the
orientation changes.

To handle the second case, we need to make sure:
1. We update the static pointer
2. We update the pointers in the platform windows
3. We don't add a second reference to the static data for
windows
4. We schedule an update of the window size

Task-number: QTBUG-32878
Change-Id: I47257615f9ba820315fc98d7a804e52223f430bf
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-08-19 16:52:21 +02:00
Jocelyn Turcotte 7495b59dbd xcb: Fix TouchPointPressed being sent multiple times.
XI2 sends events for individual touch points, but QTouchEvent
sends all of them with a stationary state if they didn't change.
If a touch pressed event is received, and the next XI2 event
is about a different touch point, we wouldn't update the state
of the previously pressed touch point.

Change-Id: I1ebcbea1cea54872064ef7710e2aac7b0b41cd70
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-19 14:24:28 +02:00
Shawn Rutledge 6281acaf8f XI2 touch support: must call deviceForId to create the device
After change 4dbf574b7a touch worked
only if XI2_DEBUG is turned on.  That is because it creates the
QTouchDevice and calls QWindowSystemInterface::registerTouchDevice,
which must be done at startup so we can receive events.

Change-Id: I9446d72bc702fbd819bf26bcdc2a3d657180f642
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-08-16 16:23:17 +02:00
Frederik Gladhorn e727855476 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-08-16 16:02:19 +02:00
Uli Schlachter ac5c64fccd XCB: Ignore _NET_WM_PING on the root window
With a _NET_WM_PING message, a window manager can check if an
application still works or if it froze. The WM sends such a message to
the application window and the application sends the message back to the
root window.

Since change Ia04268b0 / commit d8090022f "Move the X11 system tray code
from widgets into XCB-plugin.", Qt selects StructureNotifyMask on the
root window. Due to this, we now also receive replies to _NET_WM_PING
and treat them like a _NET_WM_PING request.

This caused an endless loop as soon as any _NET_WM_PING was seen where
Qt would send a _NET_WM_PING to itself and handle it again and again.

Fix this by ignoring _NET_WM_PING messages that are sent to the root
window. According to EWMH, such messages can only be replies to
_NET_WM_PING and GTK does this, too.

Task-number: QTBUG-32957
Change-Id: I1b0aa682f99b17d633baacc14b18b3adca7a1aba
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-16 15:54:30 +02:00
Ryohei Ikegami 592c8bffd6 Add Wacom tablet support for Cocoa
Task-number: QTBUG-25867
Change-Id: I48178b8913224ac8e907d42f57620947df12e930
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-16 05:20:38 +02:00
Sergio Ahumada 26e3de575f Merge branch 'release' into stable
Conflicts:
	src/plugins/platforminputcontexts/compose/generator/qtablegenerator.cpp

Change-Id: I1a92b0c0dc1f7bad947a54fdd3ea7cfd6a5a7694
2013-08-15 18:32:20 +02:00
Lars Knoll 12905fa30f Cut away 2/3 of the startup time on Linux
Optimize the parser of the X11 compose tables. Parsing these was
responsible for over 90% of the startup time in Qt 5.1.

Change-Id: Ifddc3f30828791e51a755f92791c26ffe43a9cd3
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-08-15 15:54:12 +02:00
J-P Nurmi 751989df5c Replace QWheelEvent::Phase with revised Qt::ScrollPhase
Change-Id: I4d8e7d48497d0d96a297191976c0d99feb67b538
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-15 10:02:36 +02:00
Richard Moe Gustavsen bab29dd76c Cocoa: bugfix mouse wheel + modifier keys not working
To avoid using modifier keys when releasing a two-finger
mouse wheel flick on a trackpad, we listen to event
phases. But for a normal mouse, a separate phase
NSEventPhaseNone is given. Ensure that we still send
modifier keys when that state is reported.

Task-number: QTBUG-32098
Change-Id: Ib840dd661b7842ae49127e5a8d42e3666ae2da4e
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-15 08:57:01 +02:00
Ryohei Ikegami 8e13a9792a Change QNSView convertFromEvent: arguemnts to QPointF
Change QNSView convertFromEvent: toWindowPoint: andScreenPoint:
arguments from QPoint to QPointF.

QWindowSystemInterface event handlers already use QPointF and
QPointF is needed for tablet support
(https://codereview.qt-project.org/#change,62740).

Change-Id: I6e5b2f19777fe24ae34e9e85028772e4be0a94f6
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-08-15 03:50:52 +02:00
Daiwei Li 3e4c9cb3d6 Cocoa: Set window title after setting window flags if window has border
A QWindow should keep its title after removing and restoring the
frame, so set it if we are setting window flags that include a frame.

Task-number: QTBUG-32978

Change-Id: I0fe1b651eac05a210b06ec4f7f6fb78f2536834d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-08-15 01:30:54 +02:00
Gatis Paeglis 1044f23dee Fix QKeyEvent::isAutoRepeat on Mac
Task-number: QTBUG-21500
Change-Id: Ifed85ddcdecd30453207728b0f376baa2abf6e66
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-08-14 23:23:06 +02:00
Gatis Paeglis 5b32132762 Fix escaped compose key parsing
This patch fixes the issue when the escape '\' character was
interpreted as a compose value.

On the whole en_US.UTF-8 Compose file it only affects the following
sequences:

<dead_diaeresis> <space>      : "\""   quotedbl # REVERSE SOLIDUS
<Multi_key> <slash> <slash>   : "\\"   backslash # REVERSE SOLIDUS
<Multi_key> <slash> <less>    : "\\"   backslash # REVERSE SOLIDUS
<Multi_key> <less> <slash>    : "\\"   backslash # REVERSE SOLIDUS

By coincidence the last 3 sequences were working even before this fix.

Task-number: QTBUG-32972
Change-Id: Ia4fc2156d982cf2918d0d1be6ee07706cfbfd091
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-08-14 19:41:11 +02:00
Frederik Gladhorn 5c23199d4e Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	configure
	mkspecs/macx-xcode/Info.plist.app
	mkspecs/macx-xcode/Info.plist.lib
	qmake/doc/qmake.qdocconf
	src/corelib/global/qglobal.h
	tests/auto/other/exceptionsafety/exceptionsafety.pro
	tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp

Change-Id: I3c769a4a82dc2e99a12c69123fbf17613fd2ac2a
2013-08-14 09:06:31 +02:00
Gabriel de Dietrich 8c3b31182c Cocoa: Allow to hide menu items in menubar
Task-number: QTBUG-32899

Change-Id: I423ac2d636306303d39e973f19032c9004957095
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-08-13 19:48:15 +02:00
Balazs Domjan 0819c48e1b Fix QDialog position shift bug after resize.
On Linux (XCB), resizing a dialog shifts its position. The fix corrigates
the geometry of the dialog to the right values.

Task-number: QTBUG-32473
Change-Id: I6d38539a3ebc3b95eacc7f13a76f83fc9e4d821c
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-13 16:44:06 +02:00
Simon Hausmann 9b7fc15edf Implement support for global whatsthis on Windows
Task-Number: QTBUG-32835

Change-Id: Ifee10d815ce0037c96eda574ab9e1af67ff6bd78
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-08-13 12:22:54 +02:00
Tor Arne Vestbø 327a87cfe4 iOS: Set PLUGIN_CLASS_NAME for platform plugin
Change-Id: Ic8c5181d753925de0d8cd5fcb5e1347429ff5ba3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-08-13 01:38:54 +02:00
Gabriel de Dietrich 79ccb4fcb5 Make QCoreWlan plugin compile on 10.9
We take the path of least resistence and keep the old API code for 10.6 while
updating the code for 10.7 and newer. This means we have some code duplication.
It also means that we only compile the 10.6 code for QCoreWlanEngine when the
deploymen target is 10.6.

The 10.6 version file should be removed once we drop support for Snow Leopard.

Change-Id: If4702b155bcdb7522800bf99a4dd37d4efed803a
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
2013-08-12 11:08:06 +02:00
Jonathan Liu 4a195b020e Do not use QWindowsFileDialogHelper for Windows Server 2003
Windows Server 2003 is based on Windows XP and should use
QWindowsXpFileDialogHelper as it does not support the CLSID-based
IFileDialog interfaces that are available from Windows Vista onwards.

Change-Id: Idd973f9ec4c98d1f2fb7e835de64532edeccfc72
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-08-11 06:04:13 +02:00
Jan Arve Saether 490bf800e6 Avoid a potential crash in unignoredChildren
This doesn't actually fix the source of the problem, but its harmless.
This was reproduced with tst_qcolumnview and voiceover enabled

Task-number: QTBUG-32440

Change-Id: Iad27884e1ca9194f911271c16908ef358e4b1875
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-08-09 20:24:29 +02:00
Sergio Ahumada 08d91d4b8e Merge "Merge branch 'release' into stable" into refs/staging/stable 2013-08-09 16:28:34 +02:00
J-P Nurmi 652d51eda6 Cocoa: support QWheelEvent::Phase
The started & ended phases are required for implementing correctly
behaving transient scrollbars (ie. they become and stay visible when
touching the pad with two fingers).

Change-Id: I718d991ba6fd7e949cf9790f3bae285000fce576
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-08-09 13:39:42 +02:00
Alexey Chernov 071c48a5ff Return EGLNativeWindowType instead of window number in winId()
QEglFSWindow::winId() method was changed to return EGLNativeWindowType
EGL window handle instead of static window number as it recommends in
documentation.

QPlatformWindow documentation reads: "The platform
specific window handle can be retrieved by the winId function." and
also for winId() method itself: "Reimplement in subclasses to return
a handle to the native window".

Task-number: QTBUG-32564
Change-Id: I634c5b4d966b6aebde72518a2c39717d1b39af08
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-08-09 13:38:14 +02:00
Sergio Ahumada 6a56fd3069 Merge branch 'release' into stable
Change-Id: I5e94c4f01564df633c9925561ebb0b553bd31a2e
2013-08-09 12:38:19 +02:00
Martin Gräßlin d916ed12b3 Pass Xcb errors through the native event filter
So far only the xcb plugin is able to handle xcb errors and there is no
way for an application to get access to the errors even if the app is
using xcb directly.

This means Qt is filtering out all xcb errors which are relevant to the
app and at the same time the xcb plugin is getting spammed with errors
it did not cause and which are logged with a qWarning.

By passing the error event through the native event filter an app can
filter out all errors it knows to have caused.

Change-Id: I158deee2e1c71630f2b1d77174f1091532851b3d
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-08-08 15:09:40 +02:00
Fabian Bumberger f5841521a4 QNX: Enable rendering on different displays using OpenGL
Change-Id: Ife9c090cff732aba42a5cbc04640721e8fdde69d
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-08-08 12:55:48 +02:00
Andy Shaw 3e078cf36d Don't release the printer after using it to change a property
The printer should not be released after changing a property on it as it
is still needed by QPrinter elsewhere. It is released as appropriate
automatically already.

Task-number: QTBUG-32831

Change-Id: Idb2d98b25b62f343015a0a0fb3c9a0d506546132
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-08-08 12:43:35 +02:00
Gatis Paeglis 58a4bf2c99 [Mac] Fix modifier reporting issue in the key events
This issue was introduced when porting key handling code from Qt4 to Qt5.
To conform to the implementation of QKeyEvent::modifiers() we have to invert
modifier state logic before sending them as QKeyEvents.

Task-number: QTBUG-31332
Change-Id: I3bb41169f8ab2a4b0a13a224bb461d2792d3a65f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-08-08 09:44:12 +02:00
Martin Gräßlin 45ab9d0c33 Export getTimestamp to the native interface
The functionality to get the current x11 timestamp is also needed by
applications which need to interact with the X11 directly. With XCB
it is not possible to inspect the event queue and by that an
application is not able to retrieve the current timestamp using the
property change pattern and waiting for the matching event.

Change-Id: Ie7ba78ecbe509ed3a902c702266917f65bf5ad07
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-08-07 13:49:43 +02:00
Jan Arne Petersen fe375dc3d0 eglfs: Implement nativeResourceForWindow
Add support to request EglDisplay resource for a window. This is
supported in other platform plugins, like kms and xcb and is required by
wayland-egl based QtWayland compositors.

Change-Id: If3f8c625682915c9671e820974e810763c3c8b66
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-08-06 15:53:07 +02:00
Jan Arne Petersen 47d27c3a53 eglfs: Implement nativeResourceFunctionForContext
Add support for a get_egl_context NativeResourceForContextFunction to
the eglfs platform plugin.

Change-Id: I155952797f340dd00ab9864852add4b44d841042
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-08-06 15:52:52 +02:00
Frederik Gladhorn 521f2163b1 Fix typos
Change-Id: I27cbcd8c59bdc34493931f341341cc25b4aba9e7
Reviewed-by: Kurt Pattyn <pattyn.kurt@gmail.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-08-06 11:08:49 +02:00
Samuel Rødal 3a0071e286 Added automatic input device discovery to kms plugin.
Similar to what the EGLFS plugin does, to avoid having to explicitly
specify which device to use for keyboard and mouse.

Change-Id: I00502be8c767487490f3fd36fb06d3eb56548ada
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-08-06 11:00:23 +02:00
Samuel Rødal 785edaa09d Made EGLFS handle multiple surfaces with more grace.
Prevents crashing when some menu or similar is shown, although the
visual result might not be ideal.

Task-number: QTBUG-29729
Change-Id: Ia840b3ec17f5ef30ee58150bd2f807ca5e72cc12
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-08-06 11:00:23 +02:00
Pier Luigi Fiorini 888bfb09da Find primary GPU only
Some systems may have multiple DRM devices attached to a single seat and we are
not guaranteed to pick up the primary GPU. With this flag we can control how
DRM devices are detected and consider only the primary GPU.

This is very useful for the kms plugin or QtCompositors running on kms in order
to use the right DRM device.

Change-Id: I8b91e78f148b25aaa4e40724e39e0ed0918ca100
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-08-06 11:00:23 +02:00
Jorgen Lind 03285044a0 Add how to create a udev rule for the evdev plugins
Change-Id: Icd7a192701958673fe216f40ddab710f5f63a8b8
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-08-02 21:00:23 +02:00
Shawn Rutledge c6e32b740c OSX: do not force a plain window to be on the same level as its parent
2af0a778f464980594c36098e4a8ba4448edfd29 the fix for QTBUG-27410
caused this Designer bug.  Doing the automatic level escalation only
for "special" windows and avoiding it for plain Qt::Window type
windows is one way of fixing the Designer problem.

Task-number: QTBUG-31779
Change-Id: I1da5454f31111f36480fac3b53be6d5f0ce40047
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-08-02 18:20:09 +02:00
Gatis Paeglis b59c257a04 Fix stuck modifier issue in the non-xcb_xkb code path
Since updating the xkb_state throght core events is more
tricky (opposed to the xcb-xkb code path) where we have
to use xkb_state_update_key, we need to make sure that our
local state is in sync with the X server's state.

The local state was getting out of sync if key was pressed
down in a Qt application and released in other X client (by
changing the focus to another window with a mouse, for
example).

Task-number: QTBUG-32660
Change-Id: I662bf5aad3ab0e8591109994e746d85ff61ad6ef
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-08-02 08:19:59 +02:00
Liang Qi 25fc7a3068 Cocoa: emit currentFontChanged signal in font dialog helper
* changeFont is a delegate method of NSFontManager.
* exec() will not be called in Qt Quick.

Task-number: QTBUG-32450
Change-Id: I05e43ce84d28ff32c88d75bd6ee60653de6ca4f0
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-31 23:48:47 +02:00
Sérgio Martins 0ec917123f Fix build with QT_NO_CURSOR.
Just moved applyCursor() and defaultCursor() to a #ifndef block.

Change-Id: I14c21aa509395fb1bd72d389cfc46f0f34ab7649
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-07-31 15:04:58 +02:00
Sérgio Martins c707bb4414 Don't run this code on WinCE, the variable will be unused.
Change-Id: Id472e6e18759227943a24aa723963671bdb52164
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-07-31 15:04:48 +02:00
Samuli Piippo c837dbecdd eglfs: allow egl native window to be zero
Change the checking for created EGLNativeWindowType so that zero
is a valid value. This is the case e.g, with BeagleBoard, where
widget application cannot be run without this change.

Change-Id: I36c30091e1a5a0598ae3822d0be8dc4362779c0b
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-07-31 14:42:13 +02:00
Gatis Paeglis 7654f71f80 Fix handling of non-latin1 shortcuts
This patch enables non-latin1 shortcut handling on Qt5/X11.

Task-number: QTBUG-32274
Change-Id: Ia084258b956128ffade8eddfbcb18af334d79a59
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-07-31 13:36:24 +02:00
Eskil Abrahamsen Blomfeldt 0bbc32a0cb Android: Fix crash when setting WA_NativeWindow
We don't support native widgets in Android, so we can get into a mess
when people set this widget attribute, since the FB compositor
will assume that all widgets have their own backing store. This adds
a capability flag to the QPlatformIntegration which allows the plugin
to disable the WA_NativeWindow feature.

Task-number: QTBUG-32685
Change-Id: Ic200487da4a297f71ab594cf7c90d1e1d53bacd3
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-07-31 12:34:14 +02:00
Eskil Abrahamsen Blomfeldt 87a30db468 eglfs: Fix updates when resizing backing store
We would resize the backing store without resizing the viewport,
which would cause all subsequent blits of the backing store to the
screen to look broken.

Task-number: QTBUG-32146
Change-Id: I65bae051b7cfbbc61fc285e4baa74685d5639569
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-07-31 10:44:49 +02:00
Liang Qi 1613ec336d Cocoa: align font dialog helper with the color one
The reference color dialog helper change is
eeffcfbd89.

Change-Id: I35b505cce133adeed91df7c95b21f7c74c55cb53
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-31 10:20:52 +02:00
Shawn Rutledge e54ef7f23b xcb: mouse wheel does not focus a window
The window should react to the wheel event (e.g. scroll content)
but without becoming focused; this is the X11 convention.

Task-number: QTBUG-32517
Change-Id: I7e12425e5a6e1549b7f23dc318612a436c24d14b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-07-31 07:33:23 +02:00
Liang Qi 130f43c9c1 Gtk theme: emit currentFontChanged() in font dialog helper
There is no signal for it in gtk font selection. We should emit this
signal just before accept() was emitted.

Change-Id: Ie31d96b789436607b134c84dd77a4b9be9e9a550
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2013-07-30 22:49:44 +02:00
Nils Jeisecke cf3e435299 Cocoa: Make sure that resizeEvent is invoked after calling resize
The QWindow::resizeEvent documentation states that resizeEvent
is invoked after the windowing system has acknowledged a
setGeometry() or resize() request.

The Cocoa plugin however did set the platform window geometry
immediately so that the qnsview's updateGeometry returned too
early.

Task-number: QTBUG-32706
Change-Id: I1f359ab368833d174ab6740f4467b0848c290f13
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-07-30 17:24:15 +02:00
Friedemann Kleint d8090022f6 Move the X11 system tray code from widgets into XCB-plugin.
- Add system tray tracker class to XCB plugin and
  provide functionality via invokable slots
  of the native interface.
- Remove XLib-dependency of widgets/utils.
- Reintroduce tracking of tray window destruction
  and recreation, which was removed in the XLib-code
  when porting it from Qt 4 to Qt 5.

This paves the way for implementing the tray icon
completely in terms of QPlatformSystemTrayIcon at some point
later.

Change-Id: Ia04268b0e2919c05874a3e9548930535332897c7
Reviewed-by: Alberto Mardegan <mardy@users.sourceforge.net>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-30 15:08:31 +02:00
Friedemann Kleint 88f4baf089 Windows: Clear window under mouse in destruction of platform window.
Task-number: QTBUG-32042

Change-Id: I8aa5df84b7ca6deb47e0c3eff9a6a7d2c4793553
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-07-30 09:39:30 +02:00
Eskil Abrahamsen Blomfeldt 9eeb1bd4d4 Add workaround for GL on Android emulator
On the Android Emulator, the shaders will be compiled by a desktop
GL driver, since the GL driver in the emulator is just a thin
wrapper. The GL driver does not necessarily support the precision
qualifiers, which can cause applications to break. We detect this
at runtime in the platform plugin and set a workaround flag to

Task-number: QTBUG-32557
Change-Id: Ied00cfe8e804d1f7862697dd379a14f3bed3d980
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-07-29 17:58:30 +02:00
Friedemann Kleint 71535ad6bc Build offscreen plugin only if freetype is available on Windows.
Task-number: QTBUG-29685

Change-Id: I0d80437d07ad7f9e11343bfa7afbdeb30583f8c5
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-07-29 15:38:51 +02:00
Allan Sandfeld Jensen 9fabb548da EGLFS and MinimalEGL windows are not marked as OpenGL surfaces
Several QOpenGLContext methods fails incorrectly on QWindows from EGL or
MinimalEGL. This is happens because they are incorrectly marked as raster
surfaces instead of OpenGL surfaces.

Change-Id: Ic9b3859915a9049fce442216b01dce89521fa5ee
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-07-26 16:59:48 +02:00
Friedemann Kleint 15b45c608f XCB: Readd support for -name command line argument.
Task-number: QTBUG-27349

Change-Id: I85390942927cd1c54f76fd7ddc0f3487c7205b57
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-07-25 15:09:51 +02:00
Uli Schlachter ec2aa7d282 xcb: Fix minor leaks in XSettings code
If some of the X11 requests fail, QXcbXSettings::QXcbXSettings() prints a
warning and returns. These error paths all caused memory leaks.

Change-Id: Idfecf03dd412c35552c3bbbebdda9c039aeadc13
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2013-07-25 11:25:42 +02:00