Commit Graph

1719 Commits (bc1fb206bbff765310cbf2c122e3617c94efced0)

Author SHA1 Message Date
Irfan Omair ba75f60449 Set StyleMask to NSBorderless if FramelessWindowHint is set.
Task-number: QTBUG-29815

Change-Id: Idb93843a2ad8332c81587c245fe73aa2bf5cc661
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-03-14 07:31:00 +01:00
Stephen Kelly 2a388e503f Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2013-03-13 23:35:18 +01:00
Shawn Rutledge 846cf1a13f Fix sluggish resizing for opengl windows on X11
Disable sync protocol for OpenGL surfaces in the XCB plugin.

Task-number: QTBUG-29304
Change-Id: I4cb47b04637e15e012758d3b0840abd13d27df69
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-03-13 19:11:12 +01:00
Frederik Gladhorn 72e5124b85 Merge remote-tracking branch 'origin/release' into stable
Conflicts:
	tests/auto/opengl/qgl/tst_qgl.cpp

Change-Id: I3c601351c984c1f4b00478d3c47ac9eeb021e892
2013-03-08 16:11:33 +01:00
Gabriel de Dietrich 083c8ce840 Cocoa: Pick right rectangle when rendering window mask
Ususally, the object setting the mask knows better than the window,
since the latter may not have had its size set by then.

Task-number: QTBUG-29856
Change-Id: Ib24d452a98a76b57f5d9236d5fa1ba4755cf0840
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-03-06 20:07:41 +01:00
Gabriel de Dietrich 544f1cbe27 Cocoa: Fix shadowless popups
The window shadow was never invalidated after setting the transparency
mask. We now do it right after the first draw after setting the mask.

Change-Id: Icc5c6002d25abeb25d58ee4d1f868e928121ae9b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-03-06 20:07:41 +01:00
Gabriel de Dietrich 4520cb9865 Mac: Fix inactive window appearance
The inactive palette values were set to be the same as the disabled
palettte whereas, on Mac, they are the same as the active palette.

Also, some of the logic to draw inactive looking widgets was a bit
dubious. Add to that the fact that HITheme is not responding to
kThemeStateInactive as expected, or so it looks.

Task-number: QTBUG-29860
Change-Id: I5d67765a9411a40449a8a4440276b2fad167f7c4
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-03-06 17:24:31 +01:00
Morten Johan Sørvig 7ee4ab1463 Cocoa: Improve expose event handling.
Send expose events on window and view show/hide
notifications. Implement QCocoaWindow::isExposed.

Close all windows on quit. This allows sending (de-)expose
events for those windows while the event loop is running.

Remove the flushWindowSystemEvents call in setVisible.
This function is called from application code. Flushing
window system events here is wrong since it can lead
to events being processed in the middle of the user
code call stack. flushWindowSystemEvents should only
be called as a result of (native) window system activity.

Skip one of the tst_qtooltip tests which becomes unstable/
fails in the CI system as a result of this change.

Task-number: QTBUG-29583
Change-Id: I3fb8b3f77e2b2e19dfeafba5d7dfcef602891d37
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-03-06 11:43:22 +01:00
Fabian Bumberger 15768381ad Delete the reference of the QNX screen in child windows on deletion
Change-Id: Ic3e5deaeabe282ff44400aba80f8746067473030
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-03-05 21:56:52 +01:00
Irfan Omair d903b2aac4 Avoid setting initialNameFilter when mode is Directory
Task-number: QTBUG-30001

Change-Id: I5e854ce99137bd9d718cb2052f2c8dc1fb92b78f
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-03-05 08:06:22 +01:00
Friedemann Kleint bc741b867c Windows: Repaint when switching off layered windows by opacity.
Task-number: QTBUG-29010

Change-Id: I565a800e5a5b4870bd3ee2e3fb3f55523334425f
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-03-04 17:41:15 +01:00
Morten Johan Sørvig 8238acccf0 Cocoa: Don't send duplicate mouse move events.
We now use tracking regions to generate move events,
setAcceptsMouseMoveEvents will generate duplicates.

See also commit b077e67f.

Change-Id: I750e33766e66693ce899380c5cd9715baa9aa241
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-03-01 13:05:11 +01:00
Irfan Omair 3ef2daf6ce Fix Alt key capture issue with mouseWheel
Task-number: QTBUG-29820

