Introduce session management
authorDavid Herrmann <dh.herrmann@googlemail.com>
Thu, 11 Oct 2012 08:54:01 +0000 (10:54 +0200)
committerDavid Herrmann <dh.herrmann@googlemail.com>
Thu, 11 Oct 2012 08:54:01 +0000 (10:54 +0200)
commit11eaec0e686490deb8b64c3621e8ca95eb824a39
tree4ee73a1c36904a0e454562f6e0d49d2ddd7c2738
parent23f51fc2a75009ba9e75bbe65bedcbda8c7edf30
Introduce session management

On seats other than seat0 we do not have any session-management, because
VTs are not available. Furthermore, if we want to get rid of CONFIG_VT
entirely, we also need to provide session-management for seat0.

This commit introduces sessions. Every seat (seats are now managed in
kmscon_seat.c) can have registered sessions. One of the sessions is active
and gets control over all displays. Session switching is entirely handled
inside of kmscon so there is always an active session (except if no
session is registered at all).

This also reworks the seat-management. kmscon_main.c now only manages the
seat allocation/deallocation and video-objects. The seat itself is handled
inside of kmscon_seat.c and does not know of uterm_video objects. Instead,
it is assigned a list of displays that it can use. Everything is still
hotplugging capable so user-experience should be the same as before.

The kmscon_terminal layer is reworked to be session based. So every
terminal is now a single session. By default, a single terminal-session is
created for each seat. This may be changed, though.

There is currently no input-control to change between session with
keyboard hotkeys. However, this will be added when we have more than one
session.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
Makefile.am
src/kmscon_main.c
src/kmscon_seat.c [new file with mode: 0644]
src/kmscon_seat.h [new file with mode: 0644]
src/kmscon_terminal.c
src/kmscon_terminal.h