diff --git a/src/view/kateviewhelpers.h b/src/view/kateviewhelpers.h --- a/src/view/kateviewhelpers.h +++ b/src/view/kateviewhelpers.h @@ -311,6 +311,8 @@ void displayRangeChanged(); private: + void dragMoveEvent(QDragMoveEvent *event) override; + void dropEvent(QDropEvent *event) override; void paintEvent(QPaintEvent *) override; void paintBorder(int x, int y, int width, int height); diff --git a/src/view/kateviewhelpers.cpp b/src/view/kateviewhelpers.cpp --- a/src/view/kateviewhelpers.cpp +++ b/src/view/kateviewhelpers.cpp @@ -1444,6 +1444,7 @@ , m_nextHighlightBlock(-2) , m_currentBlockLine(-1) { + setAcceptDrops(true); setAttribute(Qt::WA_StaticContents); setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Minimum); setMouseTracking(true); @@ -1678,6 +1679,22 @@ return width; } +void KateIconBorder::dragMoveEvent(QDragMoveEvent *event) +{ + // FIXME Just calling m_view->m_viewInternal->dragMoveEvent(e) don't work + // as intended, we need to set the cursor at column 1 + // Is there a way to change the pos of the event? + QPoint pos(0, event->pos().y()); + // Code copy of KateViewInternal::dragMoveEvent + m_view->m_viewInternal->placeCursor(pos, true, false); + m_view->m_viewInternal->fixDropEvent(event); +} + +void KateIconBorder::dropEvent(QDropEvent *event) +{ + m_view->m_viewInternal->dropEvent(event); +} + void KateIconBorder::paintEvent(QPaintEvent *e) { paintBorder(e->rect().x(), e->rect().y(), e->rect().width(), e->rect().height());