Change-Id: I8932b7bcadd6495debda6cdf0a576f83a0ccad47
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-03-01 09:01:45 +01:00
Rafael Roquetto 9fbecf11c7 QNX: QQnxCursor implementation.
Implementation of QQnxCursor, a QPlatformCursor subclass. Due to the lack of a
proper cursor API from the underlying OS, this class only caches the current
cursor position to make sure that the QCursor class works properly.

This is a backport of 290ed7f8fa.
At the time there weren't any known bugs regarding this, so it was committed
to "dev" branch as a feature.

Now we needed it in "stable", otherwise menus don't work correctly, due to
QCursor::pos() being bogus.

Change-Id: I5a4217c92a0aaed0b22b45ca3c4e0fad882e810f
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-02-28 17:31:12 +01:00
Friedemann Kleint 42507173bd Fix automatic hiding/restoring of transient children.
Task-number: QTBUG-28408

Change-Id: I31382c4edc213961dfb132af3bf5202e178e7a57
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-02-28 10:36:22 +01:00
Fawzi Mohamed a243251091 qcocamenubar: force update after destructor
Task-number: QTCREATORBUG-8785
Change-Id: I1e782cab36f4fea331561f016ea67a73deb63c37
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-02-28 10:36:22 +01:00
Friedemann Kleint e265a1a4bd Disable maximize button for fixed-size windows.
Task-number: QTBUG-28407

Change-Id: I5bab7fcf4ad3ecc7008ef02b9d3575d75893895d
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2013-02-27 20:17:25 +01:00
Friedemann Kleint 17501e09b9 Fix warnings about extra tokens after preprocessor directive.
Change-Id: I7f18ec42f6f6dd697947654384767c2c6b211498
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2013-02-25 21:24:37 +01:00
Morten Johan Sørvig 47e12eafdd Cocoa: Make grabWindow work on retina displays.
Not taking the devicePixelRatio into account causes
us to either grab a quarter of the screen or do a
low-resolution grab.

Change-Id: Ie6b681e3a089f17b63554c8158bb471a14963d7a
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-02-25 21:24:37 +01:00
Fabian Bumberger 0c8487156e QNX post an expose event when the window is hidden
When the window is hidden, an expose event has to be be posted. This is e.g. needed by the qquickwindow. A exposeEvent calles the exposureChanged
function of the window manager there.

Change-Id: I9d891e07f81192dcd6674743620319c44da19c48
Reviewed-by: Wolfgang Bremer <wbremer@rim.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-02-25 18:44:07 +01:00
Morten Johan Sørvig 22bda3360e Set correct image format for non-alpha windows.
Use QImage::Format_RGB32.

Change-Id: I4be6b6271034be8dad5cfcb85f89fe33a817b78f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-25 07:43:14 +01:00
Shawn Rutledge 153d613353 Transient QWindows centered; default-constructed geometry
Default-constructed geometry does not mean put the window at 0,0,
and it does not mean center the window on the screen: it means
let the window manager position the window.  If the window is
explicitly positioned at 0,0 though, that is a higher priority
than the transient hint; without this change, the transientFor property
had no effect.  On X11, transient means use center "gravity" to
make the transient window exactly centered.  But the user can still
override the geometry of a transient window, as with any window.
On OSX and Windows, neither transient window functionality nor smart
initial positioning are provided, so a window with no position set
will be centered on the screen, and a transient window will be put
at the center of its transientParent.

Change-Id: I4f5e37480eef5d105e45ffd60362a57f13ec55f5
Task-number: QTBUG-26903
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-02-24 20:41:05 +01:00
Morten Johan Sørvig cf885ee836 Cocoa: Compile with Qt in a namespace.
Task-number: QTBUG-29710

Change-Id: I28a4c213b78723aa369c7e00167401ec643155e6
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-02-23 13:38:56 +01:00
Morten Johan Sørvig d9b04f8575 QCococaWindow: Add NSView hosting support.
Add and export QCCoocaView::setContentView(NSView *),
making it possible to host a foreign NSView in a QWindow.

Change QCoocaWindow::m_contentView to be a generic
NSView, instead of a QNSView. Add a separate m_qtView
for code paths that expect a QNSView.

Change-Id: I47935b69705c70ea7efbb03d6d4bf489947c3487
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-02-23 08:03:03 +01:00
Lorn Potter d7dfab8cac Ofono also changed the context API. This updates it to work
Change-Id: Ic3a055cb6a56be89b48a9ac77776217f910dee44
Reviewed-by: Lorn Potter <lorn.potter@jollamobile.com>
2013-02-23 02:26:27 +01:00
Fredrik Höglund 4b54c55305 Fix OpenGL context creation in the XCB plugin
Make it possible to create a core context with OpenGL implementations
that don't implement the compatibility profile or the
GL_ARB_compatibility extension.

