Review Request 123746: Workaround DBusMenuQt's design

David Edmundson david at davidedmundson.co.uk
Wed May 13 10:51:21 UTC 2015



> On May 13, 2015, 2:49 a.m., Aleix Pol Gonzalez wrote:
> > Has DBusMenuQt been fixed? Or is it beyond our reach for a weird reason?
> 
> Aleix Pol Gonzalez wrote:
>     PS: I don't mind the workaround as long as we fix upstream too.

Two hold ups

1) I already have some a clearly perfect pending patch for libdbusmenu-qt that patch up some memory that haven't seen any response. If that doesn't get a merge it's hard to see how anything else will.
It's in that classic frustrating state of being maintained by someone who is now inactive without a clear successor.

2) The best fix involves changing their API, so I'd need to make a dbusmenu-qt 0.5, breaking any other client then potentially #ifdef this code to support both


- David


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


On May 13, 2015, 1:39 a.m., David Edmundson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/123746/
> -----------------------------------------------------------
> 
> (Updated May 13, 2015, 1:39 a.m.)
> 
> 
> Review request for Plasma.
> 
> 
> Repository: plasma-workspace
> 
> 
> Description
> -------
> 
> DBusMenuImporter by default connects QMenu::aboutToShow to a private
> slot slotMenuAboutToShow,
> in this slot it reloads the menu befre it gets shown
> because the menu shows just after aboutToShow() returns DBusMenuQt in
> it's infinite wisdom spawns a new event loop to
> block the QMenu processing till we get the network reply
> 
> Not only is this rather pointless as all uses in Plamsa calls
> updateMenu() before showing, so we fetch the menu twice
> it also leads to all sorts of crazy crashes as when we process all other
> events we might delete the menu from within QMenu emitting aboutToShow()
> which is a very unexpected thing to do as QMenu::popup ends up with 'this' being destroyed halfway through it's
> frame.
> 
> BUG: 343971
> BUG: 345838
> BUG: 345933
> 
> 
> Ideal fix is in DBusMenuQt, and I /hate/ doing workarounds, but I can't see how to solve it without *significantly* changing the API.
> 
> 
> Diffs
> -----
> 
>   dataengines/statusnotifieritem/statusnotifieritemsource.cpp b6a50279c01076e7242afaf93d1769348ba031ba 
> 
> Diff: https://git.reviewboard.kde.org/r/123746/diff/
> 
> 
> Testing
> -------
> 
> Opened steam
> closed steam from menu
> quickly click on the SNI before it exits.
> Used to crash. Now doesn't.
> 
> 
> Thanks,
> 
> David Edmundson
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20150513/48579da3/attachment.html>


More information about the Plasma-devel mailing list