Your message dated Wed, 12 Apr 2017 07:30:00 +0000
with message-id <[email protected]>
and subject line Re: Bug#859936: unblock: ktexteditor/5.28.0-2
has caused the Debian Bug report #859936,
regarding unblock: ktexteditor/5.28.0-2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
859936: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=859936
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: [email protected]
Usertags: unblock

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Dear release team,

I've backported two upstream fixes in ktexteditor for stretch that I consider 
worthwhile:
 + Fix: Forward dragging text results in wrong selection (a4ad36c)
   KDE#374163
 + fix minimap rendering for HiDPI envs (030c37b)

I've uploaded 5.28.0-2 with these changes and it has built successfully in all 
the release architectures.

I'm attaching the corresponding debdiff.

Happy hacking,

Please unblock package ktexteditor

unblock ktexteditor/5.28.0-2

- -- System Information:
Debian Release: 9.0
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500, 
'testing'), (500, 'stable'), (50, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, armhf

Kernel: Linux 4.9.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: systemd (via /run/systemd/system)

-----BEGIN PGP SIGNATURE-----

iQJEBAEBCgAuFiEE+JIdOnQEyG4RNSIVxxl2mbKbIyoFAljqJoYQHG1heHlAZGVi
aWFuLm9yZwAKCRDHGXaZspsjKjGOD/9ZV9w3eQ4O2Sj6WQt2fa1AcpTgszPdfpoG
rEKQ9MFN+NzN33IW1z0/qcx20ehWMdeSsW79TCkHHIxTWftd6vWmVt1vlQJ8tSpQ
T8kixf7n/OQSmCPD2omCfrNW7ONWoG7hd4qjMJm3D16W8WYyNIynpIr8hmtQWJN6
HgVH6UFPRgWAnh4slcMbCPobtDbFLwI5k8zxQJZf7vnv/iK+v0kWFUUOPjgU7u7D
T5GGmD1jreQ+3ZMBgd+UEeEf7Cmw4ar4f3C58DwU8z/1Lc4kngYpy9g32xmRTsHk
ix4vKbCjKlsD1ZFmXGra1RJ67lkekRWS42PeWNIp8Y1r+IYyq6bujZdhM5pKRvaZ
zTj3vIA4K2JHS6crMbTjNF+sdrmw2IIVSPE/SUxujes1l4DnJ9cQy3E9Myl0cw7I
NNetgKAL3GLV1H/FoBoz1/5evheK3TfqxQdBL6Rf1fpg99MP++X0KbPupDhYp7QP
56mjAyg8jk0Vcc/691pxhThqNkBuXsAlY5EqjKhRuhsKWO/csEkwdy9PBsn8DiKo
B/owcwejDXrdCk14JjPaM6iBxvUYCvVReoev38MMKx9XFPrTIhFOxF7qWhbvyvE3
PEF68svk02Dj5e4m2Tpk45Fiv9BMg0Ok63cky9ZLUpQaauYljHxBHiTEchvN6tAS
sBzOAwAQ+g==
=sMwv
-----END PGP SIGNATURE-----
diff -Nru ktexteditor-5.28.0/debian/changelog 
ktexteditor-5.28.0/debian/changelog
--- ktexteditor-5.28.0/debian/changelog 2016-11-18 16:07:00.000000000 +0100
+++ ktexteditor-5.28.0/debian/changelog 2017-04-07 11:57:02.000000000 +0200
@@ -1,3 +1,14 @@
+ktexteditor (5.28.0-2) unstable; urgency=medium
+
+  * Apply "Fix: Forward dragging text results in wrong selection" (a4ad36c)
+    Add the upstream patch as:
+     Fix-Forward-dragging-text-results-in-wrong-selection.patch
+    This fixes KDE#374163
+  * Apply "fix minimap rendering for HiDPI envs" (030c37b)
+    Add upstream patch as: fix-minimap-rendering-for-HiDPI-envs.patch
+
+ -- Maximiliano Curia <[email protected]>  Fri, 07 Apr 2017 11:57:02 +0200
+
 ktexteditor (5.28.0-1) unstable; urgency=medium
 
   [ Maximiliano Curia ]
diff -Nru 
ktexteditor-5.28.0/debian/patches/Fix-Forward-dragging-text-results-in-wrong-selection.patch
 
ktexteditor-5.28.0/debian/patches/Fix-Forward-dragging-text-results-in-wrong-selection.patch
--- 
ktexteditor-5.28.0/debian/patches/Fix-Forward-dragging-text-results-in-wrong-selection.patch
        1970-01-01 01:00:00.000000000 +0100
+++ 
ktexteditor-5.28.0/debian/patches/Fix-Forward-dragging-text-results-in-wrong-selection.patch
        2017-04-07 11:57:02.000000000 +0200
@@ -0,0 +1,138 @@
+From: Dominik Haumann <[email protected]>
+Date: Sat, 7 Jan 2017 12:15:39 +0100
+Subject: Fix: Forward dragging text results in wrong selection
+
+Thanks to Serge Roussak for the patch!
+
+REVIEW: 129758
+BUG: 374163
+---
+ autotests/src/kateview_test.cpp | 67 +++++++++++++++++++++++++++++++++++++++++
+ autotests/src/kateview_test.h   |  2 ++
+ src/view/kateviewinternal.cpp   | 12 +++++---
+ 3 files changed, 77 insertions(+), 4 deletions(-)
+
+diff --git a/autotests/src/kateview_test.cpp b/autotests/src/kateview_test.cpp
+index 950184f4..7372d235 100644
+--- a/autotests/src/kateview_test.cpp
++++ b/autotests/src/kateview_test.cpp
+@@ -317,4 +317,71 @@ void KateViewTest::testFoldFirstLine()
+     QVERIFY(view->textFolding().isLineVisible(1));
+ }
+ 
++// test for bug https://bugs.kde.org/374163
++void KateViewTest::testDragAndDrop()
++{
++    KTextEditor::DocumentPrivate doc(false, false);
++    doc.setText("line0\n"
++                "line1\n"
++                "line2\n"
++                "\n"
++                "line4");
++
++    KTextEditor::View* view = 
static_cast<KTextEditor::View*>(doc.createView(Q_NULLPTR));
++    view->show();
++    view->resize(400, 300);
++
++    QWidget *internalView = nullptr;
++    foreach (QObject* child, view->children()) {
++        if (child->metaObject()->className() == 
QByteArrayLiteral("KateViewInternal")) {
++            internalView = qobject_cast<QWidget *>(child);
++            break;
++        }
++    }
++    QVERIFY(internalView);
++
++    // select "line1\n"
++    view->setSelection(Range(1, 0, 2, 0));
++    QCOMPARE(view->selectionRange(), Range(1, 0, 2, 0));
++
++    QTest::qWaitForWindowExposed(view);
++    const QPoint startDragPos = internalView->mapFrom(view, 
view->cursorToCoordinate(KTextEditor::Cursor(1, 2)));
++    const QPoint endDragPos = internalView->mapFrom(view, 
view->cursorToCoordinate(KTextEditor::Cursor(3, 0)));
++    const QPoint gStartDragPos = internalView->mapToGlobal(startDragPos);
++    const QPoint gEndDragPos = internalView->mapToGlobal(endDragPos);
++
++    // now drag and drop selected text to Cursor(3, 0)
++    QMouseEvent pressEvent(QEvent::MouseButtonPress, startDragPos, 
gStartDragPos,
++                                Qt::LeftButton, Qt::LeftButton, 
Qt::NoModifier);
++    QCoreApplication::sendEvent(internalView, &pressEvent);
++
++    // ugly workaround: Drag & Drop has own blocking event queue. Therefore, 
we need a single-shot timer to
++    // break out of the blocking event queue, see (*)
++    QTimer::singleShot(50, [&](){
++        QMouseEvent moveEvent(QEvent::MouseMove, endDragPos + QPoint(5, 0), 
gEndDragPos + QPoint(5, 0),
++                            Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
++        QMouseEvent releaseEvent(QEvent::MouseButtonRelease, endDragPos, 
gEndDragPos,
++                            Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
++        QCoreApplication::sendEvent(internalView, &moveEvent);
++        QCoreApplication::sendEvent(internalView, &releaseEvent);
++    });
++
++    // (*) this somehow blocks...
++    QMouseEvent moveEvent1(QEvent::MouseMove, endDragPos + QPoint(10, 0), 
gEndDragPos + QPoint(10, 0),
++                           Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
++    QCoreApplication::sendEvent(internalView, &moveEvent1);
++
++    QTest::qWait(100);
++
++    // final tests of dragged text
++    QCOMPARE(doc.text(), QString("line0\n"
++                                 "line2\n"
++                                 "line1\n"
++                                 "\n"
++                                 "line4"));
++
++    QCOMPARE(view->cursorPosition(), KTextEditor::Cursor(3, 0));
++    QCOMPARE(view->selectionRange(), Range(2, 0, 3, 0));
++}
++
+ // kate: indent-mode cstyle; indent-width 4; replace-tabs on;
+diff --git a/autotests/src/kateview_test.h b/autotests/src/kateview_test.h
+index 672e74e6..a48720d9 100644
+--- a/autotests/src/kateview_test.h
++++ b/autotests/src/kateview_test.h
+@@ -43,6 +43,8 @@ private Q_SLOTS:
+     void testKillline();
+ 
+     void testFoldFirstLine();
++
++    void testDragAndDrop();
+ };
+ 
+ #endif // KATE_VIEW_TEST_H
+diff --git a/src/view/kateviewinternal.cpp b/src/view/kateviewinternal.cpp
+index 35545cc1..23a1e21e 100644
+--- a/src/view/kateviewinternal.cpp
++++ b/src/view/kateviewinternal.cpp
+@@ -3241,22 +3241,26 @@ void KateViewInternal::dropEvent(QDropEvent *event)
+         doc()->insertText(targetCursor, text, m_view->blockSelection());
+ 
+         KTextEditor::DocumentCursor startCursor(doc(), targetCursor);
++        KTextEditor::DocumentCursor endCursor1(doc(), targetCursor);
++        const int textLength = text.length();
+ 
+         if (event->dropAction() != Qt::CopyAction) {
+             m_view->removeSelectedText();
++            if (m_cursor.toCursor() < startCursor.toCursor()) {
++                startCursor.move(-textLength);
++                endCursor1.move(-textLength);
++            }
+         }
+ 
+-        KTextEditor::DocumentCursor endCursor1(doc(), startCursor);
+-
+         if (!m_view->blockSelection()) {
+-            endCursor1.move(text.length());
++            endCursor1.move(textLength);
+         } else {
+             endCursor1.setColumn(startCursor.column() + selectionWidth);
+             endCursor1.setLine(startCursor.line() + selectionHeight);
+         }
+ 
+         KTextEditor::Cursor endCursor(endCursor1);
+-        qCDebug(LOG_KTE) << startCursor << "---(" << text.length() << ")---" 
<< endCursor;
++        qCDebug(LOG_KTE) << startCursor << "---(" << textLength << ")---" << 
endCursor;
+         setSelection(KTextEditor::Range(startCursor, endCursor));
+         editSetCursor(endCursor);
+ 
diff -Nru 
ktexteditor-5.28.0/debian/patches/fix-minimap-rendering-for-HiDPI-envs.patch 
ktexteditor-5.28.0/debian/patches/fix-minimap-rendering-for-HiDPI-envs.patch
--- 
ktexteditor-5.28.0/debian/patches/fix-minimap-rendering-for-HiDPI-envs.patch    
    1970-01-01 01:00:00.000000000 +0100
+++ 
ktexteditor-5.28.0/debian/patches/fix-minimap-rendering-for-HiDPI-envs.patch    
    2017-04-07 11:57:02.000000000 +0200
@@ -0,0 +1,64 @@
+From: Christoph Cullmann <[email protected]>
+Date: Mon, 9 Jan 2017 06:17:42 +0100
+Subject: fix minimap rendering for HiDPI envs
+
+Differential Revision: https://phabricator.kde.org/D4018
+---
+ src/view/kateviewhelpers.cpp | 15 ++++++++++-----
+ 1 file changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/src/view/kateviewhelpers.cpp b/src/view/kateviewhelpers.cpp
+index e74a237e..3b45d8d4 100644
+--- a/src/view/kateviewhelpers.cpp
++++ b/src/view/kateviewhelpers.cpp
+@@ -476,7 +476,8 @@ void KateScrollBar::updatePixmap()
+     modifiedLineColor.setHsv(modifiedLineColor.hue(), 255, 255 - 
backgroundColor.value() / 3);
+     savedLineColor.setHsv(savedLineColor.hue(), 100, 255 - 
backgroundColor.value() / 3);
+ 
+-    m_pixmap = QPixmap(pixmapLineWidth, pixmapLineCount);
++    // increase dimensions by ratio
++    m_pixmap = QPixmap(pixmapLineWidth * m_view->devicePixelRatio(), 
pixmapLineCount * m_view->devicePixelRatio());
+     m_pixmap.fill(QColor("transparent"));
+ 
+     // The text currently selected in the document, to be drawn later.
+@@ -583,6 +584,10 @@ void KateScrollBar::updatePixmap()
+             }
+         }
+     }
++
++    // set right ratio
++    m_pixmap.setDevicePixelRatio(m_view->devicePixelRatio());
++
+     //qCDebug(LOG_KTE) << time.elapsed();
+     // Redraw the scrollbar widget with the updated pixmap.
+     update();
+@@ -627,7 +632,7 @@ void KateScrollBar::miniMapPaintEvent(QPaintEvent *e)
+     //style()->drawControl(QStyle::CE_ScrollBarSubLine, &opt, &painter, this);
+ 
+     // calculate the document size and position
+-    const int docHeight = qMin(grooveRect.height(), m_pixmap.height() * 2) - 
2 * docXMargin;
++    const int docHeight = qMin(grooveRect.height(), int(m_pixmap.height() / 
m_pixmap.devicePixelRatio() * 2)) - 2 * docXMargin;
+     const int yoffset = 1; // top-aligned in stead of center-aligned 
(grooveRect.height() - docHeight) / 2;
+     const QRect docRect(QPoint(grooveRect.left() + docXMargin, yoffset + 
grooveRect.top()), QSize(grooveRect.width() - docXMargin, docHeight));
+     m_mapGroveRect = docRect;
+@@ -683,17 +688,17 @@ void KateScrollBar::miniMapPaintEvent(QPaintEvent *e)
+     }
+ 
+     // Smooth transform only when squeezing
+-    if (grooveRect.height() < m_pixmap.height()) {
++    if (grooveRect.height() < m_pixmap.height() / 
m_pixmap.devicePixelRatio()) {
+         painter.setRenderHint(QPainter::SmoothPixmapTransform);
+     }
+ 
+     // draw the modified lines margin
+-    QRect pixmapMarginRect(QPoint(0, 0), QSize(s_pixelMargin, 
m_pixmap.height()));
++    QRect pixmapMarginRect(QPoint(0, 0), QSize(s_pixelMargin, 
m_pixmap.height() / m_pixmap.devicePixelRatio()));
+     QRect docPixmapMarginRect(QPoint(0, docRect.top()), QSize(s_pixelMargin, 
docRect.height()));
+     painter.drawPixmap(docPixmapMarginRect, m_pixmap, pixmapMarginRect);
+ 
+     // calculate the stretch and draw the stretched lines (scrollbar marks)
+-    QRect pixmapRect(QPoint(s_pixelMargin, 0), QSize(m_pixmap.width() - 
s_pixelMargin, m_pixmap.height()));
++    QRect pixmapRect(QPoint(s_pixelMargin, 0), QSize(m_pixmap.width() / 
m_pixmap.devicePixelRatio() - s_pixelMargin, m_pixmap.height() / 
m_pixmap.devicePixelRatio()));
+     QRect docPixmapRect(QPoint(s_pixelMargin, docRect.top()), 
QSize(docRect.width() - s_pixelMargin, docRect.height()));
+     painter.drawPixmap(docPixmapRect, m_pixmap, pixmapRect);
+ 
diff -Nru ktexteditor-5.28.0/debian/patches/katesyntaxtest_check_basename 
ktexteditor-5.28.0/debian/patches/katesyntaxtest_check_basename
--- ktexteditor-5.28.0/debian/patches/katesyntaxtest_check_basename     
2016-11-18 16:07:00.000000000 +0100
+++ ktexteditor-5.28.0/debian/patches/katesyntaxtest_check_basename     
2017-04-07 11:57:02.000000000 +0200
@@ -7,7 +7,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/autotests/src/katesyntaxtest.cpp 
b/autotests/src/katesyntaxtest.cpp
-index 04d74bf..4f0b4f8 100644
+index 04d74bf2..4f0b4f86 100644
 --- a/autotests/src/katesyntaxtest.cpp
 +++ b/autotests/src/katesyntaxtest.cpp
 @@ -55,7 +55,7 @@ void KateSyntaxTest::testSyntaxHighlighting_data()
diff -Nru ktexteditor-5.28.0/debian/patches/series 
ktexteditor-5.28.0/debian/patches/series
--- ktexteditor-5.28.0/debian/patches/series    2016-11-18 16:07:00.000000000 
+0100
+++ ktexteditor-5.28.0/debian/patches/series    2017-04-07 11:57:02.000000000 
+0200
@@ -1 +1,3 @@
 katesyntaxtest_check_basename
+Fix-Forward-dragging-text-results-in-wrong-selection.patch
+fix-minimap-rendering-for-HiDPI-envs.patch

--- End Message ---
--- Begin Message ---
Maximiliano Curia:
> Package: release.debian.org
> Severity: normal
> User: [email protected]
> Usertags: unblock
> 
> Dear release team,
> 
> I've backported two upstream fixes in ktexteditor for stretch that I consider 
> worthwhile:
>  + Fix: Forward dragging text results in wrong selection (a4ad36c)
>    KDE#374163
>  + fix minimap rendering for HiDPI envs (030c37b)
> 
> I've uploaded 5.28.0-2 with these changes and it has built successfully in 
> all 
> the release architectures.
> 
> I'm attaching the corresponding debdiff.
> 
> Happy hacking,
> 
> Please unblock package ktexteditor
> 
> unblock ktexteditor/5.28.0-2
> 
> [...]

Unblocked, thanks.

~Niels

--- End Message ---

Reply via email to