Qt was effectively clamping the OpenGL version to 3.0 by assuming that
the highest supported backwards compatible version is also the
highest supported core version.

Since there is no way to check if the implementation supports a
context with a given set of attributes without trying to create the
context, we have to try every known OpenGL version until we find one
that's supported.

Note that this commit does not fix similar breakage on other platforms.

Change-Id: I9616762b059db9e6182f853ab7f24ff44dc7d529
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-23 00:29:13 +01:00
Morten Johan Sørvig 3dc634be36 Cocoa: Add basic support for Qt::SubWindow.
This allows embedding a QWindow in a foreign NSView
hierarchy.

Don't create a NSWindow. Add code paths for handling
the embedded window case. Avoid changing the other
window cases. There is potential for merging some of
these cases but that can be done at a later point in
time.

Change-Id: I54c7b4eb82fad268f90ea6b716fc650ae31bd3af
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-02-22 21:25:45 +01:00
Indrajit Tapadar f6c5452d97 Fix for url encoding in QDesktopServices::openUrl().
URLs containing spaces (encoded) couldnt be opened using QDesktopServices::openUrl() -method.
This is a regression as it works for 4.8,

Using url.toEncoded() instead of url.toString() which removed percent encoding.

The NSUrl uses RFC 2396 for parsing, and according to the documentation,
of 2.4. Escape Sequences - Data must be escaped if it does not have a
representation using an unreserved character;
And as a space does not have a representation using unreserved character it needs to be
escaped.

Example: Using this url, http://www.google.com/search?q=testme%20withspace
url.toString() returns  "http://www.google.com/search?q=testme withspace"
and url.toEncoded() returns, http://www.google.com/search?q=testme%20withspace" which is
also the expected result.

Task-number: QTBUG-29124
Change-Id: Ieed3d4cfb689b9311f6cf21e5098a1e70256ab03
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-02-20 10:35:23 +01:00
Andy Shaw e47c2744e6 Clean up the cached cursors inside the destructor of QCocoaCursor
Change-Id: I4e1222832efa29680b4e658a5c9109641599a2b9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-02-20 08:38:39 +01:00
Andy Shaw 79498af6e4 Fix the default handling of cursor shape when there is no standard one
When the cursor specified is a bitmap one we cannot cache it based on
the shape as the pixmap set on the cursor may be different. Therefore
we should always create a new cursor in this instance.

Change-Id: I2c201590ff632490d76c1b423908ae32aa584eb6
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-02-20 08:38:39 +01:00
Gunnar Sletta 3f99983e76 Fix focus handling of native child widgets in xcb.
Change-Id: If4d596195624011142bff6853849a23064e478df
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
(cherry picked from commit fc663b5f9a)
2013-02-19 21:21:27 +01:00
Sergio Martins c02a2f8e76 QNX: Don't crash with 0 by 0 sized windows
In the rare event of an invalid sized window, the application crashes
because libscreen doesn't like creating empty buffers.

Not creating the buffers at all would also be a solution, if we didn't
have QPainter crashes due do null paint devices.

Change-Id: I561d0082576b6226dd52129f9640952ba46273c8
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-02-19 17:10:27 +01:00
Sergio Martins 8afd7b4675 QNX: Print the buffer size before crashing, for debug purposes.
Change-Id: I2d423ee3717bb09b7bb2c63f645e5315be1fa611
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-02-18 19:56:45 +01:00
Fredrik Höglund cb1b451cd1 Fix the GL_CONTEXT_FLAG_DEBUG_BIT check
Use the correct enum. GL_CONTEXT_FLAG_DEBUG_BIT does not have the same
value as GLX/WGL_CONTEXT_DEBUG_BIT_ARB.

Change-Id: I7d90da54ca1ff526c8b00669b486a68424fc8dfb
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-15 17:48:36 +01:00
Josh Faust 02a1243dda Fix globalPos() in scrollwheel events on OSX.
The window position was getting passed as both the window
and global positions.

QTBUG-29543

Change-Id: I24746675e5ba45adbd054742877bd2fe783d6608
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-02-14 13:40:24 +01:00
Fredrik Höglund 69701cb8c4 Fix the GL_CONTEXT_PROFILE_MASK check
A bit mask can have more than one bit set, so we can't use a switch
statement here. Also use the correct enums, and make sure that the
profile is set to QSurfaceFormat::NoProfile when the OpenGL version
is less than 3.2.

