Commit 4f645f1b authored by Felix Ernst's avatar Felix Ernst

Fix navigator alignment for right-to-left localizations

parent 1208f866
......@@ -13,6 +13,7 @@
#include <KXMLGUIFactory>
#include <KXmlGuiWindow>
#include <QApplication>
#include <QDomDocument>
#include <QHBoxLayout>
#include <QPushButton>
......@@ -90,10 +91,20 @@ void DolphinNavigatorsWidgetAction::followViewContainersGeometry(
int globalXOfPrimary, int widthOfPrimary,
int globalXOfSecondary, int widthOfSecondary)
{
m_globalXOfSplitter = m_splitter->mapToGlobal(QPoint(0,0)).x();
m_globalXOfPrimary = globalXOfPrimary;
if (QApplication::layoutDirection() == Qt::LeftToRight) {
m_globalXOfSplitter = m_splitter->mapToGlobal(QPoint(0,0)).x();
m_globalXOfPrimary = globalXOfPrimary;
m_globalXOfSecondary = globalXOfSecondary;
} else {
// When the direction is reversed, globalX does not change.
// For the adjustSpacing() code to work we need globalX to measure from right to left
// and to measure up to the rightmost point of a widget instead of the leftmost.
m_globalXOfSplitter = (-1) * (m_splitter->mapToGlobal(QPoint(0,0)).x() + m_splitter->width());
m_globalXOfPrimary = (-1) * (globalXOfPrimary + widthOfPrimary);
m_globalXOfSecondary = (globalXOfSecondary == INT_MIN) ? INT_MIN :
(-1) * (globalXOfSecondary + widthOfSecondary);
}
m_widthOfPrimary = widthOfPrimary;
m_globalXOfSecondary = globalXOfSecondary;
m_widthOfSecondary = widthOfSecondary;
adjustSpacing();
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment