> On April 13, 2016, 6:43 p.m., Marco Martin wrote:
> > I don't like the api...
> > If I understand correctly you need the menu aligned with the task item not 
> > going over the taskbar also in cases of windows can cover?
> > I would prefer in this case another open method, something along the lines 
> > of open(Plasma::Types::Location) that would open the menu relative to the 
> > visualparent, aligning it depending on the location

No, it has nothing to do with the panel or even the visual parent. By default 
QMenus open towards the bottom and right of $pos. If $pos is closer to the 
bottom or right of the screen than the menu is big, the menu will go as far 
bottom and right as it can, bumping against the screen edge. In the case of the 
Task Manager that means the menu covers the task button. Our Task Managers have 
always had code to avoid this and position the context menu either against the 
panel edge or (better, because of multi-row task managers) the task item. The 
old Task Manager applet had the same code I added here to accomplish this.

Your API suggestion is OK, but in some sense kind of doesn't overlap with this 
one. Your proposal would add a new API to position the menu relative to the 
visual parent with the Location enum (which I personally always felt is very 
very confusing, but I digress). This extends the coordinate-based API with a 
hint for how those coordinates should be respected.


- Eike


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/127646/#review94585
-----------------------------------------------------------


On April 13, 2016, 5:24 p.m., Eike Hein wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/127646/
> -----------------------------------------------------------
> 
> (Updated April 13, 2016, 5:24 p.m.)
> 
> 
> Review request for Plasma.
> 
> 
> Repository: plasma-framework
> 
> 
> Description
> -------
> 
> This adds a parameter to open() to request the menu be positioned to collide 
> against the supplied coordinates instead of the screen edge if there's 
> insufficient space to show the entire menu next to the coordinates. This 
> allows Task Manager-style positioning (which used to be hardcoded in C++ in 
> the applet), where the menu is shown above a task item in a bottom panel and 
> to the left of the task item in a right panel. Without this opt-in behavior, 
> the menu goes as far below/right of the coordinates as it an until it 
> collides with the screen edge, therefore overlapping with the item.
> 
> The new behavior defaults to off, to not change API behavior.
> 
> It's added as a new parameter instead of a declarative prop in keeping with 
> the existing style - the open coordinates are not declarative either; the 
> whole thing is treated as a one-shot procedural op.
> 
> This will be used by the Task Manager applet to position the task context 
> menu more smartly.
> 
> 
> Diffs
> -----
> 
>   src/declarativeimports/plasmacomponents/qmenu.h 41e8865 
>   src/declarativeimports/plasmacomponents/qmenu.cpp 2a96d77 
> 
> Diff: https://git.reviewboard.kde.org/r/127646/diff/
> 
> 
> Testing
> -------
> 
> Tested with rtl locales as well.
> 
> 
> Thanks,
> 
> Eike Hein
> 
>

_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to