Merge lp://staging/~dandrader/unity8/miral into lp://staging/unity8
- miral
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Lukáš Tinkl |
Approved revision: | no longer in the source branch. |
Merged at revision: | 2744 |
Proposed branch: | lp://staging/~dandrader/unity8/miral |
Merge into: | lp://staging/unity8 |
Prerequisite: | lp://staging/~dandrader/unity8/fixMakeTryApplicationWindow |
Diff against target: |
11323 lines (+5093/-2297) 127 files modified
CMakeLists.txt (+14/-1) data/com.canonical.Unity8.gschema.xml (+2/-2) debian/changelog (+33/-0) debian/control (+5/-3) plugins/Greeter/Unity/Launcher/CMakeLists.txt (+1/-1) plugins/Greeter/Unity/Launcher/launcheritem.cpp (+13/-0) plugins/Greeter/Unity/Launcher/launcheritem.h (+3/-0) plugins/LightDM/FullLightDM/CMakeLists.txt (+5/-1) plugins/Unity/Indicators/CMakeLists.txt (+3/-0) plugins/Unity/Launcher/CMakeLists.txt (+4/-1) plugins/Unity/Launcher/appdrawermodel.cpp (+62/-0) plugins/Unity/Launcher/appdrawermodel.h (+33/-0) plugins/Unity/Launcher/launcheritem.cpp (+13/-0) plugins/Unity/Launcher/launcheritem.h (+4/-0) plugins/Unity/Launcher/launchermodel.cpp (+6/-37) plugins/Unity/Launcher/launchermodel.h (+0/-14) plugins/Unity/Launcher/plugin.cpp (+2/-1) plugins/Unity/Launcher/ualwrapper.cpp (+73/-0) plugins/Unity/Launcher/ualwrapper.h (+35/-0) plugins/Utils/CMakeLists.txt (+4/-0) plugins/Utils/ElapsedTimer.h (+1/-1) plugins/Utils/Timer.cpp (+5/-2) plugins/Utils/Timer.h (+5/-6) plugins/Utils/appdrawerproxymodel.cpp (+189/-0) plugins/Utils/appdrawerproxymodel.h (+87/-0) plugins/Utils/globalfunctions.cpp (+5/-0) plugins/Utils/globalfunctions.h (+2/-0) plugins/Utils/plugin.cpp (+2/-0) plugins/Utils/windowstatestorage.cpp (+23/-0) plugins/Utils/windowstatestorage.h (+5/-0) plugins/WindowManager/CMakeLists.txt (+3/-1) plugins/WindowManager/TopLevelSurfaceList.cpp (+0/-481) plugins/WindowManager/TopLevelSurfaceList.h (+0/-223) plugins/WindowManager/TopLevelWindowModel.cpp (+668/-0) plugins/WindowManager/TopLevelWindowModel.h (+260/-0) plugins/WindowManager/Window.cpp (+237/-0) plugins/WindowManager/Window.h (+161/-0) plugins/WindowManager/WindowManagerPlugin.cpp (+5/-2) po/unity8.pot (+80/-43) qml/Components/InputMethod.qml (+5/-4) qml/Components/KeyboardShortcutsOverlay.qml (+13/-0) qml/Components/KeymapSwitcher.qml (+4/-1) qml/Components/VirtualTouchPad.qml (+269/-1) qml/Dash/Previews/PreviewAudioPlayback.qml (+1/-0) qml/DisabledScreenNotice.qml (+6/-58) qml/Greeter/Greeter.qml (+1/-5) qml/Greeter/LoginList.qml (+1/-1) qml/Greeter/WideView.qml (+7/-2) qml/Launcher/BackgroundBlur.qml (+81/-0) qml/Launcher/Drawer.qml (+306/-0) qml/Launcher/DrawerGridView.qml (+47/-0) qml/Launcher/DrawerListView.qml (+32/-0) qml/Launcher/Launcher.qml (+182/-34) qml/Launcher/MoreAppsHeader.qml (+46/-0) qml/Panel/Indicators/MenuItemFactory.qml (+22/-1) qml/Shell.qml (+25/-41) qml/Stage/FakeMaximizeDelegate.qml (+7/-7) qml/Stage/MoveHandler.qml (+3/-3) qml/Stage/Spread/WindowedRightEdgeMaths.qml (+19/-4) qml/Stage/Stage.qml (+196/-186) qml/Stage/StageMaths.qml (+2/-7) qml/Stage/StagedFullscreenPolicy.qml (+4/-4) qml/Stage/TopLevelSurfaceRepeater.qml (+0/-67) qml/Stage/WindowControlsOverlay.qml (+1/-1) qml/Stage/WindowResizeArea.qml (+2/-70) qml/Stage/WindowStateSaver.qml (+63/-0) qml/Stage/WindowedFullscreenPolicy.qml (+1/-1) qml/Tutorial/TutorialLeftLong.qml (+1/-1) src/ShellApplication.cpp (+1/-0) tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.cpp (+1/-1) tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp (+23/-23) tests/mocks/QtMultimedia/videooutput.h (+1/-1) tests/mocks/Unity/Application/ApplicationInfo.cpp (+48/-24) tests/mocks/Unity/Application/ApplicationInfo.h (+2/-2) tests/mocks/Unity/Application/ApplicationManager.cpp (+92/-63) tests/mocks/Unity/Application/ApplicationManager.h (+31/-4) tests/mocks/Unity/Application/CMakeLists.txt (+1/-1) tests/mocks/Unity/Application/MirSurface.cpp (+86/-99) tests/mocks/Unity/Application/MirSurface.h (+29/-27) tests/mocks/Unity/Application/MirSurfaceItem.cpp (+4/-4) tests/mocks/Unity/Application/MirSurfaceItem.h (+1/-2) tests/mocks/Unity/Application/MirSurfaceListModel.cpp (+12/-34) tests/mocks/Unity/Application/MirSurfaceListModel.h (+2/-7) tests/mocks/Unity/Application/SurfaceManager.cpp (+172/-26) tests/mocks/Unity/Application/SurfaceManager.h (+28/-10) tests/mocks/Unity/Application/plugin.cpp (+4/-34) tests/mocks/Unity/Launcher/CMakeLists.txt (+5/-1) tests/mocks/Unity/Launcher/MockAppDrawerModel.cpp (+75/-0) tests/mocks/Unity/Launcher/MockAppDrawerModel.h (+32/-0) tests/mocks/Unity/Launcher/MockLauncherItem.cpp (+13/-0) tests/mocks/Unity/Launcher/MockLauncherItem.h (+6/-0) tests/mocks/Unity/Launcher/MockLauncherModel.cpp (+3/-0) tests/mocks/Unity/Launcher/plugin.cpp (+4/-0) tests/mocks/Utils/CMakeLists.txt (+4/-0) tests/mocks/Utils/plugin.cpp (+2/-0) tests/mocks/Utils/windowstatestorage.cpp (+23/-0) tests/mocks/Utils/windowstatestorage.h (+5/-0) tests/plugins/Greeter/Unity/Launcher/CMakeLists.txt (+1/-1) tests/plugins/Unity/Launcher/CMakeLists.txt (+2/-1) tests/plugins/Unity/Launcher/launchermodeltest.cpp (+6/-0) tests/plugins/Utils/WindowInputMonitorTest.cpp (+76/-9) tests/qmltests/CMakeLists.txt (+1/-0) tests/qmltests/Components/tst_VirtualTouchPad.qml (+55/-1) tests/qmltests/Dash/Previews/tst_Preview.qml (+63/-0) tests/qmltests/Dash/tst_Dash.qml (+4/-3) tests/qmltests/Dash/tst_DashShell.qml (+0/-29) tests/qmltests/Launcher/tst_Drawer.qml (+264/-0) tests/qmltests/Launcher/tst_Launcher.qml (+4/-4) tests/qmltests/Panel/Indicators/tst_MenuItemFactory.qml (+6/-1) tests/qmltests/Panel/tst_ActiveCallHint.qml (+16/-2) tests/qmltests/Panel/tst_Panel.qml (+8/-1) tests/qmltests/Stage/ApplicationCheckBox.qml (+1/-1) tests/qmltests/Stage/tst_ApplicationWindow.qml (+10/-10) tests/qmltests/Stage/tst_DesktopStage.qml (+124/-80) tests/qmltests/Stage/tst_PhoneStage.qml (+18/-38) tests/qmltests/Stage/tst_SurfaceContainer.qml (+4/-0) tests/qmltests/Stage/tst_TabletStage.qml (+16/-10) tests/qmltests/Stage/tst_WindowResizeArea.qml (+1/-66) tests/qmltests/Tutorial/tst_Tutorial.qml (+30/-8) tests/qmltests/tst_DisabledScreenNotice.qml (+23/-9) tests/qmltests/tst_OrientedShell.qml (+6/-13) tests/qmltests/tst_Shell.qml (+143/-242) tests/qmltests/tst_ShellWithPin.qml (+18/-75) tests/uqmlscene/CMakeLists.txt (+5/-1) tests/utils/modules/Unity/Test/StageTestCase.qml (+68/-0) tests/utils/modules/Unity/Test/UnityTestCase.qml (+8/-9) tests/utils/modules/Unity/Test/qmldir (+2/-1) |
To merge this branch: | bzr merge lp://staging/~dandrader/unity8/miral |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Unity8 CI Bot | continuous-integration | Needs Fixing | |
Lukáš Tinkl (community) | Approve | ||
Emanuele Antonio Faraone (community) | Approve | ||
Michael Zanetti | Pending | ||
Review via email: mp+312194@code.staging.launchpad.net |
This proposal supersedes a proposal from 2016-11-23.
Commit message
Let the model deal with some window management decisions
eg: which window to focus, whether to change surface state
unity8 requests and reacts to changes in the model instead of applying them
Description of the change
Prereq-archive: ppa:ci-
For the upcoming, miral-powered, qtmir.
One notable introduction is the Window object, which is a sligthly higher level abstraction of a MirSurface (and a drop-in replacement for it) to be used by Stage.qml. Window always exists in a TopLevelWindowModel entry so that QML code no longer has to if(){}else{} for the existence of a MirSurface (because of the splash screen case)
* Are there any related MPs required for this MP to build/function as expected? Please list.
https:/
https:/
It's all in this silo: https:/
* Did you perform an exploratory manual test run of your code change and any related functionality?
Yes.
* If you changed the packaging (debian), did you subscribe the ubuntu-unity team to this MP?
Not applicable
* If you changed the UI, has there been a design review?
Not applicable
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2675
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2697
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2697
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Michael Zanetti (mzanetti) wrote : Posted in a previous version of this proposal | # |
* See a bunch of inline comments
* I think we should not give up on the differntiation between claimFocus() and requestFocus(). One of them says the stage wants to actually focus something *now* while the other indicates that the app requested focus on its own (or perhaps u-a-l did). IMO claimFocus() should not be dropped and still do the raisId() call on the model. requestfocus() instead should end up in the shell, and if the shell is ok with doing so, it should call claimFocus() itself.
* IMO you're exaggerating with the debug messages. unity8.
This has been a code review for the code up until the mocks. Still needs review for tests/mocks and especially in depth testing.
Michael Zanetti (mzanetti) wrote : Posted in a previous version of this proposal | # |
Not yet sure if just an issue in the mocks or not, but this breaks:
- open an app
- click the minimize button in the window decoration
- click the app again in the launcher to restore it
- now click the minimize button again
=> button doesn't work any more
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 18/11/2016 12:29, Michael Zanetti wrote:
> * IMO you're exaggerating with the debug messages. unity8.
Reduced the logging output. Should be the way you prefer now.
Michael Zanetti (mzanetti) wrote : Posted in a previous version of this proposal | # |
- have 3 apps (a, b and c), make them overlap a bit for better visibility
- focus a by clicking it
- focus b by clicking it
- focus c by clicking it
- minimize c
=> a will be focused
expected: after minimizing c, b should be focused
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 18/11/2016 12:29, Michael Zanetti wrote:
> * I think we should not give up on the differntiation between claimFocus() and requestFocus(). One of them says the stage wants to actually focus something*now* while the other indicates that the app requested focus on its own (or perhaps u-a-l did). IMO claimFocus() should not be dropped and still do the raisId() call on the model. requestfocus() instead should end up in the shell, and if the shell is ok with doing so, it should call claimFocus() itself.
What you are explaining effectively is that: leave things as they are
currently with regards to focus. Which means focus lives in unity8 and
miral has no say over it.
The whole point of this miral effort is exactly to move such window
management decisions down to Mir, as dictated by our high-profile
stakeholder.
On the bright side, focus requests made by unity8 should naturally
always be sensible (since it knows the situation pretty well) and
therefore miral should always swiftly comply. So in terms of end
results, those requests will work just like imperative assignments.
Focus is a central piece of window management and if miral is to do
anything useful it has to have a say in it. And we cannot have two
entities making decisions on focus (unity8 and miral) as it will
inevitably be racy and conflictive.
As for the origin of the focus change request (shell vs. application),
it doesn't matter from miral's standpoint. It will comply to either as
long the change is valid and makes sense. Eg.: it should never allow a
window blocked by a child modal dialog to be focused. So it's mostly
sanity checking. I don't see miral ignoring requests on a whim. :)
Besides, having two separate code paths would make unity8 code more
complex. Eg: Having both code that sets surface state and code that
responds to surface state changes. "If surface state change was done in
response my your own set(), do nothing, else, ponder and respond."
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2698
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 18/11/2016 12:29, Michael Zanetti wrote:
>> +int TopLevelWindowM
>> >+{
>> >+ if (candidateId > m_maxId) {
>> >+ return nextFreeId(1);
>> >+ } else {
>> >+ if (indexForId(
>> >+ // it's indeed free
>> >+ return candidateId;
>> >+ } else {
>> >+ return nextFreeId(
>> >+ }
>> >+ }
>> >+}
> In the very unlikely event that we'd run out of free ids, this would crash with a stack overflow. Think it makes sense to write this in a non-recursive manner and perhaps add some way to actually handle failures?
>
If we run out of free ids it's because there's already a bug somewhere.
There's no way there's a valid situation where we would have literally a
million windows lying around.
But a non-recursive version is indeed lighter-weight on resources if it
ever has to traverse a long stretch of taken ids. Done.
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2699
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 18/11/2016 12:29, Michael Zanetti wrote:
>> +QString TopLevelWindowM
>> >+{
>> >+ QString str;
>> >+ for (int i = 0; i < m_windowModel.
>> >+ auto item = m_windowModel.
>> >+
>> >+ QString itemStr = QString(
>> >+ .arg(i)
>> >+ .arg(item.
>> >+ .arg((qintptr)
>> >+ .arg(item.
> it would be slightly more performant if you'd use QString:
>
Done.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 18/11/2016 12:29, Michael Zanetti wrote:
>> +public Q_SLOTS:
>> >+ /**
>> >+ * @brief Returns the surface at the given index
>> >+ *
>> >+ * It will be a nullptr if the application is still starting up and thus hasn't yet created
>> >+ * and drawn into a surface.
>> >+ *
>> >+ * Same as windowAt(
>> >+ */
>> >+ unity::
>> >+
>> >+ /**
>> >+ * @brief Returns the window at the given index
>> >+ *
>> >+ * Will always be valid
>> >+ */
>> >+ Window *windowAt(int index) const;
>> >+
>> >+ /**
>> >+ * @brief Returns the application at the given index
>> >+ */
>> >+ unity::
>> >+
>> >+ /**
>> >+ * @brief Returns the unique id of the element at the given index
>> >+ */
>> >+ int idAt(int index) const;
>> >+
>> >+ /**
>> >+ * @brief Returns the index where the row with the given id is located
>> >+ *
>> >+ * Returns -1 if there's no row with the given id.
>> >+ */
>> >+ int indexForId(int id) const;
> slots with return value are weird. All the above should be public Q_INVOKABLE instead IMO.
Which uglifies the header file. Not great either.
Done.
>
>> >+
>> >+ /**
>> >+ * @brief Raises the row with the given id to the top of the window stack (index == count-1)
>> >+ */
>> >+ void raiseId(int id);
> this makes sense as slot indeed
>
But it's only a slot so it can be called from QML. Made it a Q_INVOKABLE
as well to match the others.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 18/11/2016 12:29, Michael Zanetti wrote:
>> +Window::Window(int id)
>> >+ : QObject(nullptr)
>> >+ , m_id(id)
>> >+{
>> >+ DEBUG_MSG << "()";
>> >+ QQmlEngine:
> is there a reason why you can't use QObject's parent instead?
Laziness. Done.
>
> Would make sense in any case to parent the Window objects properly IMO
>
Yes, that's a nice safety net.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 18/11/2016 12:29, Michael Zanetti wrote:
>> +QString Window::toString() const
>> >+{
>> >+ if (surface()) {
>> >+ return QString(
>> >+ .arg((quintptr)
>> >+ .arg(id())
>> >+ .arg((quintptr)
>> >+ .arg(surface(
> same here... if this is only ever executed in certain debug modes, ok with me, but if this is executed in production code too, please use the single .arg(..., ..., ...) call for better performance.
>
Done.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 18/11/2016 12:29, Michael Zanetti wrote:
>> + Q_PROPERTY(
> gah I despise this overly excessive namespacing...
Me too! Nested namespaces are an eyesore.
> IMO you could just do "using namespace unity::
>
Not in a header file though. I think that's bad form. A .cpp file
#including this header would inadvertently get the
unity::
I'm also scared of doing namespace manipulations in Qt macros. That
might go wrong.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 18/11/2016 12:29, Michael Zanetti wrote:
>> + qRegisterMetaTy
> think it would make sense to qmlRegisterUncr
>
Not sure. qmlRegisterUncr
useful where the type is only intended for providing attached properties
or enum values."
Not the case here.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 18/11/2016 12:29, Michael Zanetti wrote:
>> - onMinimizeClicked: root.minimizeCl
>> >+ onMinimizeClicked: {
>> >+ if (applicationWin
>> >+ applicationWind
>> >+ }
>> >+ }
> this seems odd... why would you refactor DecoratedWindow to not directly operate on the data any more but instead pass everything outside with signals in a earlier branch, but now start introducing this somewhat messy behavior here again? IMO this should also be passed to outside to the Stage, and only the stage being in charge to actually execute things on the surfaces.
>
That's some old change that pre-dates that branch you mentioned.
Reverted.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 18/11/2016 12:29, Michael Zanetti wrote:
>> - function focusNext() {
> same as I mentioned earlier. I'm still a bit scared of dropping control over this from the qml part, but lets see how it works... At least now that the model is part of unity8 again, it seems easier to change that back or modify in yet another way if we need to.
>
This is a perfect case where it makes sense to delegate to the C++
model. Choosing the next window do be focused when the current one is
minimized is a bunch of imperative code (and WM policy) that fits better
in C++ and not mixed with animation code in QML.
Particularly now that the model knows everything (who's focused and the
position and state of all surfaces).
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2700
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 18/11/2016 12:29, Michael Zanetti wrote:
>> if (!shown && priv.mainStageD
>> >- priv.mainStageD
>> >+ priv.mainStageD
> ok... given that requestFocus() effectively does claimFocus() now, this change totally makes sense... but we're losing the distinction between "the stage wants to focus something" and "an app requests focus by itsel (or something else than the stage)".
>
> Can you think of a way to keep that separation perhaps?
>
Heh, I actually think it is a good thing to handle them the same way (as
I said in some other comment).
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 18/11/2016 12:29, Michael Zanetti wrote:
>> + function updateQmlFocusF
>> >+ if (model.
>> > claimFocus();
>> >+ priv.focusedApp
>> >+ //} else if (priv.focusedAp
>> >+ // priv.focusedApp
> leftover?
>
Yes, removed.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 18/11/2016 12:29, Michael Zanetti wrote:
>> + onMaximizeHoriz
>> >+ if (appDelegate.
>> >+ appDelegate.
>> >+ else
>> >+ appDelegate.
>> >+ }
> {} missing
>
>> >+ onMaximizeVerti
>> >+ if (appDelegate.
>> >+ appDelegate.
>> >+ else
>> >+ appDelegate.
>> >+ }
> {} missing
>
Not sure if that's in our coding style but ok, added.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 18/11/2016 14:16, Michael Zanetti wrote:
> Review: Needs Fixing
>
> Not yet sure if just an issue in the mocks or not, but this breaks:
>
> - open an app
> - click the minimize button in the window decoration
> - click the app again in the launcher to restore it
> - now click the minimize button again
> => button doesn't work any more
Bug in the mock. Works with qtmir.
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2705
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2706
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Michał Sawicz (saviq) wrote : Posted in a previous version of this proposal | # |
>>>> - priv.mainStageD
>>>> >> >+ priv.mainStageD
>> > ok... given that requestFocus() effectively does claimFocus() now, this change totally makes sense... but we're losing the distinction between "the stage wants to focus something" and "an app requests focus by itsel (or something else than the stage)".
>> >
>> > Can you think of a way to keep that separation perhaps?
>> >
> Heh, I actually think it is a good thing to handle them the same way (as
> I said in some other comment).
How does focus stealing prevention come into play here? I believe the
plan was to only grant focus to apps that send along a ~MirCookie based
on a timestamp. I believe it's described here:
Michael Zanetti (mzanetti) wrote : Posted in a previous version of this proposal | # |
On 18.11.2016 21:09, Daniel d'Andrada wrote:
> On 18/11/2016 12:29, Michael Zanetti wrote:
>>> + qRegisterMetaTy
>> think it would make sense to qmlRegisterUncr
>>
>
> Not sure. qmlRegisterUncr
> useful where the type is only intended for providing attached properties
> or enum values."
> Not the case here.
I'm more thinking about being able to access the Window type in QML
altogether. Not really about providing attached properties etc, but it
could make sense to do pass the Window object to somewhere in QML and
access its property there without having access to the model.
Michael Zanetti (mzanetti) wrote : Posted in a previous version of this proposal | # |
> On 18/11/2016 12:29, Michael Zanetti wrote:
> > * I think we should not give up on the differntiation between claimFocus()
> and requestFocus(). One of them says the stage wants to actually focus
> something*now* while the other indicates that the app requested focus on its
> own (or perhaps u-a-l did). IMO claimFocus() should not be dropped and still
> do the raisId() call on the model. requestfocus() instead should end up in the
> shell, and if the shell is ok with doing so, it should call claimFocus()
> itself.
>
> What you are explaining effectively is that: leave things as they are
> currently with regards to focus. Which means focus lives in unity8 and
> miral has no say over it.
>
> The whole point of this miral effort is exactly to move such window
> management decisions down to Mir, as dictated by our high-profile
> stakeholder.
There's a bunch of other stakeholders though that want to have it pixel perfect when it comes to animations and transitions. I am not saying miral should not have any say, but miral should send a requestFocus() to the shell and the shell will do it.
What I'm saying is that miral can tell unity to change the focus, and unity will follow that (unless it's in the middle of a transition or something). What you're proposing is that miral has all the say on when to change focus, and unity8 cannot do any course correction if the moment is bad.
> Focus is a central piece of window management and if miral is to do
> anything useful it has to have a say in it. And we cannot have two
> entities making decisions on focus (unity8 and miral) as it will
> inevitably be racy and conflictive.
which is exactly what we have now... unity8 thinks it is in charge, but miral can just jump in and trash it. I'm really just trying to avoid that.
>
> As for the origin of the focus change request (shell vs. application),
> it doesn't matter from miral's standpoint. It will comply to either as
> long the change is valid and makes sense. Eg.: it should never allow a
> window blocked by a child modal dialog to be focused. So it's mostly
> sanity checking. I don't see miral ignoring requests on a whim. :)
>
> Besides, having two separate code paths would make unity8 code more
> complex. Eg: Having both code that sets surface state and code that
> responds to surface state changes. "If surface state change was done in
> response my your own set(), do nothing, else, ponder and respond."
And I'm also not talking about 2 separate code paths. I'm saying the one code path should go through unity8 and not just manipulate the model at random.
Therefore I think only unity8 should manipulate the model, taking miral as consultant on how to manipulate it. This current approach is really the one that creates multiple entities fighting over the state of the model.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 18/11/2016 14:21, Michael Zanetti wrote:
> Review: Needs Fixing
>
> - have 3 apps (a, b and c), make them overlap a bit for better visibility
> - focus a by clicking it
> - focus b by clicking it
> - focus c by clicking it
> - minimize c
> => a will be focused
>
> expected: after minimizing c, b should be focused
Can't reproduce in "make tryDesktopStage". Need more specific steps
(like exact test and apps launched).
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 21/11/2016 07:27, Michael Zanetti wrote:
>
> On 18.11.2016 21:09, Daniel d'Andrada wrote:
>> On 18/11/2016 12:29, Michael Zanetti wrote:
>>>> + qRegisterMetaTy
>>> think it would make sense to qmlRegisterUncr
>>>
>> Not sure. qmlRegisterUncr
>> useful where the type is only intended for providing attached properties
>> or enum values."
>> Not the case here.
> I'm more thinking about being able to access the Window type in QML
> altogether. Not really about providing attached properties etc, but it
> could make sense to do pass the Window object to somewhere in QML and
> access its property there without having access to the model.
>
>
This already happens in Stage.qml:
"""
x: model.window.
y: model.window.
"""
Looks like qmlRegisterUncr
you only need it for Window.foo type of constructs.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 21/11/2016 06:48, Michał Sawicz wrote:
>>>>> - priv.mainStageD
>>>>>>>> + priv.mainStageD
>>>> ok... given that requestFocus() effectively does claimFocus() now, this change totally makes sense... but we're losing the distinction between "the stage wants to focus something" and "an app requests focus by itsel (or something else than the stage)".
>>>>
>>>> Can you think of a way to keep that separation perhaps?
>>>>
>> Heh, I actually think it is a good thing to handle them the same way (as
>> I said in some other comment).
> How does focus stealing prevention come into play here? I believe the
> plan was to only grant focus to apps that send along a ~MirCookie based
> on a timestamp. I believe it's described here:
>
> https:/
>
>
This happens at a level lower than unity8. All unity8 knows and cares
about is that some surface in the model got focus.
Michael Zanetti (mzanetti) wrote : Posted in a previous version of this proposal | # |
On 21.11.2016 12:09, Daniel d'Andrada wrote:
> On 21/11/2016 07:27, Michael Zanetti wrote:
>>
>> On 18.11.2016 21:09, Daniel d'Andrada wrote:
>>> On 18/11/2016 12:29, Michael Zanetti wrote:
>>>>> + qRegisterMetaTy
>>>> think it would make sense to qmlRegisterUncr
>>>>
>>> Not sure. qmlRegisterUncr
>>> useful where the type is only intended for providing attached properties
>>> or enum values."
>>> Not the case here.
>> I'm more thinking about being able to access the Window type in QML
>> altogether. Not really about providing attached properties etc, but it
>> could make sense to do pass the Window object to somewhere in QML and
>> access its property there without having access to the model.
>>
>>
> This already happens in Stage.qml:
>
> """
> x: model.window.
> y: model.window.
> """
>
> Looks like qmlRegisterUncr
> you only need it for Window.foo type of constructs.
Hmm, ok... fine then.
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2707
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Michael Zanetti (mzanetti) wrote : Posted in a previous version of this proposal | # |
> On 18/11/2016 14:21, Michael Zanetti wrote:
> > Review: Needs Fixing
> >
> > - have 3 apps (a, b and c), make them overlap a bit for better visibility
> > - focus a by clicking it
> > - focus b by clicking it
> > - focus c by clicking it
> > - minimize c
> > => a will be focused
> >
> > expected: after minimizing c, b should be focused
>
>
> Can't reproduce in "make tryDesktopStage". Need more specific steps
> (like exact test and apps launched).
Hmm... I can't reproduce it any more either after your latest changes.
Michael Zanetti (mzanetti) wrote : Posted in a previous version of this proposal | # |
> On 18/11/2016 14:16, Michael Zanetti wrote:
> > Review: Needs Fixing
> >
> > Not yet sure if just an issue in the mocks or not, but this breaks:
> >
> > - open an app
> > - click the minimize button in the window decoration
> > - click the app again in the launcher to restore it
> > - now click the minimize button again
> > => button doesn't work any more
>
> Bug in the mock. Works with qtmir.
This is really why I think we need to move all those models to unity8, put unity8 in control of them and mock things at a lower level. All our tests regarding window management are just useless right now... they can perfectly pass while the real thing can be broken really badly.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 21/11/2016 10:08, Michael Zanetti wrote:
>> On 18/11/2016 14:16, Michael Zanetti wrote:
>>> Review: Needs Fixing
>>>
>>> Not yet sure if just an issue in the mocks or not, but this breaks:
>>>
>>> - open an app
>>> - click the minimize button in the window decoration
>>> - click the app again in the launcher to restore it
>>> - now click the minimize button again
>>> => button doesn't work any more
>> Bug in the mock. Works with qtmir.
> This is really why I think we need to move all those models to unity8, put unity8 in control of them and mock things at a lower level. All our tests regarding window management are just useless right now... they can perfectly pass while the real thing can be broken really badly.
Window management policy things like "if currently focused window gets
minimized, focus the most recently focused window that is not hidden or
minimized" will now belong to a lower level (miral) and as such they get
mock implementations in our tests.
Thus qml tests that strictly check window management policy will indeed
get redundant. Test of this nature now belong to miral's own test suite.
Michael Zanetti (mzanetti) wrote : Posted in a previous version of this proposal | # |
> On 21/11/2016 10:08, Michael Zanetti wrote:
> >> On 18/11/2016 14:16, Michael Zanetti wrote:
> >>> Review: Needs Fixing
> >>>
> >>> Not yet sure if just an issue in the mocks or not, but this breaks:
> >>>
> >>> - open an app
> >>> - click the minimize button in the window decoration
> >>> - click the app again in the launcher to restore it
> >>> - now click the minimize button again
> >>> => button doesn't work any more
> >> Bug in the mock. Works with qtmir.
> > This is really why I think we need to move all those models to unity8, put
> unity8 in control of them and mock things at a lower level. All our tests
> regarding window management are just useless right now... they can perfectly
> pass while the real thing can be broken really badly.
>
>
> Window management policy things like "if currently focused window gets
> minimized, focus the most recently focused window that is not hidden or
> minimized" will now belong to a lower level (miral) and as such they get
> mock implementations in our tests.
>
> Thus qml tests that strictly check window management policy will indeed
> get redundant. Test of this nature now belong to miral's own test suite.
Right, but we would still need tests that make sure that the QML part works together with the model as we expect it. And right now we don't have such tests... Anyhow, this is a different discussion than this particular merge proposal. It just once again popped up here. Also this isn't a new problem, we already had this since forever, but as long as we only had the one ApplicationManager model which would not even do much except moving things when unity8 said so, it was still easy enough to keep the mock close enough to the real thing. Now this seems to grow out of a manageable size.
Gerry Boland (gerboland) wrote : Posted in a previous version of this proposal | # |
> > On 18/11/2016 12:29, Michael Zanetti wrote:
> > > * I think we should not give up on the differntiation between claimFocus()
> > and requestFocus(). One of them says the stage wants to actually focus
> > something*now* while the other indicates that the app requested focus on
> its
> > own (or perhaps u-a-l did). IMO claimFocus() should not be dropped and still
> > do the raisId() call on the model. requestfocus() instead should end up in
> the
> > shell, and if the shell is ok with doing so, it should call claimFocus()
> > itself.
> >
> > What you are explaining effectively is that: leave things as they are
> > currently with regards to focus. Which means focus lives in unity8 and
> > miral has no say over it.
> >
> > The whole point of this miral effort is exactly to move such window
> > management decisions down to Mir, as dictated by our high-profile
> > stakeholder.
>
> There's a bunch of other stakeholders though that want to have it pixel
> perfect when it comes to animations and transitions. I am not saying miral
> should not have any say, but miral should send a requestFocus() to the shell
> and the shell will do it.
> What I'm saying is that miral can tell unity to change the focus, and unity
> will follow that (unless it's in the middle of a transition or something).
> What you're proposing is that miral has all the say on when to change focus,
> and unity8 cannot do any course correction if the moment is bad.
>
> > Focus is a central piece of window management and if miral is to do
> > anything useful it has to have a say in it. And we cannot have two
> > entities making decisions on focus (unity8 and miral) as it will
> > inevitably be racy and conflictive.
>
> which is exactly what we have now... unity8 thinks it is in charge, but miral
> can just jump in and trash it. I'm really just trying to avoid that.
>
> >
> > As for the origin of the focus change request (shell vs. application),
> > it doesn't matter from miral's standpoint. It will comply to either as
> > long the change is valid and makes sense. Eg.: it should never allow a
> > window blocked by a child modal dialog to be focused. So it's mostly
> > sanity checking. I don't see miral ignoring requests on a whim. :)
> >
> > Besides, having two separate code paths would make unity8 code more
> > complex. Eg: Having both code that sets surface state and code that
> > responds to surface state changes. "If surface state change was done in
> > response my your own set(), do nothing, else, ponder and respond."
>
> And I'm also not talking about 2 separate code paths. I'm saying the one code
> path should go through unity8 and not just manipulate the model at random.
>
> Therefore I think only unity8 should manipulate the model, taking miral as
> consultant on how to manipulate it. This current approach is really the one
> that creates multiple entities fighting over the state of the model.
This is a valid concern. The model must only have one owner. I think it safest that Unity8 has total ownership of the model and uses MirAL's recommendations only when it can.
MirAL has no concept of intermediary-states (like transitions/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2708
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2709
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2711
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Michael Zanetti (mzanetti) wrote : Posted in a previous version of this proposal | # |
Thanks a lot for the activate() thing. Makes me feel much more comfy with the whole thing.
One minor thing (see inline comments) which I missed last time.
I'll give it another test with the latest changes, but it looks like we're getting close to an approval now.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 23/11/2016 09:24, Michael Zanetti wrote:
>> readonly property Item clientAreaItem: applicationWindow
>> >
>> >+ readonly property real contentX: applicationWindow.x
>> >+ readonly property real contentY: applicationWindow.y
> afaict, you're only using that for knowing how much to add/remove for the decoration height. There is already a property "decorationHeight" you can use so this would be not needed, esp as applicationWindow.y will always be 0 at this point too.
>
Actually I can just use the existing clientAreaItem property right above
them. Fixed.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 23/11/2016 09:24, Michael Zanetti wrote:
> Qt.point(
>
> should be enough
I would rather not assume that decorations only affect the Y coordinate.
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2712
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2712
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2713
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2714
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2715
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Lukáš Tinkl (lukas-kde) wrote : Posted in a previous version of this proposal | # |
New instances of the same app do not cascade:
0. make tryShell
1. Launch dialer
2. Click the "+" button to launch a second instance
3. The new window doesn't cascade
Lukáš Tinkl (lukas-kde) wrote : Posted in a previous version of this proposal | # |
If you add a trust prompt to a window and launch a second instance of the same app, the newly created window is not focused
Lukáš Tinkl (lukas-kde) wrote : Posted in a previous version of this proposal | # |
Windows are not restored properly:
1. Maximize dash
2. Minimize it
3. Click the bfb icon
4. The dash window is restored to "normal" size, not to the maximized from step 1.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 29/11/2016 15:35, Lukáš Tinkl wrote:
> Review: Needs Fixing
>
> New instances of the same app do not cascade:
>
> 0. make tryShell
> 1. Launch dialer
> 2. Click the "+" button to launch a second instance
> 3. The new window doesn't cascade
Same happens in trunk
Lukáš Tinkl (lukas-kde) wrote : Posted in a previous version of this proposal | # |
Double click to maximize breaks:
1. Double click the dash decoration to maximize the window
2. Drag it down from the panel to restore it
3. Double click again to maximize -> no longer works
Lukáš Tinkl (lukas-kde) wrote : Posted in a previous version of this proposal | # |
In tablet mode, if you put a fullscreen app into side stage (like camera), the main app (dash usually) has its decoration cut at the top.
Michael Zanetti (mzanetti) wrote : Posted in a previous version of this proposal | # |
> In tablet mode, if you put a fullscreen app into side stage (like camera), the
> main app (dash usually) has its decoration cut at the top.
This happens in trunk too
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 29/11/2016 15:37, Lukáš Tinkl wrote:
> Review: Needs Fixing
>
> If you add a trust prompt to a window and launch a second instance of the same app, the newly created window is not focused
Fixed. Bug in the Unity.Application mock.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 29/11/2016 15:39, Lukáš Tinkl wrote:
> Review: Needs Fixing
>
> Windows are not restored properly:
>
> 1. Maximize dash
> 2. Minimize it
> 3. Click the bfb icon
> 4. The dash window is restored to "normal" size, not to the maximized from step 1.
That's due to the simplicity of the Unity.Application mock. It doesn't
have a full blown implementation of the window management bits/policy
that have been now moved to a lower level, behind
Unity.Applicati
Unity.Applicati
Unfortunately this means that right now we can no longer test everything
window management related in our qmltests. For some things untiy8 just
sits back and expects to get the correct changes to the model for free,
which it will then respond to by updating the qml items and animating
the qml scene (the view).
To be more specific, in response to the click on step 3 unity8 just
calls MirSurface-
that this surface is minimized and will restore it to its previous state
before finally focusing and raising it.
Daniel d'Andrada (dandrader) wrote : Posted in a previous version of this proposal | # |
On 29/11/2016 15:50, Lukáš Tinkl wrote:
> Review: Needs Fixing
>
> Double click to maximize breaks:
>
> 1. Double click the dash decoration to maximize the window
> 2. Drag it down from the panel to restore it
> 3. Double click again to maximize -> no longer works
Fixed.
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2727
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Lukáš Tinkl (lukas-kde) wrote : | # |
Doesn't compile any more (or run), need this patch: https:/
- 2726. By Launchpad Translations on behalf of unity-team
-
Launchpad automatic translations update.
Daniel d'Andrada (dandrader) wrote : | # |
On 30/11/2016 18:55, Lukáš Tinkl wrote:
> Review: Needs Fixing
>
> Doesn't compile any more (or run), need this patch: https:/
Ooops! Fixed, thanks.
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2728
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2728
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2729
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2729
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2729
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2730
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2733
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2734
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2736
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Emanuele Antonio Faraone (emanueleant03) : | # |
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2737
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2738
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2742
https:/
Executed test runs:
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2742
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2743
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2744
https:/
Executed test runs:
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:2744
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Lukáš Tinkl (lukas-kde) wrote : | # |
Looking good except this hard to track focus related issue:
It can happen when an application is taking a long time to start up, and you close it before it does. At that point, the focus chain is broken and the user is left with no app/window focused at all (as can be seen from the empty window title in the top panel)
Daniel d'Andrada (dandrader) wrote : | # |
> Looking good except this hard to track focus related issue:
>
> https:/
>
> It can happen when an application is taking a long time to start up, and you
> close it before it does. At that point, the focus chain is broken and the user
> is left with no app/window focused at all (as can be seen from the empty
> window title in the top panel)
Fixed, thanks.
Lukáš Tinkl (lukas-kde) wrote : | # |
In QString Window::toString() const:
I think what you're really after is this: http://
Daniel d'Andrada (dandrader) wrote : | # |
On 06/12/2016 12:57, Lukáš Tinkl wrote:
> Review: Needs Information
>
> In QString Window::toString() const:
>
> I think what you're really after is this: http://
Already have it. It uses toString() in its implementation.
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2746
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2746
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:2746
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2747
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Lukáš Tinkl (lukas-kde) wrote : | # |
* Did you perform an exploratory manual test run of the code change and any related functionality?
Yes
* Did CI run pass? If not, please explain why.
Yes (they will again once the silo gets rebuilt)
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2748
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
- 2727. By Lukáš Tinkl
-
Fix the Super key not invoking the dash scope home (LP: #1607427)
Approved by: Daniel d'Andrada, Unity8 CI Bot
- 2728. By Albert Astals Cid
-
Add the Wsuggest-override flag to gcc
While at it mark system includes as such so we don't get warnings we can not fix
Approved by: Michael Zanetti, Unity8 CI Bot
- 2729. By Albert Astals Cid
-
Add support for compiler sanitizers via ECM
- 2730. By Albert Astals Cid
-
Use timeStep as delay time
Passing iterations / speed didn't make much sense since that parameter is a delay in milliseconds and the default parameters would give a value of 5 / units.gu(10) that is smaller than 1 millisecond.
Qt 5.7 calculation for velocity was very unhappy if we moved things so fast in less than 1ms and ignored the movements, so this also makes tests pass on Qt 5.7 (LP: #1642919)
Approved by: Josh Arenson, Unity8 CI Bot
- 2731. By Michael Zanetti
-
Add the ApplicationDrawer
Approved by: Lukáš Tinkl, Unity8 CI Bot
- 2732. By Michael Zanetti
-
tune right edge push
make it less intrusive when accidentally hitting the edge with the mouse
tweak visuals for the mouse case (LP: #1646094)Approved by: Unity8 CI Bot
- 2733. By Michael Zanetti
-
improve close button visiblity when hovering with the mouse
Approved by: Albert Astals Cid, Unity8 CI Bot
- 2734. By Albert Astals Cid
-
Bring back fix for 1517830
Now with autotest \o/ (LP: #1517830)
Approved by: Andrea Cimitan, Unity8 CI Bot
- 2735. By Daniel d'Andrada
-
Fix "make tryApplicationW
indow" No surface was showing up on the screen
Also remove outdated button (feature is no longer there)Approved by: Albert Astals Cid, Unity8 CI Bot
- 2736. By Albert Astals Cid
-
Fix compile warnings in mocks
Approved by: Daniel d'Andrada, Unity8 CI Bot
- 2737. By Josh Arenson
-
Enable the greeter to remember which session the user last logged into
This also fixes a small issue with how the default session was handled. (LP: #1631365)
Approved by: Albert Astals Cid, Unity8 CI Bot
- 2738. By Daniel d'Andrada
-
Take save/restore functions out of WindowResizeArea
They've no relationship with resizing whatsoever.
Approved by: Lukáš Tinkl, Unity8 CI Bot
- 2739. By Michael Zanetti
-
Update virtual touchpad visuals and add a tutorial. (LP: #1585220)
Approved by: Lukáš Tinkl, Unity8 CI Bot
- 2740. By Albert Astals Cid
-
Do not hide panel when launching an application if the mouse is on the panel
Need Functions.
itemUnderMouse because MouseArea. containsMouse returns true when tapping (i.e. no mouse used) on it. Unfortunately the QML testlib do not set the proper value when issueing a mouseMove so i can't add a test that proofs it works, i'll try to propose something upstream and then add the test at a later MR (LP: #1591311)
Approved by: Lukáš Tinkl, Unity8 CI Bot
- 2741. By Pete Woods
-
MenuItemFactory: Add subtitle support to SwitchItem widget
Approved by: Marco Trevisan (Treviño), Michał Sawicz, Unity8 CI Bot
- 2742. By CI Train Bot Account
-
Releasing 8.15+17.
04.20161207. 1-0ubuntu1 - 2743. By Daniel d'Andrada
-
Let the model deal with some window management decisions
eg: which window to focus, whether to change surface state
unit8 requests and reacts to changes in the model instead of applying them
FAILED: Continuous integration, rev:2674 /unity8- jenkins. ubuntu. com/job/ lp-unity8- ci/2465/ /unity8- jenkins. ubuntu. com/job/ build/3241/ console /unity8- jenkins. ubuntu. com/job/ build-0- fetch/3269 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= vivid+overlay/ 3123/console /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= xenial+ overlay/ 3123/console /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= zesty/3123/ console /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= vivid+overlay/ 3123/console /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= xenial+ overlay/ 3123/console /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= zesty/3123/ console /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= vivid+overlay/ 3123/console /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= xenial+ overlay/ 3123/console /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= zesty/3123/ console
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild: /unity8- jenkins. ubuntu. com/job/ lp-unity8- ci/2465/ rebuild
https:/