Change-Id: I6d2c4e35d4fb3d87fd47c9724cb415f8619a7b95
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-13 21:35:24 +01:00
Fredrik Höglund 15177905ff Fix the GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT check
Change-Id: I83dc92085c81b8b0c71502ea71878b5e85cbbacc
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-13 18:42:38 +01:00
Fredrik Höglund fa167d2afa Check for GLX_ARB_create_context_profile before specifying a profile
Change-Id: Idc4982c039f8a6a304d9ce5ce6736d518fb0ef00
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-13 18:42:38 +01:00
Fredrik Höglund 82eaff97d1 Don't ignore QSurfaceFormat::Options in the XCB plugin
The XCB plugin requested a forward-compatible context regardless
of whether QSurfaceFormat::DeprecatedFunctions was set, and also
ignored the QSurfaceFormat::DebugContext option.

Change-Id: I81c737447b554b3b6f61c2725bce7583e0e887ab
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-02-12 22:46:54 +01:00
Oleg Shparber 3a2276c6f3 QNX: Fix QInputMethod::keyboardRectangleChanged() signal
Change-Id: Iad3ee07ba85854d2eb0cf36710643b75993bf61c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-02-12 17:56:10 +01:00
Sergio Martins 3fb356f531 QNX: Fix qFatal() statements.
"QQNXQBBWindow" doesn't make sense.
Change-Id: I0e56d5be4a9bb7a0336f71ea3348621be730dee1
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-02-12 17:56:10 +01:00
Morten Johan Sørvig 784b965559 Cocoa: Export QImage <-> CGImage conversion funcs.
For implementing to/fromMacCGImageRef in QtMacExtras.

These do not depend on internal Qt state. The main
reason for exporting them is to keep the implementation
in one place to ease maintenance.

Refactor qt_mac_cg_context to support QImage.
Add qt_mac_toQImage.

Change-Id: Ia9c226ed52d087b2c6b47aa8210ed8f2645b9cf2
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-02-12 07:50:03 +01:00
Morten Johan Sørvig 5a46251de3 Fix devicePixelRatio getter for embedded QWindows.
m_nsWindow is not set for non-toplevel QWindows,
causing devicePixelRatio to always return 1.

Use [m_contentView window] instead.

Change-Id: I6689a70812c9484f103b5e706fe4c1b76406b750
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-02-11 08:35:03 +01:00
Oleg Shparber 6b8d0b3092 QNX: Add support for QInputMethod::keyboardRectangle()
Change-Id: Ie23aa06fed5778e228abf0f35fc1136a86661771
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-02-08 23:18:06 +01:00
Gabriel de Dietrich 2be39c6832 Cocoa: Make tool window receive mouse events also when its parent is modal
We need to check for the Cocoa window class because of the way
currently QDockWidget works.

Change-Id: If69c7327c168518614fe884defa79deb358e260d
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-02-08 15:24:13 +01:00
Friedemann Kleint 67bed5616b Fix broken fading of menus.
Breakage introduced by   b3820b12fb
Set layered in backing store for frameless windows as was before.

Task-number: QTBUG-29010
Task-number: QTBUG-28531
Change-Id: I13f8f0d58d71b6612430c7048056f672e23b8095
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-02-08 15:24:13 +01:00
Friedemann Kleint 391b5a465e Do not force top level flag on embedded windows.
Regression introduced by cd7ba89a07.

Task-number: QTBUG-29564
Task-number: QTBUG-28872
Change-Id: I6402a971af89321d18afb42dc25e54b1c88df129
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-02-08 15:24:13 +01:00
Bjoern Breitmeyer b06363886d Fixed QT_NO_DRAGANDDROP build for the windows plugin
Change-Id: Ieb987105bdcc08118a1b83cf3b74a93fa402264a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-02-07 18:22:08 +01:00
Bjoern Breitmeyer e74bf9497c Fixed QT_NO_CURSOR build for windows/CE plugin.
Change-Id: I02f13b2af2d8c285fbca46917ff77826720857be
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-02-07 16:10:47 +01:00
Bjoern Breitmeyer d45b40007f Removed User32.dll usage on WINCE
Change-Id: Id65dc0a9a829d66d0a2cc7bd40c5ba3190d9ecba
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Janne Anttila <janne.anttila@digia.com>
2013-02-07 16:10:47 +01:00