Summary: | Scripts geometryChange may be called with wrong values | ||
---|---|---|---|
Product: | [Plasma] kwin | Reporter: | David Rosca <nowrep> |
Component: | scripting | Assignee: | KWin default assignee <kwin-bugs-null> |
Status: | RESOLVED NOT A BUG | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | git master | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
David Rosca
2016-02-20 16:46:48 UTC
I'd say the window simply moves first, then resizes (and somehow adjusts its position) - we receive two configure events and forward them to scripting (since the config events should be the only occasion to emit geometryShapeChanged for unmanaged windows) Since those are unmanaged windows (at least regular tooltips are), KWin does not cause the geometry change. => smoothing this has to happen in client code (effect script) - we cannot just stash random signals on a global scope (though ideally clients would just configure themselves once), resp. try to compress them. However, why would this fail on the morphing effect? Afaiu it should animate the big transition and then (in doubt retarget) the big resize, yesno? PS, stupid question: by "tooltips from QtWidgets apps" you're not referring to the completely broken tooltips in dolphin which usually are far too tiny on mapping and then most of the time "forget" to adjust their size? (In reply to Thomas Lübking from comment #1) > I'd say the window simply moves first, then resizes (and somehow adjusts its > position) - we receive two configure events and forward them to scripting > (since the config events should be the only occasion to emit > geometryShapeChanged for unmanaged windows) > > Since those are unmanaged windows (at least regular tooltips are), KWin does > not cause the geometry change. > Ok, I'll see when and why is the geometryShapeChanged emitted. This signal is also emitted when no geometry actually changes (window.geometry == oldGeometry). > => smoothing this has to happen in client code (effect script) - we cannot > just stash random signals on a global scope (though ideally clients would > just configure themselves once), resp. try to compress them. > Indeed, I thought that the geometry change came from KWin, as the Plasma tooltip QWindow emits only one geometry change event (but yeah, that doesn't mean it does exactly the same thing in xcb code). > > However, why would this fail on the morphing effect? > Afaiu it should animate the big transition and then (in doubt retarget) the > big resize, yesno? > Because it ignores animation when there is a too big/small difference in position/size of tooltips to be animated, so it usually just picks one of the two geometry changes. > PS, stupid question: by "tooltips from QtWidgets apps" you're not referring > to the completely broken tooltips in dolphin which usually are far too tiny > on mapping and then most of the time "forget" to adjust their size? I mean normal tooltips with just text in it, nothing fancy. I experience the described behavior sometimes with Plasma QML tooltips, but certainly not with QtWidgets tooltips. It's emitted from configureNotifyEvent and windowEvent, so nothing wrong in KWin. Sorry for the noise. |