> On Март 4, 2016, 12:16 преди обяд, Thomas Lübking wrote: > > src/kstatusnotifieritem.cpp, line 934 > > <https://git.reviewboard.kde.org/r/127216/diff/2/?file=446044#file446044line934> > > > > append > > associatedWidget->setAttribute(Qt::WA_Moved); > > > > > > > > This should tell Qt to demand an explicit position and skip placement > > by the WM (yes, this generally works in KWin ;-) > > > > However, this flag should be implicitly set by ::move() unless the > > point is invalid, so you might want to "qDebug() << associatedWidgetPos;" > > to check whether it's invalid for the failing clients. > > Anthony Fieroni wrote: > Fun facts :) void KStatusNotifierItemPrivate::minimizeRestore(bool) is > called only when you click on tray icon i.e. if i close app with big red X > it's not called => i can't store position :) > > Anthony Fieroni wrote: > More fun facts :) > associatedWidget->setGeometry(associatedWidget->frameGeometry()); works in > any case ! I will add path if you want, but you will not be happy to set > geometry by myself :) > > Anthony Fieroni wrote: > ^ No, extend geometry with decoration size :) > > Thomas Lübking wrote: > meehhh... > > That means one will have to filter QEvent::Close of associatedWidget and > store the position from there. > > Anthony Fieroni wrote: > It's strange, about me, associatedWidget has correct frameGeometry even > it's hide. > QObject::connect(KWindowSystem::self(), &KWindowSystem::windowRemoved, q, > [this](WId winId) { > if (associatedWidget && associatedWidget->winId() == winId) { > associatedWidgetPos = > associatedWidget->frameGeometry().topLeft(); > } > }); > Position is correct, but again not work event with Qt::WA_Moved. > > Anthony Fieroni wrote: > KWindowInfo info(associatedWidget->winId(), NET::WMDesktop | > NET::WMGeometry); > info.geometry().topLeft(); <----------------------------- decoration is > included again > to filed bug? > > Thomas Lübking wrote: > You may file a bug, but I frankly doubt your findings. > (Just more or less ported my kwindowsystem tool and the values are > correct ;-) > > => How exactly did you determine this assumption? (Just from the walking > position?) > > Anthony Fieroni wrote: > I can't move widget when new position not match frameGeometry().topLeft > by itself. > associatedWidgetPos = associatedWidget->geometry().topLeft(); -> can move > but new position is with decoration offset > associatedWidgetPos = associatedWidget->pos(); -> can't move, this is > wanted position, not match internal wigdet frameGeometry > I saw qwidget move code, Qt::WA_Moved is setted at start. > I saw the qwidget close code, because when i click X -> now i CAN move to > pos ! Why the hell, i try setAttribute(Qt::WA_QuitOnClose, false); > What are attribute setted/unsetted on X click? > > Thomas Lübking wrote: > You'll fail to move because the call is idempotent, ie. the positions is > assumed to be the current one and thus the move call is NOOP. > > Qt::WA_QuitOnClose exits the process when the last window closes, leave > it alone. > > Thomas Lübking wrote: > Just tried, Quassel and trojitá (latter uses QSystrayIcon + QPA) actually > work with the present code. > (Not checked details, but apparently minimizeRestore isn't invoked > anyway??) > > Trying amarok later (requires complete update for new libav deps) but > would like to express my greatest disgrace for systrays in general and SNI in > particular. > The SNI daemon silently quit (not killing kded!) several times! during > the tests and I spent 5 minutes just to figure why I suddenly wasn't getting > any tray icon and associated widgets turned 0x0 ... this entire thing is > seriously far too fragile to be useful. *grrrr*
[quote]You'll fail to move because the call is idempotent, ie. the positions is assumed to be the current one and thus the move call is NOOP.[/quote] Yeah, i saw subs in move code, but in this case of code, simply setVisible(false/true) *must* work out of box. I don't get this to work somedays. - Anthony ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/127216/#review93143 ----------------------------------------------------------- On Фев. 29, 2016, 7:18 преди обяд, Anthony Fieroni wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://git.reviewboard.kde.org/r/127216/ > ----------------------------------------------------------- > > (Updated Фев. 29, 2016, 7:18 преди обяд) > > > Review request for KDE Frameworks, Martin Gräßlin, Thomas Lübking, and Martin > Klapetek. > > > Bugs: 356523 > https://bugs.kde.org/show_bug.cgi?id=356523 > > > Repository: knotifications > > > Description > ------- > > Store position of widget before hide it > > > Diffs > ----- > > src/kstatusnotifieritem.cpp cf3e7b5 > src/kstatusnotifieritemprivate_p.h 8fdfd4c > > Diff: https://git.reviewboard.kde.org/r/127216/diff/ > > > Testing > ------- > > Tested on pixel ration = 1 > > > Thanks, > > Anthony Fieroni > >
_______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel