SHA256
1
0
forked from pool/gdm
OBS User unknown
2008-12-01 11:07:15 +00:00
committed by Git OBS Bridge
parent 655258077f
commit 726d495c80
5 changed files with 276 additions and 17 deletions

View File

@@ -1665,7 +1665,7 @@ index 0000000..6a318ff
+
+#endif /* __GDM_DOMAIN_PROVIDER_H */
diff --git a/gui/simple-greeter/gdm-greeter-panel.c b/gui/simple-greeter/gdm-greeter-panel.c
index 50478c5..e557ba9 100644
index 50478c5..825f0c5 100644
--- a/gui/simple-greeter/gdm-greeter-panel.c
+++ b/gui/simple-greeter/gdm-greeter-panel.c
@@ -40,6 +40,7 @@
@@ -1756,7 +1756,7 @@ index 50478c5..e557ba9 100644
}
void
@@ -651,6 +690,7 @@ gdm_greeter_panel_hide_user_options (GdmGreeterPanel *panel)
@@ -651,18 +690,26 @@ gdm_greeter_panel_hide_user_options (GdmGreeterPanel *panel)
gtk_widget_hide (panel->priv->session_option_widget);
gtk_widget_hide (panel->priv->language_option_widget);
gtk_widget_hide (panel->priv->layout_option_widget);
@@ -1764,7 +1764,26 @@ index 50478c5..e557ba9 100644
g_debug ("GdmGreeterPanel: activating default layout");
gdm_layout_activate (NULL);
@@ -730,3 +770,20 @@ gdm_greeter_panel_set_default_session_name (GdmGreeterPanel *panel,
}
void
+gdm_greeter_panel_set_domain_enabled (GdmGreeterPanel *panel, gboolean enabled)
+{
+ gtk_widget_set_sensitive (panel->priv->domain_option_widget, enabled);
+}
+
+void
gdm_greeter_panel_reset (GdmGreeterPanel *panel)
{
gdm_greeter_panel_set_default_language_name (panel, NULL);
gdm_greeter_panel_set_default_layout_name (panel, NULL);
gdm_greeter_panel_set_default_session_name (panel, NULL);
gdm_greeter_panel_hide_user_options (panel);
+ gdm_greeter_panel_set_domain_enabled (panel, TRUE);
}
void
@@ -730,3 +777,20 @@ gdm_greeter_panel_set_default_session_name (GdmGreeterPanel *panel,
gdm_option_widget_set_default_item (GDM_OPTION_WIDGET (panel->priv->session_option_widget),
session_name);
}
@@ -1786,7 +1805,7 @@ index 50478c5..e557ba9 100644
+ domain_name);
+}
diff --git a/gui/simple-greeter/gdm-greeter-panel.h b/gui/simple-greeter/gdm-greeter-panel.h
index 07cca3f..5d2e2b2 100644
index 07cca3f..6079569 100644
--- a/gui/simple-greeter/gdm-greeter-panel.h
+++ b/gui/simple-greeter/gdm-greeter-panel.h
@@ -53,6 +53,9 @@ typedef struct
@@ -1799,7 +1818,15 @@ index 07cca3f..5d2e2b2 100644
} GdmGreeterPanelClass;
GType gdm_greeter_panel_get_type (void);
@@ -70,6 +73,8 @@ void gdm_greeter_panel_set_default_layout_name (GdmGree
@@ -64,12 +67,16 @@ void gdm_greeter_panel_show_user_options (GdmGree
void gdm_greeter_panel_hide_user_options (GdmGreeterPanel *panel);
void gdm_greeter_panel_reset (GdmGreeterPanel *panel);
+void gdm_greeter_panel_set_domain_enabled (GdmGreeterPanel *panel, gboolean enabled);
+
void gdm_greeter_panel_set_default_language_name (GdmGreeterPanel *panel,
const char *language_name);
void gdm_greeter_panel_set_default_layout_name (GdmGreeterPanel *panel,
const char *layout_name);
void gdm_greeter_panel_set_default_session_name (GdmGreeterPanel *panel,
const char *session_name);
@@ -1809,7 +1836,7 @@ index 07cca3f..5d2e2b2 100644
#endif /* __GDM_GREETER_PANEL_H */
diff --git a/gui/simple-greeter/gdm-greeter-session.c b/gui/simple-greeter/gdm-greeter-session.c
index 83375b2..50c0e33 100644
index 83375b2..fe85746 100644
--- a/gui/simple-greeter/gdm-greeter-session.c
+++ b/gui/simple-greeter/gdm-greeter-session.c
@@ -38,6 +38,8 @@
@@ -1821,17 +1848,19 @@ index 83375b2..50c0e33 100644
#include "gdm-profile.h"
#define GDM_GREETER_SESSION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_GREETER_SESSION, GdmGreeterSessionPrivate))
@@ -48,6 +50,9 @@ struct GdmGreeterSessionPrivate
@@ -48,6 +50,11 @@ struct GdmGreeterSessionPrivate
GtkWidget *login_window;
GtkWidget *panel;
+
+ char *user;
+ char *domain;
+
+ gint n_info_queries;
};
enum {
@@ -62,6 +67,33 @@ G_DEFINE_TYPE (GdmGreeterSession, gdm_greeter_session, G_TYPE_OBJECT)
@@ -62,6 +69,33 @@ G_DEFINE_TYPE (GdmGreeterSession, gdm_greeter_session, G_TYPE_OBJECT)
static gpointer session_object = NULL;
@@ -1865,7 +1894,28 @@ index 83375b2..50c0e33 100644
static void
on_info (GdmGreeterClient *client,
const char *text,
@@ -198,8 +230,14 @@ on_begin_verification_for_user (GdmGreeterLoginWindow *login_window,
@@ -99,6 +133,10 @@ on_reset (GdmGreeterClient *client,
gdm_greeter_panel_reset (GDM_GREETER_PANEL (session->priv->panel));
gdm_greeter_login_window_reset (GDM_GREETER_LOGIN_WINDOW (session->priv->login_window));
+
+ session->priv->n_info_queries = 0;
+ if (session->priv->panel)
+ gdm_greeter_panel_set_domain_enabled (GDM_GREETER_PANEL (session->priv->panel), TRUE);
}
static void
@@ -174,6 +212,9 @@ on_secret_info_query (GdmGreeterClient *client,
{
g_debug ("GdmGreeterSession: Secret info query: %s", text);
+ if (session->priv->panel)
+ gdm_greeter_panel_set_domain_enabled (GDM_GREETER_PANEL (session->priv->panel), FALSE);
+
gdm_greeter_login_window_secret_info_query (GDM_GREETER_LOGIN_WINDOW (session->priv->login_window), text);
}
@@ -198,8 +239,14 @@ on_begin_verification_for_user (GdmGreeterLoginWindow *login_window,
const char *username,
GdmGreeterSession *session)
{
@@ -1881,7 +1931,30 @@ index 83375b2..50c0e33 100644
}
static void
@@ -236,13 +274,46 @@ on_select_layout (GdmGreeterSession *session,
@@ -207,8 +254,21 @@ on_query_answer (GdmGreeterLoginWindow *login_window,
const char *text,
GdmGreeterSession *session)
{
+ gchar *temp;
+
+ if (session->priv->n_info_queries == 0)
+ temp = maybe_prepend_domain_to_user (session, text);
+ else
+ temp = g_strdup (text);
+
+ if (session->priv->panel)
+ gdm_greeter_panel_set_domain_enabled (GDM_GREETER_PANEL (session->priv->panel), FALSE);
+
gdm_greeter_client_call_answer_query (session->priv->client,
- text);
+ temp);
+
+ g_free (temp);
+ session->priv->n_info_queries++;
}
static void
@@ -236,13 +296,46 @@ on_select_layout (GdmGreeterSession *session,
}
static void
@@ -1929,7 +2002,18 @@ index 83375b2..50c0e33 100644
}
static void
@@ -300,6 +371,11 @@ toggle_panel (GdmGreeterSession *session,
@@ -251,6 +344,10 @@ on_cancelled (GdmGreeterLoginWindow *login_window,
{
gdm_greeter_panel_hide_user_options (GDM_GREETER_PANEL (session->priv->panel));
gdm_greeter_client_call_cancel (session->priv->client);
+
+ session->priv->n_info_queries = 0;
+ if (session->priv->panel)
+ gdm_greeter_panel_set_domain_enabled (GDM_GREETER_PANEL (session->priv->panel), TRUE);
}
static void
@@ -300,6 +397,11 @@ toggle_panel (GdmGreeterSession *session,
G_CALLBACK (on_select_session),
session);
@@ -1941,7 +2025,16 @@ index 83375b2..50c0e33 100644
gtk_widget_show (session->priv->panel);
} else {
gtk_widget_destroy (session->priv->panel);
@@ -563,6 +639,9 @@ gdm_greeter_session_finalize (GObject *object)
@@ -542,6 +644,8 @@ gdm_greeter_session_init (GdmGreeterSession *session)
G_CALLBACK (on_user_authorized),
session);
+ session->priv->n_info_queries = 0;
+
/* We want to listen for panel mnemonics even if the
* login window is focused, so we intercept them here.
*/
@@ -563,6 +667,9 @@ gdm_greeter_session_finalize (GObject *object)
g_return_if_fail (greeter_session->priv != NULL);