Version: 2.7 (using Devel)
Currently, org.kde.konsole.Konsole.newSession() methods are always creating a new session under first (or lowest?) konsole window. Would be good, to allow to create a new session to defined window. E.g. I have two konsole windows open, each on different desktop. When I create a new session in second konsole window, the session is not opened in current window, where I'm expecting it, but in the first window.
To solve it a new method currentWindow() should be added. It will be similar to the org.kde.konsole.Konsole.currentSession() method. Also a new methods org.kde.konsole.Konsole.newSession() accepting window parameter, needs to be created.
Steps to Reproduce:
1) Open two konsole windows
2) Go to second konsole window
3) Run command: qdbus org.kde.konsole /Konsole newSession
New session is open in first konsole window
New session is created in specified konsole window. When not specified, the current window should be used. If current window is not available (script is running outside of the konsole window), lowest konsole window will be used.
*** Bug 253833 has been marked as a duplicate of this bug. ***
I just wish to add that I think someone misfiled this as "wishlist", it should be a bug. Why? Because the dbus methods don't behave as expected.
For example, after you create a new session in a second window, calling nextSession() and prevSession() will traverse (loop) the sessions in the first window only.
So you can query your session id with currentSession() and then trying to find it using prev/nextSession() fails.
If this is not a bug, what is the idea behind it?
I'd really like to see this resolved, it's drving me crazy sometimes...
(In reply to comment #2)
You are right. It is a bug. My fault of changing its severity when I have not fully understood the underlying problem.
FYI, this bug is really not ignored. You can read comment #2 in bug 281513 to get a general idea why some dbus methods behave in a strange way.
Git commit 07cddfe302233c3555258f077429e55ce622e262 by Jekyll Wu.
Committed on 08/02/2012 at 18:49.
Pushed by jekyllwu into branch 'master'.
Create dbus object for each Konsole window respectively
Its naming scheme is "/Windows/N", similar to "/Sessions/N" for
sessions. That is not the final decision and might change before next
The old "/Konsole" dbus object is still available at this moment, but
it might disappear or be used for something different in the future, so
it is better to use "/Windows/N" from now on.
For convenience, $KONSOLE_DBUS_WINDOW can be used to refer to the dbus
object corresponding to the Konsole window containing current session.
Note, that environment variable does not work well with detaching and
draging. Maybe it should not be added at all.
Related: bug 281513, bug 292309
M +2 -0 src/Application.cpp
M +5 -0 src/Session.cpp
M +2 -0 src/Session.h
M +11 -0 src/ViewManager.cpp
M +5 -0 src/ViewManager.h
Hi, it works great, thanks.
Regarding to $KONSOLE_DBUS_WINDOW. Maybe could be replaced by currentWindow() dbus call. (similar to currentSession())
Well, not that easy or feasible.
The situation is complicated by the fact that Konsole support these three features:
1). Split view, which means one session might have multiple indenpendant views
2). Detaching view, which means one view can be detached from one window and live in its own new window.
3). Dragging view, which means one view can be dragged from window 1 to window 2
So taking all those flexible and dynamic behavior into account, it is quite hard or just impossible to answer the question: "which window does that or current session lives in?"