┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dolphinmainwindow.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index ba2b51323..917aa42ce 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -826,7 +826,16 @@ void DolphinMainWindow::createDirectory()
// just check if we are already running one. This prevents opening multiple
// dialogs. BUG:481401
if (!m_newFileMenu->isCreateDirectoryRunning()) {
- m_newFileMenu->setWorkingDirectory(activeViewContainer()->url());
+ QUrl targetDirectory = activeViewContainer()->url();
+
+ // Check if there's a single selected directory to create the new folder inside
+ // This makes Ctrl+Shift+N behavior consistent with right-click context menu
+ const KFileItemList selectedItems = m_activeViewContainer->view()->selectedItems();
+ if (selectedItems.count() == 1 && selectedItems.first().isDir()) {
+ targetDirectory = selectedItems.first().url();
+ }
+
+ m_newFileMenu->setWorkingDirectory(targetDirectory);
m_newFileMenu->createDirectory();
}
}
@@ -835,7 +844,16 @@ void DolphinMainWindow::createFile()
{
// Use the same logic as in createDirectory()
if (!m_newFileMenu->isCreateFileRunning()) {
- m_newFileMenu->setWorkingDirectory(activeViewContainer()->url());
+ QUrl targetDirectory = activeViewContainer()->url();
+
+ // Check if there's a single selected directory to create the new file inside
+ // This makes the create file action consistent with create directory
+ const KFileItemList selectedItems = m_activeViewContainer->view()->selectedItems();
+ if (selectedItems.count() == 1 && selectedItems.first().isDir()) {
+ targetDirectory = selectedItems.first().url();
+ }
+
+ m_newFileMenu->setWorkingDirectory(targetDirectory);
m_newFileMenu->createFile();
}
}