| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| | |
libgdm: Fix session loading precedence
See merge request GNOME/gdm!202
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
One feature that GDM is supposed to support is a precedence order
for loading xsession files.
If someone has a file in /etc/X11/sessions it's supposed to override
a file in /usr/share/xsessions.
This works okay from a backend point of view. /etc/X11/sessions can
change the command getting run, for instance, but it doesn't work
from a front end point of view. Menu items can't get hidden in
the session cog.
This is due to a bug in libgdm where it inadvertently gives
/usr/share/xsessions higher precedence than /etc/X11/sessions.
This commit fixes that by processing the lists in reverse order,
and making sure to remove already added entries if overriding
entries are hidden.
|
|\
| |
| |
| |
| | |
gdm-manager: Don't assume ownership of seat_id
See merge request GNOME/gdm!205
|
|/
|
|
|
|
|
| |
Since commit 89148f111d0ae91b5ba23776a6c57e917e5a13dc the seat id
doesn't get duplicated. Don't free the returned string.
Fixes: 6184c8a9a113abc963452dd3fdc91d1597385f56
|
|\
| |
| |
| |
| | |
gdm-session-settings: Plug a leak
See merge request GNOME/gdm!204
|
|/
|
|
|
|
| |
Fallout from f0252728e9ef2a23b0d98a4fe2c697fdc673d254. The variable
was used to free the object pointed by settings->user after
replacing it.
|
|\
| |
| |
| |
| | |
local-display-factory: Only check current VT for respawn on seat0
See merge request GNOME/gdm!203
|
|/
|
|
|
|
| |
There's no reason that seat0 having the initial VT on foreground should
trigger ensuring display on unrelated seats. Fix this by only checking
for the current VT if the newly ended session belongs to seat0.
|
|\
| |
| |
| |
| |
| |
| | |
Multiseat enablement for Wayland (gdm side)
Closes #654
See merge request GNOME/gdm!174
|
| |
| |
| |
| | |
session terminates
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
respawned on termination
Trigger ensuring a greeter session for a non-primary seat when it
terminates and only looking for displays with state of
GDM_DISPLAY_MANAGED when checking for duplicates in
ensure_display_for_seat on non-primary seats.
|
| |
| |
| |
| |
| |
| |
| |
| | |
instead of all seats
An user logging out from another seat shouldn't affect other users on
other seats. Limit ensuring a greeter session to the seat that have just
been logged out.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
looking up the display from display store
On non-primary seats, GDM will look up the display from display store
and abort ensuring a display for seat. This causes the seat to have no
active session when a user logs out, instead of the login screen.
Fix this by searching for greeter sessions from logind before looking up
the display from display store.
|
| |
| |
| |
| |
| | |
pam_systemd complains and refuse to create the login session
when PAM_TTY or XDG_VTNR is configured on non-primary seats.
|
| | |
|
|/
|
|
|
|
|
|
|
| |
systemd-logind escapes the seat name prior to exposing as a DBus object.
As a result, seat names like "seat-name" may be escaped to
"seat_x2dname" when exposed as a DBus object.
Use DBus to acquire the seat name instead of using the last component of
the object path.
|
|\
| |
| |
| |
| | |
meson: allow building with elogind
See merge request GNOME/gdm!113
|
|/
|
|
|
|
|
| |
Currently, the GDM meson build has a hard dependency on systemd.
However, GDM can function just fine if one is using elogind. This allows
a user to build GDM against libelogind and also disable the systemd
system and user units.
|
|\
| |
| |
| |
| | |
Use g_auto*
See merge request GNOME/gdm!197
|
| | |
|
| |
| |
| |
| | |
We didn't free the strings inside the array.
|
| |
| |
| |
| |
| |
| | |
gdm_dbus_worker_manager_call_choice_list_query_sync does not take
ownership of choices_as_variant. We must free it. While at it, use
g_autoptr.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
The function is supposed to return const char *. Every caller is not
freeing the returned string. Don't duplicate it.
|
| | |
|
| |
| |
| |
| | |
session_type was not freed. While at it use g_autofree.
|
| |
| |
| |
| | |
client_session_is is not freed. While at it, use g_autofree.
|
| |
| |
| |
| |
| | |
identifier was not freed. While at it use g_autofree and simplify
how the identifier is created.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
display_name and seat_id were leaked. While at it, use g_autoptr() for
launch_environment.
|
| | |
|
| |
| |
| |
| |
| | |
g_return_if_fail (GDM_IS_LAUNCH_ENVIRONMENT (object)) already checks
it it is NULL.
|
| | |
|
| |
| |
| |
| | |
error was not freed in the second if branch. While at it use g_autoptr.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
error was leaked. While at it use g_auto*.
|