<table><tr><td style="">subdiff created this revision.<br />subdiff added a project: Plasma.<br />Restricted Application added a project: Frameworks.<br />Restricted Application added a subscriber: Frameworks.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D4867" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>There was already some kind of detection and adjustment if there is not enough space for the popup available. Do some more work by placing the popup according to its PopupPlacement enum. Do  this also if the popup breaks the top or left boundary of the screen.</p>

<p>The goal is to never hide the parentItem, but in this revision this is yet violated for <tt style="background: #ebebeb; font-size: 13px;">Types::TopPosedRightAlignedPopup</tt> and <tt style="background: #ebebeb; font-size: 13px;">Types::LeftPosedBottomAlignedPopup</tt> if both respective screen limits are broken. The question is if we should it ignore it or place the popup then better to the side or bottom/top.</p>

<p>Tested it with my WIP patch for plasma-pa:</p>

<p><a href="https://phabricator.kde.org/F2672785" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;" rel="noreferrer">F2672785: 1.png</a></p>

<p><a href="https://phabricator.kde.org/F2672786" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;" rel="noreferrer">F2672786: 2.png</a></p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R242 Plasma Framework (Library)</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D4867" rel="noreferrer">https://phabricator.kde.org/D4867</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>src/declarativeimports/plasmacomponents/qmenu.cpp<br />
src/plasma/plasma.h</div></div></div><br /><div><strong>EMAIL PREFERENCES</strong><div><a href="https://phabricator.kde.org/settings/panel/emailpreferences/" rel="noreferrer">https://phabricator.kde.org/settings/panel/emailpreferences/</a></div></div><br /><div><strong>To: </strong>subdiff, Plasma<br /><strong>Cc: </strong>plasma-devel, Frameworks, progwolff, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol<br /></div>