i.Dark_Templar added a comment.

  Current implementation is buggy. Cached menu items may be invalid: after 
'LayoutUpdate' event updated menu all of it submenus are no longer valid (and 
thus cache contains invalid data) and should be updated. Menu itself is 
updated, but it's submenus are not. It's just usually happens that new submenu 
data is same as old submenu data, but in case it's not, you'll never get new 
submenu data and never see updated submenu. See example in menubugtest.tar.bz2 
attached to linked bug (and description there).
  
  If you compare implementation of upstream libdbusmenu-qt and current 
implementation bundled into kde, you'll notice that upstream on 'LayoutUpdate' 
event updates all submenus synchronously and thus it obtains new correct 
submenus. Current code never obtains new submenus and always shows old ones.
  To work properly, you have to receive new data, either on 'LayoutUpdate' 
event (as upstream does), on 'AboutToShow' event (as my patch does) or somehow 
else. Current implementation never does. Just showing old submenus is 
incorrect. Current change doesn't seem like a hack if you compare current state 
of kde code to upstream libdbusmenu-qt.

REPOSITORY
  R120 Plasma Workspace

REVISION DETAIL
  https://phabricator.kde.org/D7260

To: i.Dark_Templar, #plasma, davidedmundson
Cc: plasma-devel, ZrenBot, progwolff, lesliezhai, ali-mohamed, jensreuterberg, 
abetts, sebas, apol, mart, lukas

Reply via email to