| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
The reason is that cocoa looses the first responder when
we raise the fake window inside the MDA area. So we need
to re-set the first responder again
Task-number: 255040
Reviewed-by: Trenton Schulz
|
|
|
|
|
|
|
|
|
|
|
|
| |
both visible and invisible widgets.
This is a quick hack to avoid a crash in Qt when setting a focus on a
visible widget that has invisible parent. Proper fix was committed
into master 1a7da7096bbda17197738061902f4489af234bc0, see it's
description for more details.
Task-number: 254563
Reviewed-by: Thierry Bastian
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On Mac, a widget with a NoFocus policy could still get focus
(if only temporarily) as the result of a native focus event.
In particular, a line edit with a completer should
not lose focus (if only for a brief moment) as a result of the
completer popup being shown. This will for example cause an
item delegate to think that the user has navigated away from
the cell and delete the line edit as a result. This will in turn
cause the completer to access a null pointer.
Reviewed-by: Richard Moe Gustavsen
Task-number: 254456 and 254460
|
|
|
|
|
| |
KDE Bug: https://bugs.kde.org/show_bug.cgi?id=191759
Reviewed-by: Bradley T. Hughes
|
| |
|
|
|
|
|
|
|
|
| |
When QWidget::scroll() is called on a widget with WA_PaintOnScreen,
scroll the dirty region.
Task-number: 254742
Reviewed-by: bnilsen
|
|
|
|
|
|
|
|
|
| |
If a QCursor with a predefined shape is declared static, it could be
destroyed after the application dtor has already cleaned up QCursor
memory.
Task-number: 254467
Reviewed-by: Rhys Weatherley
|
|
|
|
|
|
|
| |
QKeyEvent::standardKey() function.
Task-number: 254074
Reviewed-by: Trust Me
|
|
|
|
|
| |
This broke again. I Need to get a way to automate this, I'll discuss
with QA.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Its the context menu handling code... again.
Problem is, that during execution of translateMouseEvent, the widget
is closed and a modal message box is shown. After that, there's no
widget at globalPos and thus, alienWidget is null.
This patch just adds a null check for alienWidget.
Task-number: 254425
Reviewed-by: mauricek
BT: yes
|
|
|
|
|
|
|
|
|
|
|
| |
There was some strangeness happening here with parents, but the main
problem was the fact that wheel was getting sent to the focusframe and
not to the widget below. However, the focusframe has the "transparent
for mouse events" flag set and wheel events probably should be
transparent as well.
Task-number: 253539
Reviewed-by: Richard Moe Gustavsen
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The invariant that QCocoaWindow's lifetime is contained in a QWidget is
simply not true.
A top-level QWidget gets associated with a QCocoaWindow (which is
reference counted). However, it can be the case that we've destroyed our
QWidget, the link is removed, the window is hidden, but the window still
gets an event. In that case we would crash with an eventual null pointer
access. However, we don't really need to do anything in this case, so
just call super and return.
Task-number: 253402
Reviewed-by: Morten Sørvig
|
|
|
|
|
|
| |
Usually, "the the" is not proper English
Reviewed-By: Thiago Macieira
|
|
|
|
|
|
|
|
|
|
| |
My great metal hack simply needs to hack more and not do the "extra"
assign since I'm doing this through a back door in set attribute. We
probably should have had the brushed metal go via an actual QStyle
subclass instead of through the attribute.
Task-number: 253448
Reviewed-by: ogoffart
|
|
|
|
|
|
|
|
|
| |
Seems like we were not using the correct functions for setting
the max/min size on a cocoa window. The version we used before included
the unified toolbar, which is wrong. The new one does not.
Task-number: 252642
Reviewed-by: Trenton Schulz
|
|
|
|
|
|
|
|
|
|
|
| |
view was disabled.
A bug in Commit d5c018f7b014ab794e49d6e1f24e02233555847d prevented any
widget from having focus when QT_NO_GRAPHICSVIEW was defined.
This patch fixes the bug.
Reviewed-by: bnilsen
Task-number: 249589
|
|
|
|
|
|
|
|
|
|
| |
Seems like some old legacy code was left behind when sheets behaved as
application modal. This is not the case anymore, so this patch just
removes the special case code for enforcing the old behaviour, and let
carbon do the correct thing instead.
Task-number: 252379
Reviewed-by: Trenton Schulz
|
|
|
|
|
|
|
|
|
| |
For a QGraphicsWidget w, a shortcut with Qt::WidgetWithChildren context would
trigger even if w did not have focus (provided no other widgets in the view
had focus).
Reviewed-by: andreas
Task-number: 250119
|
|
|
|
|
|
|
| |
Explained the role of the key attribute.
Task-number:246839
Rev-by: Richard Moe Gustavsen
|
|
|
|
|
|
|
|
|
| |
When building docs for the mac, qdoc comments for functions defined
in the .h file were not found in any of the .cpp files in the mac
package because they were in the x11 or windows .cpp file. So I
moved them to a .cpp file that is in all the packages.
Task-number: 252496 252492
|
|
|
|
|
|
|
|
|
| |
We must tell the system that we want to intercept the back key on
Windows mobile. Each toplevel widget that needs correct back key
behaviour needs to have a menu bar. Why? Ask Microsoft...
Task-number: 248846
Reviewed-by: thartman
|
|
|
|
|
|
|
|
|
| |
When building docs for the mac, qdoc comments for functions defined
in the .h file were not found in any of the .cpp files in the mac
package because they were in the x11 or windows .cpp file. So I
moved them to a .cpp file that is in all the packages.
Task-number: 252496 252492
|
|
|
|
|
|
|
| |
Fixes 245347 again and does not trigger 252319
Task-number: 245347
Reviewed-by: Maurice
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The crash only occurred on Windows and X11 when running with
-graphicssystem raster. The reason is that the actual paint device
in QRasterPaintEngine::begin() is changed to pixmap->data->buffer(),
which means QPaintEngine::paintDevice() returns something else than
what it was told to paint on (see cb0c899b56b84154f69ddc545991bc6ded96ab01)
The root of the problem, however, was that we used a weird condition
(painter->worldMatrixEnabled(), added in 345072b9 for Qt 4.4) to find
the target device. We did that because the shared painter was completely
different in 4.4. We refactored it in 4.5.0, and we can only trust
QPaintEngine::paintDevice to be the target device.
Auto-test included.
Task-number: 252837
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
|
|
|
| |
We were registering the types each time drag and drop was enabled, which
caused slowdowns when for example switching between the Edit and Debug
modes in QtCreator.
Instead, register the types on first enable and also when the custom types
change. Add check to draggingEntered() that disables the drag if
WA_DropSiteRegistered is false.
Reviewed-by: nrc
|
|
|
|
|
|
|
|
|
|
| |
The problem is that the mouse event was redirected to the active
pop-up, while it should have been redirected to the widget under
the mouse under the active popup. This patch does the correct
redirection
Task-number: 252259
Reviewed-by: Trenton Schulz
|
|
|
|
|
|
|
|
|
|
|
| |
There was code for updating the size constrains inside
setConstraints_sys. This is now added. Factored out the code that
does this into a function, and since we never applied size constraines
on a window upon creation, I also added an extra call from that
code part
Task-number: 219695
Reviewed-by: Trenton Schulz
|
|
|
|
|
|
|
|
| |
Instead instigate the quit by calling QApplication::quit(), using the code
that was already in place. This allows QApplication::exec() to return normally
and prevents resrouce leaks for objects created on the stack in main().
Reviewed-by: nrc
|
|
|
|
|
|
|
|
|
|
|
| |
embedded somewhere.
If a widget is embedded to non-Qt window on Windows, then we should still clear
the focus whenever we receive WM_KILLFOCUS since we won't get WM_ACTIVATEAPP in
this case. This is an addition to 6ed196051d0f19bfe2d045eaf12f5f5ca30670d0
Task-number: 251259
Reviewed-by: Thierry
|
|
|
|
|
|
|
|
| |
Got a case somehow with a timestamp of the mouse event that is less than
the timestamp we already had, so we need to make sure time only goes
forward.
Reviewed-by: Brad
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In general, Cocoa handles the the Apple Events for us. However, this is
time between creating the NSApplication and Cocoa has set everything up,
usually after the event loop is running. This means that until that
time, the events are dropped on the floor :-/. The workaround is to use
the same handler that we use for Carbon, but to only have it enabled for
until Cocoa is ready to handle things. This will result in not stepping
on the toes when used in a plugin (if it does, we can conditionalize
it).
Task-number: 252795
Reviewed-by: Richard Moe Gustavsen
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The problem was that we didn't take the painter's clip into account
when setting the system viewport ("hard clip"). We only used the system
clip, but we have to use system clip + painter clip, which is the
current engine clip. Unfortunately, we have to calculate it again
since there's no cross-platform way of retrieving it.
This was only a problem with Qt::(Replace|No)Clip, since we
in all other cases combine the old clip with the new one.
(Uber cool) auto test included.
Task-number: 250482
Reviewed-by: Samuel
|
|
|
|
|
|
|
| |
An item is not deleted when removed from the index. The remaining items get a new index. I changed deleted to removed.
Tasknumber: 252547
Rev-by: janarve
|
|
|
|
|
|
|
|
| |
Argh! Copy and paste is evil, not only was the test was wrong, We sent
the event twice and the second time we sent the wrong value.
Task-number: 250668
Reviewed-by: Morten Sørvig
|
|
|
|
|
|
|
|
|
|
|
|
| |
The test fails because, in cocoa, when resizing a window to zero (either
w or h), cocoa will also move the window up in the corner (!). So the
fix is to issue an extra move back to it's true location after the
resize. The faulty cocoa move is issued inside the resize callback, so
we choose to not update the window location anymore from a pure resize
callback.
Task-number: 251895
Reviewed-by: Trenton Schulz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QGLWidget does not support partial updates unless the context is
single buffered and auto-fill background is disabled. The problem
was that QPaintEvent::region() returned the requested update region
without taking into account the limitation of QGLWidget. If QGLWidget
doesn't support partial updates, it means everything has to be updated,
and QPaintEvent::region() must return the whole widget rect.
Auto test included.
Task-number: 241785
Reviewed-by: Trond
|
|
|
|
|
|
|
|
| |
There are different types depending on Carbon and Cocoa, and it is
probably helpful to point that out.
Task-number: 251001
Reviewed-by: Kavindra
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
an untransformed painter
When passing a painter to QWidget::render, we use the
painter->paintEngine()->systemClip() as the "system viewport",
i.e. all painting triggered by render() should be limited to
this area. The only way to achieve this is by always ensuring the
system clip is clipped to the same area (systemClip &= systemViewport).
The problem however, was that we only did this for transformed
painters. We must of course always do it when there's a systemViewport
set, regardless of whether the painter is transformed or not.
Auto test included.
Task-number: 248852
Reviewed-by: Trond
|
|
|
|
|
|
|
|
|
|
|
| |
In the updated examples, the drag operation is changed in the drop-event
handler, which was not handled correctly in the Cocoa. This is now
supported for drag and drop from same application. If the drop was to
another application, the drag will return the result from the last
drag-move event.
Task-number: 252103
Reviewed-by: nrc
|
|
|
|
|
| |
This reverts commit 99d243860548d6be8a68dfd027c51530351d12cb.
Needed because of commit b51dd5a7b328291c5dbda540ce228e7d867662cb.
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit 031adeaf42ddaef8d01338f6c59ba97170be5d53.
The patch had some unforeseen side-effects for Creator.
It may also affect other existing applications in a similar way.
For now, this behavior (eating key sequences for disabled shortcuts)
should be achieved using a local workaround in creator.
Reviewed-by: mariusSO
Task-number: 251246
|
|
|
|
|
|
|
|
| |
Since the raster engine always assumes RGB layout in a QImage, we
can't support this out of the box.
Task-number: 248720
Reviewed-by: Samuel
|
|
|
|
|
|
|
|
|
|
| |
This is not strange since we never did anything to limit a resize within
the max min boundries. This patch factores out the code that ensures
this into a private function that is called both as a reaction to a
resize event, but also if resize is done programatically.
Task-number: 251893
Reviewed-by: Trenton Schulz
|
|
|
|
| |
Reviewed-by: TrustMe
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Qt::NoFocusReason is used when Qt temporarily moves the focus to the
QMenuBar while switching from one widget to another.
While this did not result in a QFocusEvent, it did result in emitting
the QApplication::focusChanged signal. This in turn caused a slowness in
Qt Creator, since it wanted to update the current context and find
filter.
The fix here makes sure the focusChanged signal is not emitted when the
focus reason is Qt::NoFocusReason, since these focus changes are not
interesting for the application.
Reviewed-by: mae
|
|
|
|
| |
Reviewed-by: Thiago
|
|
|
|
|
|
| |
The #ifdef was typed wrong.
Reviewed-by: Prasanth Ullattil
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A disabled QShortcut should eat its key sequence even for complex
sequences like "Ctrl-E 1". For example, a line edit with such a
shortcut should not display 1 after typing "Ctrl-E" and then "1".
The patch achieves this essentially by moving more of the
decision making (of whether to eat the key secuence) from
shortcutmap.cpp to qhortcut.cpp.
Moreover, an invisible QAction should not eat any of its key sequences
(primary nor alternates). In the example above, the line edit
would display 1 when typing this sequence for an invisible action.
The patch achieves this by temporarily unregistering all of the
action's shortcuts while the action is invisible.
Reviewed-by: mariusSO
Task-number: 251246
|
| |
|
|
|
|
|
|
|
|
| |
If we don't have a sheet, we need to recreate it in Cocoa.
Unfortunately, we neglected to reassign the NSWindow pointer in that
case, so the program would crash.
Reviewed-by: Richard Moe Gustavsen
|