1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
diff --git a/data/themes/Industrial/gtk.css b/data/themes/Industrial/gtk.css
index 179f0d6..f8e6432 100644
--- a/data/themes/Industrial/gtk.css
+++ b/data/themes/Industrial/gtk.css
@@ -17,6 +17,7 @@
color: #000000;
}
+#bottom_pane label,
#bottom_pane GtkLabel {
font: Sans 12;
color: #9E9D9B;
diff --git a/src/greeter-gdk.c b/src/greeter-gdk.c
index 1abbefa..ad3267a 100644
--- a/src/greeter-gdk.c
+++ b/src/greeter-gdk.c
@@ -22,6 +22,7 @@
#define XLIB_ILLEGAL_ACCESS
+#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <gdk/gdkx.h>
#include <gdk/gdkkeysyms.h>
@@ -88,12 +89,14 @@ static void on_ui_expose(void)
}
cr=gdk_cairo_create(win);
+#if GTK_CHECK_VERSION(3,0,0)
cairo_pattern_t *pattern=gdk_window_get_background_pattern(win);
if(pattern)
{
cairo_set_source(cr,pattern);
cairo_paint(cr);
}
+#endif
gdk_cairo_set_source_color(cr, &bg);
cairo_rectangle(cr, rc.x, rc.y, rc.width, rc.height);
diff --git a/src/greeter.c b/src/greeter.c
index 10b7f3f..03503b6 100644
--- a/src/greeter.c
+++ b/src/greeter.c
@@ -146,7 +146,7 @@ static void switch_to_input_user(void)
if(user_list_scrolled)
gtk_widget_show(user_list_scrolled);
else
- gtk_widget_hide(user_list);
+ gtk_widget_show(user_list);
gtk_widget_grab_focus(user_list);
}
else
diff --git a/src/lxdm.c b/src/lxdm.c
index a37f051..722936f 100644
--- a/src/lxdm.c
+++ b/src/lxdm.c
@@ -488,6 +490,9 @@ static char *lxsession_xserver_command(LXSession *s)
{
arg[arc++] = g_strdup("-nolisten");
arg[arc++] = g_strdup("tcp");
+ } else {
+ arg[arc++] = g_strdup("-listen");
+ arg[arc++] = g_strdup("tcp");
}
if(!novtswitch)
{
@@ -750,7 +755,13 @@ static char ** create_client_auth(struct passwd *pw,char **env)
if(xauth_write_file(authfile,s->display,s->mcookie)==-1)
{
g_free(authfile);
- authfile = g_strdup_printf("/var/run/lxdm/.Xauth%d",pw->pw_uid);
+
+ gchar *authdir = g_strdup_printf("/var/run/lxdm/%d", pw->pw_uid);
+ g_mkdir_with_parents(authdir, S_IRWXU);
+ chown(authdir, pw->pw_uid, pw->pw_gid);
+
+ authfile = g_strdup_printf("%s/.Xauthority", authdir);
+ g_free(authdir);
remove(authfile);
xauth_write_file(authfile,s->display,s->mcookie);
}
@@ -956,6 +967,11 @@ static void on_xserver_stop(void *data,int pid, int status)
s->dpy=NULL;
ui_drop();
lxdm_startx(s);
+ #ifndef DISABLE_XAUTH
+ char temp[256];
+ sprintf(temp,"/var/run/lxdm/lxdm-:%d.auth",s->display);
+ setenv("XAUTHORITY",temp,1);
+ #endif
ui_prepare();
lxsession_set_active(s);
}
|