davidedmundson requested changes to this revision. davidedmundson added a comment. This revision now requires changes to proceed.
I've written you a unit test. I can either take over this or upload as a separate review that you can merge in. INLINE COMMENTS > zzag wrote in surface_interface.cpp:819 > So, it would be fine to return `true` in the following case: > > QRectF(QPoint(0, 0), QSize(10, 10)).contains(QPointF(10, 10)); > > ? I would have said so. But then it means sizeContains and inputContains behave differently as QRegion(QRect(0,0,10,10)).contains(10,10); returns false which gives us some inconsistency. > surface_interface.cpp:824 > { > - if (!isMapped()) { > + return sizeContains(size, QRegion(), position) && > input.contains(position.toPoint()); > +} This needs to be && (surface.inputIsInfinite() || input.contains(..)) which means either an extra arg in our function pointer or go back to the frankly simpler first revision. Writing N complex lines to save duplicating N simple lines doesn't make much sense to me, especially when they end up deviating. REPOSITORY R127 KWayland REVISION DETAIL https://phabricator.kde.org/D7038 To: romangg, #frameworks, graesslin, davidedmundson Cc: davidedmundson, zzag, kde-frameworks-devel, graesslin, plasma-devel, ragreen, Pitel, schernikov, michaelh, ZrenBot, ngraham, bruns, alexeymin, lesliezhai, ali-mohamed, jensreuterberg, abetts, eliasp, sebas, apol, mart, hein