A blocking isSoftwareKeyboardVisible() is a deadlock
waiting to happen: when the android input method performs
blocking metacalls from the android thread to the GUI
thread all the time, we cannot block the GUI thread
waiting for the android thread.
Task-number: QTBUG-40750
Change-Id: I2490897b0f65e0d92214907e239b10b372d949dd
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
For iOS8 and up [UIScreen bounds] changes based on the interface orientation,
so we need to use [UIScreen nativeBounds] instead.
Change-Id: I3fc12cfa417df26ca94c803e970bc2dc18a94378
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
As usual, HITheme is not helping, and renders inactive controls
as disabled. Also, given the design changes in Yosemite, we can't
just desaturate the active pixmap and render it. In this case, we
render the inactive control and enhance it, making very close to
the expected result. The pixel-exact version would be to render
a plain push button, and then add the combo box arrows. However,
these arrows would need to be created (and updated) since there
seems to be no more API to render them.
Task-number: QTBUG-40833
Change-Id: If1bc366c0bc83123972fabebbc8beeb9f071e7a1
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Some applications may use native file dialogs and some may use the
widget implementation, but QFileDialog always saves all settings to
the same place each time it destroyed. So it is important to remember
all settings read in restoreState and put them back in saveState.
This bug was introduced by 37ca2224ec
Task-number: QTBUG-36888
Change-Id: Ied1db83817480312e963a042784d7bdd16f0a2b1
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Qt expects scroll operations to be executed immediately. They cannot be
postponed since Qt may paint on the scrolled area afterwards.
The new code will only use an accelerated scroll operation (screen_blit)
once before the window is posted, because the blit is from the previous
buffer to the current one. Hence an additional scroll operation could
copy outdated pixel data. Additional scroll operations will be handled
by Qt. Performance issues were not perceived with this approach so far.
Task-number: QTBUG-39958
Change-Id: I6d7c3274c5db6a831a169615518fcdb4d926db70
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
When setting a new screen, the code calls QWindow::destroy(), which
recursively destroys all child windows. It then calls create() on the
top-level window, leaving child windows destroyed. This causes crashes
if you have embedded native widgets.
Task-number: QTBUG-40817
Change-Id: Iaace2589f48bbfd5faaf5ff95357ff43b310504a
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
On iOS 8, the value 0 is returned as a kCFNumberIntType.
The code still works - CFNumberGetValue converts it
to a 0.0 double.
Change-Id: Ic50900b22e4fa19ad1481e8e0e293559bbfd8cd2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
This is a follow-up to 4c6ebe5f9e.
Crash was still 100% reproducible for me with the previous fix.
Task-number: QTBUG-40957
Change-Id: Ie59cfe4f1fc746251fe06ba96369738098b2a35f
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
The screen pointer is usually only used to get the Display, which normally
doesn't change anyway.
Task-number: QTBUG-39996
Change-Id: Ie35f02fc9330647897a9f081afb8c9ce550eed2a
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
This reverts commit 3a84d92f57
because it caused a regression with certain fonts on Windows that
have divided information about writing system support in unicode
ranges and codepage ranges.
The original commit fixed a problem on Android where one
of the fonts had an entry for Arabic in its codepage range but
no glyphs for this script. This issue has been fixed in a different
way now, by 0b87f4f6c9 which makes
fallback fonts work properly, so the commit is no longer needed
to fix said bug.
[ChangeLog][Fonts] Fixed regression in font families returned by
QFontDatabase::families() for certain writing systems.
Task-number: QTBUG-39846
Change-Id: I3077b1e618b21680549abc1734cb6df6e264387e
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
The scan thread can take an indeterminate amount of time, often longer
than the 5 seconds we had previously waited. Since this destructor is
only called when the application quits, it's ok that some resources may
be lost.
Task-number: QTBUG-36000
Change-Id: Ib184156b5a23c39ea4f7937a26ecb099554bd4de
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Qt Quick does a processEvents() at shutdown. On some versions of
Android, this can trigger a getTextAfterCursor() after
QGuiApplication shutdown. This patch still has a theoretical
race condition, but should reduce the crash probablity to
practically zero.
[ChangeLog][Android] Fixed bug on some devices where the application
would crash at shutdown if the virtual keyboard was open.
Task-number: QTBUG-40957
Change-Id: Iefcc10a77e3d506c32ea151c27a3e87a7be40e68
Reviewed-by: BogDan Vatra <bogdan@kde.org>
When no objectName is set, this will give at least some information,
other than the memory address of the current instance.
Change-Id: Iae452c0e9fe38f0aab35094ddf0edc0fd6b28c20
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
HITheme renders the focus ring in a way that diminishes contrast
on the focused button edges. The same issue seems to affect
combo boxes, check boxes, and radio buttons.
We refactor the code that was used to draw CE_FocusFrame into
qt_drawFocusRingOnPath(). We use it to render our own path for
the push button contour. This should also allow us to implement
the focus ring animation in the future.
As a side note, notice how the square button part (kThemeBevelButton)
is a complete joke. Not only we impose the wrong button kind and
let HITheme do what it can with it, but we also prevent ourselves
from using it by never adding padding for the focus ring.
Hopefully, we can fix this whole button sizing and padding mess
in 5.5 or 6.0, whatever breaks less apps around.
Task-number: QTBUG-40833
Change-Id: Ib9e7829d99b38dc926c55b31c3d6d5d32b691867
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Setting it initially to 0 is very important, otherwise we will
do a glDeleteTextures with the undefined value.
The result sometimes goes unnoticed and sometimes causes bizarre
issues: For example in the 'textures' example one face of one cube
out of the six did go blank from time to time since the corresponding
texture was deleted by the backingstore.
Change-Id: Iebf68e20b2af426c979980d8bc4449db2b98f2f0
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
A device removed very fast after being inserted might disappear while
we are still seting it up. We must therefore check if we indeed still
get a matching device
Task-number: QTBUG-40820
Change-Id: I4372fb1932264e5799f37cea0d016795e28ebed6
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
The selected tab text color should be white except when the
window is not active. Also, no text shadow should be rendered
in any case. Finally, there's no need to move the tab shape up
anymore.
Task-number: QTBUG-40833
Change-Id: Ibb35f0bb7a12fb005202fd8c082eb9bb19645b2b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
The default button has different text color on OS X 10.10, and
doesn't pulsate anymore.
We first make sure we don't start any animation for default buttons.
Then, we set the right text color in the attached palette, which
implies making a copy of the style option object. This increases the
size of this patch but keeps things sane. (It's also more concise than
the QGtkStyle approach that consists on duplicating QCommonstyle's
code for rendering CE_PushButtonLabel).
Task-number: QTBUG-40833
Change-Id: Ifac118bb607eec17400c6ae42342a223a40843b4
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
The class name scheme can be separated by '/' or '.', if both formats
where used we would end-up caching those classes twice.
Change-Id: I3ae69694d6a8616bbaadfb3c2d0717fbf9ccb9fc
Reviewed-by: Yoann Lopes <yoann.lopes@digia.com>
The NSScreen API has been observed to a return a
screen list with one mirrored, non-primary screen
when Qt is running as a startup item. Always use
the screen if there's only one screen in the list.
Change-Id: I721e25bb7595599287b97f6528e04060ce5da6c1
Task-id: QTBUG-37878
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
This commit should fix proxy authentication when NTLM is used.
NTLM differs from normal HTTP(S) authentication by having 2 roundtrips
instead of 1, some parts of our code however were not prepared for that.
I've tested this patch with Microsoft Forefront, both with normal
NTLM and with NTLM SSPI (in Windows domain).
I removed an optimization added in 3c3ea9a8, I could not see that behavior
anymore. That commit was the wrong fix in my opinion.
[ChangeLog][QtNetwork] Fix NTLM (SSPI) Proxy Authentication (HTTP/HTTPS)
Task-number: QTBUG-30829
Task-number: QTBUG-35101
Change-Id: Idcc9c0dbf388b011d49f2806e9a6dd55ebc35cec
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Jolla removed the always ask option in the UI, which is the reason
for all this code.
Now, if mobile data is autoconnectable, whether roaming or home, it will
be connected.
Change-Id: I6a86315262e8c4c5551b2b2097389559096f14d5
Reviewed-by: Pasi Sjöholm <pasi.sjoholm@jolla.com>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Was added with 19a39a4 to allow no input context to be created.
Broken by commit 24c10b0. Especially if compose input context didn't
get compiled, the first input context found was loaded.
Also made Xcb integration use compose plugin by default.
Change-Id: I992eaa8b383320e4ab725bb7b79f561f4f841458
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
The xcb auto-repeat checking code checks for queued events on the target
(focused) window. This breaks down if you have a native child widget,
and QKeyEvent::autoRepeat is never true.
Task-number: QTBUG-21500
Change-Id: Ia979edfa8a3afce07a3e1cbaa778541ffb9ce5dc
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
On Android, fullscreen means enabling "immersive mode", which
results in the screen available geometry changing. When restoring
normal mode, oldAvailableGeometry == oldGeometry, which means that
the fullscreen branch would be chosen even though the state is not
fullscreen. By doing the maximized test first, we will default to
non-fullscreen geometry for non-fullscreen windows.
Task-number: QTBUG-39977
Change-Id: Ifc7e8b4de7e96d8c00603ce0cd136b95f58012bb
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
The convert_generic_inline method was not correctly handling the case
where both the conversion methods were passthrough and the last store
is therefore not needed and may trigger an invalid memcpy call.
Change-Id: Ic88780f50e1ff9dedc04b8ff1ab3527dd0c8150c
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
In Qt 5.3.0 a change was added which automatically adapts Common
script to surrounding scripts in accordance with the Unicode tr#24.
This broke *a lot* of cases of font selection because the font
selection algorithm is not prepared for handling characters with
adapted scripts. We need to disable this change for now and redo it
later with patches to font selection to avoid the regressions.
[ChangeLog][Text] Fixed several regressions in font selection when
combining different writing systems in the same text.
Task-number: QTBUG-39930
Task-number: QTBUG-39860
Change-Id: Id02b5ae2403c06542ed5d81e7c4deb2e0c7d816e
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
A mouse device with both missing labels and a wrongly placed label
on the mouse wheel buttons have been spotted.
This patch makes the XInput2 code even more lenient to better match
legacy systems that always assumed button 4 and 5 are mapped that way.
Task-number: QTBUG-40806
Change-Id: I7cc52f3d9c54e15e6f3ddcc2bdeb1bb8e0ac9eca
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Drag'n'drop events were not propagated by a the QWindowContainer to the
embedded QWindow. This patch makes the widget accept the events and
pass them on
Task-number: QTBUG-40603
Change-Id: I97320fbcad27f7c6aa48c95c90bb42dda634764e
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Make sure that the screen geometry is updated before the available
geometry, since Qt uses available geometry change as the trigger
for updating the application.
Task-number: QTBUG-39965
Change-Id: Icb660f2de739367cf1fa99ddfe600f37eb6174eb
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Android does not report the full screen size in display metrics.
However, it does report the correct size for layouts, which we use
to get the available geometry. Since by definition, the available
geometry should always be inside the screen geometry, it is safe to
use the maximum of the two sizes.
Task-number: QTBUG-39977
Change-Id: I78d974f12274ca67eada43f5e1d80e70149efe3f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
It's unclear whether it has to be, but there are a lot of patches floating around
on the net that indicate that Coverty requires this, and the SIOCGIFADDR micro-howto
also NUL-terminates the string.
So who is Qt to differ?
Change-Id: I1aa5a2de47a58b1d9b73556d5a6ddc48b2c40ce3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
kUCCollateDigitsAsNumberMask works only if kUCCollateDigitsOverrideMask
is also set.
Update 0: - test added.
Task-number: QTBUG-40777
Change-Id: I48bfec78f5f8439a51f8d749f0fc4397a72b29f2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Fix fingerpaint example for platforms that don't support touch device
area and pressure by setting default size of drawn ellipse.
Change-Id: I884c688aa8ef98debf24876dbefaa4cff43a86a2
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
X11 and the GL libraries are installed into /usr/local like other
software, and this has been the case for many years.
Change-Id: Ied4d9d61154014db3861bdbd6a5bdbe68e76f878
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
In cases where a cached ftp connection fails to connect, or a file
transfer has failed, we should removed the cached connection. Since qnam
has an idea of a single internal QFtp per full operation, when file
transfers failed previously the cached connection would be reused for
subsequent connections and thus fail.
[ChangeLog][QtNetwork][QNetworkAccessManager] QNetworkAccessManager now
properly handles FTP transfer failures by removing failed cached ftp
connections.
Task-number: QTBUG-40797
Change-Id: Ie090a39ceddd7e58a0d8baf7d01f2a08c70162e5
Reviewed-by: Richard J. Moore <rich@kde.org>
Follow-up to 9de2853a ("Remove automated generation of dwarf index"):
gdb_dwarf_index.prf does not exist anymore, so stop referencing it.
Change-Id: I22464d5b81a50a2f58218d74a424f3a790aa1df0
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Taiwan and mainland China were inverted in the extraTryFontsForFamily
method. This patch fixes it and makes sure to match the rest of the
Chinese LANGIDs.
Task-number: QTBUG-33307
Change-Id: I45048ff5e9c00d20f8e922902701129e80ed459d
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
If the fontdatabase matches a font based on the stretch aka width
then the stretch factor on the font-engine needs to be 100
to avoid the fontengine doing manual stretching.
Without this a font requested with 75 stretch and matched with a font
of 75 stretch would be further condensed 25% by the fontengine.
Change-Id: Ib85ff027420c0ce891b0808dab13d25417d22df1
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
By carrying the styleName through from QFontDef to
bestFoundry and giving it to bestStyle that can use it
we can accurately match fonts based on styleName. This
makes it possible to match styles such as DejaVu Sans
Condensed and Ubuntu Medium.
The example fontsampler is updated so it can actually
sample all the different styles it lists.
Change-Id: I381effc74130311f98794cd07d30be10dee4fe45
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
When painting a slider the QFusionStyle overrides the existing clip
on QPainter thereby causing itself to be painting unclipped.
Changes replace clipping with intersection clipping.
Task-number: QTBUG-40530
Change-Id: I0135928c36ca1d23c906cf82c584ded01720b1cc
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Device specific compiler flags need to go to QMAKE_CFLAGS, so that
they are used also when --force-debug-info is used. Removed separate
_DEBUG and _RELEASE, since the gcc-base provides same defaults.
Change-Id: I6ce0133a1acf419261b7756525185f43581d2a9c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>