Merge branch 'Plasma/5.12'
This commit is contained in:
commit
45bdd8a342
6 changed files with 15 additions and 6 deletions
|
@ -470,7 +470,7 @@ void QuickTilingTest::testQuickTilingPointerMoveXdgShell()
|
|||
QCOMPARE(c->quickTileMode(), QuickTileMode(QuickTileFlag::None));
|
||||
QCOMPARE(c->maximizeMode(), MaximizeRestore);
|
||||
QVERIFY(configureRequestedSpy.wait());
|
||||
QCOMPARE(configureRequestedSpy.count(), 2);
|
||||
QTRY_COMPARE(configureRequestedSpy.count(), 2);
|
||||
|
||||
QSignalSpy quickTileChangedSpy(c, &AbstractClient::quickTileModeChanged);
|
||||
QVERIFY(quickTileChangedSpy.isValid());
|
||||
|
@ -492,9 +492,7 @@ void QuickTilingTest::testQuickTilingPointerMoveXdgShell()
|
|||
QCOMPARE(quickTileChangedSpy.count(), 1);
|
||||
QTEST(c->quickTileMode(), "expectedMode");
|
||||
QVERIFY(configureRequestedSpy.wait());
|
||||
QEXPECT_FAIL("", "BUG 388072", Continue);
|
||||
QCOMPARE(configureRequestedSpy.count(), 4);
|
||||
QEXPECT_FAIL("", "BUG 388072", Continue);
|
||||
QCOMPARE(false, configureRequestedSpy.last().first().toSize().isEmpty());
|
||||
}
|
||||
|
||||
|
|
|
@ -2745,6 +2745,7 @@ bool Client::doStartMoveResize()
|
|||
|
||||
void AbstractClient::finishMoveResize(bool cancel)
|
||||
{
|
||||
GeometryUpdatesBlocker blocker(this);
|
||||
const bool wasResize = isResize(); // store across leaveMoveResize
|
||||
leaveMoveResize();
|
||||
|
||||
|
|
|
@ -47,6 +47,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#include "decorations/decoratedclient.h"
|
||||
#include <logging.h>
|
||||
|
||||
#include <KWayland/Server/buffer_interface.h>
|
||||
#include <KWayland/Server/subcompositor_interface.h>
|
||||
#include <KWayland/Server/surface_interface.h>
|
||||
|
||||
|
@ -1358,7 +1359,7 @@ QMatrix4x4 SceneOpenGL2Window::modelViewProjectionMatrix(int mask, const WindowP
|
|||
return scene->projectionMatrix() * mvMatrix;
|
||||
}
|
||||
|
||||
static void renderSubSurface(GLShader *shader, const QMatrix4x4 &mvp, const QMatrix4x4 &windowMatrix, OpenGLWindowPixmap *pixmap, const QRegion ®ion, bool hardwareClipping)
|
||||
void SceneOpenGL2Window::renderSubSurface(GLShader *shader, const QMatrix4x4 &mvp, const QMatrix4x4 &windowMatrix, OpenGLWindowPixmap *pixmap, const QRegion ®ion, bool hardwareClipping)
|
||||
{
|
||||
QMatrix4x4 newWindowMatrix = windowMatrix;
|
||||
newWindowMatrix.translate(pixmap->subSurface()->position().x(), pixmap->subSurface()->position().y());
|
||||
|
@ -1369,6 +1370,7 @@ static void renderSubSurface(GLShader *shader, const QMatrix4x4 &mvp, const QMat
|
|||
}
|
||||
|
||||
if (!pixmap->texture()->isNull()) {
|
||||
setBlendEnabled(pixmap->buffer() && pixmap->buffer()->hasAlphaChannel());
|
||||
// render this texture
|
||||
shader->setUniform(GLShader::ModelViewProjectionMatrix, mvp * newWindowMatrix);
|
||||
auto texture = pixmap->texture();
|
||||
|
@ -1515,8 +1517,6 @@ void SceneOpenGL2Window::performPaint(int mask, QRegion region, WindowPaintData
|
|||
|
||||
vbo->unbindArrays();
|
||||
|
||||
setBlendEnabled(false);
|
||||
|
||||
// render sub-surfaces
|
||||
auto wp = windowPixmap<OpenGLWindowPixmap>();
|
||||
const auto &children = wp ? wp->children() : QVector<WindowPixmap*>();
|
||||
|
@ -1528,6 +1528,8 @@ void SceneOpenGL2Window::performPaint(int mask, QRegion region, WindowPaintData
|
|||
renderSubSurface(shader, modelViewProjection, windowMatrix, static_cast<OpenGLWindowPixmap*>(pixmap), region, m_hardwareClipping);
|
||||
}
|
||||
|
||||
setBlendEnabled(false);
|
||||
|
||||
if (!data.shader)
|
||||
ShaderManager::instance()->popShader();
|
||||
|
||||
|
|
|
@ -173,6 +173,8 @@ protected:
|
|||
bool m_hardwareClipping;
|
||||
};
|
||||
|
||||
class OpenGLWindowPixmap;
|
||||
|
||||
class SceneOpenGL2Window : public SceneOpenGL::Window
|
||||
{
|
||||
public:
|
||||
|
@ -209,6 +211,7 @@ protected:
|
|||
virtual void performPaint(int mask, QRegion region, WindowPaintData data);
|
||||
|
||||
private:
|
||||
void renderSubSurface(GLShader *shader, const QMatrix4x4 &mvp, const QMatrix4x4 &windowMatrix, OpenGLWindowPixmap *pixmap, const QRegion ®ion, bool hardwareClipping);
|
||||
/**
|
||||
* Whether prepareStates enabled blending and restore states should disable again.
|
||||
**/
|
||||
|
|
|
@ -293,6 +293,9 @@ void ShellClient::init()
|
|||
if (m_closing) {
|
||||
return;
|
||||
}
|
||||
if (m_requestGeometryBlockCounter != 0 || areGeometryUpdatesBlocked()) {
|
||||
return;
|
||||
}
|
||||
m_xdgShellSurface->configure(xdgSurfaceStates());
|
||||
};
|
||||
configure();
|
||||
|
|
|
@ -245,6 +245,8 @@ private:
|
|||
if (m_client->m_requestGeometryBlockCounter == 0) {
|
||||
if (m_client->m_blockedRequestGeometry.isValid()) {
|
||||
m_client->requestGeometry(m_client->m_blockedRequestGeometry);
|
||||
} else if (m_client->m_xdgShellSurface) {
|
||||
m_client->m_xdgShellSurface->configure(m_client->xdgSurfaceStates());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue