patches/libgksuui1.0-02-GUI-update.diff
author rohinis
Tue, 29 Nov 2011 17:32:55 +0000
branchs11express-2010-11
changeset 22234 c23e64da3e06
parent 15569 f5ee708e987d
permissions -rw-r--r--
2011-11-29 Rohini S <[email protected]> * patches/Python26-22-audio.diff: Fixes CVE-2010-1634 * specs/SUNWPython26.spec: Fixes CR 7085446
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8406
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
     1
--- libgksuui1.0-1.0.5.orig/libgksuui/gksuui-convenience.c	Sat May 28 03:25:35 2005
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
     2
+++ libgksuui1.0-1.0.5/libgksuui/gksuui-convenience.c	Mon Aug 21 15:02:51 2006
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
     3
@@ -195,7 +195,7 @@
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
     4
      gksuui_dialog_set_message(GKSUUI_DIALOG(dialog), message);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
     5
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
     6
   gtk_window_set_keep_above(dialog, TRUE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
     7
-  gtk_widget_show_all (dialog);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
     8
+  gtk_widget_show (dialog);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
     9
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    10
   while (gtk_events_pending())
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    11
     gtk_main_iteration ();
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    12
@@ -260,7 +260,7 @@
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    13
     case GTK_RESPONSE_NONE:
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    14
       gtk_widget_destroy (dialog);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    15
       gksu_secure_free (pass);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    16
-      return 0;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    17
+      return NULL;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    18
     }
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    19
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    20
   gtk_widget_destroy (dialog);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    21
--- libgksuui1.0-1.0.5.orig/libgksuui/gksuui-dialog.c	Mon Jun 13 20:04:48 2005
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    22
+++ libgksuui1.0-1.0.5/libgksuui/gksuui-dialog.c	Mon Aug 21 14:46:46 2006
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    23
@@ -19,6 +19,10 @@
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    24
  */
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    25
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    26
 #include <gtk/gtk.h>
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    27
+#include <X11/Xlib.h>
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    28
+#include <X11/XKBlib.h>
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    29
+#include <gdk/gdkkeysyms.h>
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    30
+#include <gdk/gdkx.h>
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    31
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    32
 #include "defines.h"
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    33
 #include "../config.h"
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    34
@@ -25,6 +29,23 @@
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    35
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    36
 #include "gksuui-dialog.h"
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    37
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    38
+static gboolean caps_lock_state = FALSE;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    39
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    40
+gboolean
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    41
+gksuui_is_capslock_on (void);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    42
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    43
+void
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    44
+capslock_update (GksuuiDialog *gksuui_dialog, gboolean new_state);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    45
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    46
+void
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    47
+ok_button_update ( GksuuiDialog *dialog );
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    48
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    49
+void
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    50
+entry_key_release_event ( GtkWidget *widget, GdkEventKey *key, gpointer data);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    51
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    52
+gboolean
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    53
+cl_key_press_event (GtkWidget *widget, GdkEventKey *key, gpointer data);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    54
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    55
 static void
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    56
 gksuui_dialog_class_init (GksuuiDialogClass *klass);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    57
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    58
@@ -69,7 +90,14 @@
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    59
   GtkDialog *dialog;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    60
   GtkWidget *hbox; /* aditional hbox for 'password: entry' label */
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    61
   GtkWidget *label; /* the label itself */
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    62
-
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    63
+  AtkObject *atk_entry, *atk_label;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    64
+  AtkObject *rel_obj[1];
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    65
+  AtkRelation *relation;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    66
+  AtkRelationSet *set;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    67
+  GtkWidget *table;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    68
+  GtkWidget *warning_image;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    69
+  GtkWidget *warning_info;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    70
+  
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    71
   /* 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    72
      make sure we're using UTF-8 and getting our locale files
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    73
      from the right place
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    74
@@ -85,7 +113,7 @@
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    75
   gksuui_dialog->main_vbox = dialog->vbox;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    76
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    77
   gtk_window_set_title (GTK_WINDOW(gksuui_dialog), "");
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    78
-  gtk_dialog_set_has_separator (GTK_DIALOG(gksuui_dialog), FALSE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    79
+  gtk_dialog_set_has_separator (GTK_DIALOG(gksuui_dialog), TRUE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    80
   gtk_container_set_border_width (GTK_CONTAINER(gksuui_dialog), 6);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    81
   gtk_box_set_spacing (GTK_BOX(gksuui_dialog->main_vbox), 12);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    82
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    83
@@ -100,16 +128,18 @@
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    84
 						      GTK_RESPONSE_CANCEL);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    85
   /*  the ok button  */
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    86
   gksuui_dialog->ok_button = gtk_dialog_add_button (dialog,
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    87
-						  _("Continue"),
15569
f5ee708e987d 2009-04-06 Takao Fujiwara <[email protected]>
fujiwara
parents: 8406
diff changeset
    88
+						  GTK_STOCK_OK,
8406
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    89
 						  GTK_RESPONSE_OK);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    90
-  gtk_widget_grab_default (gksuui_dialog->ok_button);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    91
+  gtk_widget_set_sensitive ( gksuui_dialog->ok_button, FALSE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    92
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    93
+  g_signal_connect (G_OBJECT (gksuui_dialog), "key_press_event",
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    94
+		    G_CALLBACK (cl_key_press_event), NULL);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    95
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    96
   /* hbox */
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    97
   gksuui_dialog->hbox = gtk_hbox_new (FALSE, 12);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    98
   gtk_container_set_border_width (GTK_CONTAINER(gksuui_dialog->hbox), 6);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
    99
   gtk_box_pack_start (GTK_BOX(gksuui_dialog->main_vbox),
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   100
-		      gksuui_dialog->hbox, TRUE, TRUE, 0);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   101
+		      gksuui_dialog->hbox, FALSE, FALSE, 0);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   102
   gtk_widget_show (gksuui_dialog->hbox);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   103
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   104
   /* image */
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   105
@@ -122,16 +152,28 @@
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   106
   gtk_widget_show (gksuui_dialog->image);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   107
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   108
   /* vbox for label and entry */
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   109
-  gksuui_dialog->entry_vbox = gtk_vbox_new (FALSE, 12);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   110
+  gksuui_dialog->entry_vbox = gtk_vbox_new (FALSE, 6);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   111
   gtk_box_pack_start (GTK_BOX(gksuui_dialog->hbox), gksuui_dialog->entry_vbox, 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   112
 		      TRUE, TRUE, 0);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   113
   gtk_widget_show (gksuui_dialog->entry_vbox);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   114
 
15569
f5ee708e987d 2009-04-06 Takao Fujiwara <[email protected]>
fujiwara
parents: 8406
diff changeset
   115
-  /* label */
f5ee708e987d 2009-04-06 Takao Fujiwara <[email protected]>
fujiwara
parents: 8406
diff changeset
   116
-  gksuui_dialog->label = gtk_label_new (_("<span weight=\"bold\" size=\"larger\">"
f5ee708e987d 2009-04-06 Takao Fujiwara <[email protected]>
fujiwara
parents: 8406
diff changeset
   117
+  /* SUN_BRANDING required_label */
8406
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   118
+  gksuui_dialog->required_label = gtk_label_new (_("<span weight=\"bold\" size=\"larger\">"
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   119
+					  "Password Required</span>"));
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   120
+  gtk_label_set_justify (GTK_LABEL(gksuui_dialog->required_label), 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   121
+			 GTK_JUSTIFY_CENTER);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   122
+  gtk_label_set_use_markup (GTK_LABEL(gksuui_dialog->required_label), TRUE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   123
+  gtk_label_set_line_wrap (GTK_LABEL(gksuui_dialog->required_label), TRUE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   124
+  gtk_misc_set_alignment (GTK_MISC(gksuui_dialog->required_label), 0.0, 0);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   125
+  gtk_box_pack_start (GTK_BOX(gksuui_dialog->entry_vbox), 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   126
+		      gksuui_dialog->required_label, TRUE, TRUE, 0);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   127
+  gtk_widget_show (gksuui_dialog->required_label);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   128
+
15569
f5ee708e987d 2009-04-06 Takao Fujiwara <[email protected]>
fujiwara
parents: 8406
diff changeset
   129
+  /* SUN_BRANDING label */
8406
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   130
+  gksuui_dialog->label = gtk_label_new (_("<span weight=\"normal\" size=\"medium\">"
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   131
 					  "Type the root password.</span>\n"));
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   132
   gtk_label_set_justify (GTK_LABEL(gksuui_dialog->label), 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   133
-			 GTK_JUSTIFY_CENTER);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   134
+			 GTK_JUSTIFY_LEFT);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   135
   gtk_label_set_use_markup (GTK_LABEL(gksuui_dialog->label), TRUE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   136
   gtk_label_set_line_wrap (GTK_LABEL(gksuui_dialog->label), TRUE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   137
   gtk_misc_set_alignment (GTK_MISC(gksuui_dialog->label), 0.0, 0);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   138
@@ -139,28 +181,75 @@
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   139
 		      gksuui_dialog->label, TRUE, TRUE, 0);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   140
   gtk_widget_show (gksuui_dialog->label);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   141
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   142
-  /* hbox for entry and label */
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   143
-  hbox = gtk_hbox_new (FALSE, 6);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   144
-  gtk_box_pack_start (GTK_BOX (gksuui_dialog->entry_vbox), hbox, 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   145
-		      TRUE, TRUE, 0);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   146
-  gtk_widget_show (hbox);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   147
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   148
+  /* table for entry and password label, warning image and warning info */
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   149
+  table = gtk_table_new ( 3, 2, FALSE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   150
+  gtk_container_add (GTK_CONTAINER(gksuui_dialog->entry_vbox), table);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   151
+  gtk_widget_show (table);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   152
+
15569
f5ee708e987d 2009-04-06 Takao Fujiwara <[email protected]>
fujiwara
parents: 8406
diff changeset
   153
-  /* entry label */
8406
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   154
-  label = gtk_label_new (_("Password:"));
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   155
-  gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   156
+  label = gtk_label_new (NULL);
15569
f5ee708e987d 2009-04-06 Takao Fujiwara <[email protected]>
fujiwara
parents: 8406
diff changeset
   157
+  /* SUN_BRANDING entry label */
8406
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   158
+  gtk_label_set_text_with_mnemonic(GTK_LABEL(label), _("_Password:"));
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   159
+  gtk_table_attach ( GTK_TABLE (table), label, 0, 1, 0, 1, GTK_SHRINK, GTK_SHRINK, 0, 0);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   160
   gtk_widget_show (label);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   161
   
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   162
   /* entry */
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   163
   gksuui_dialog->entry = gtk_entry_new();
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   164
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   165
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   166
   g_signal_connect_swapped (G_OBJECT(gksuui_dialog->entry), "activate",
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   167
 			    G_CALLBACK(gtk_button_clicked), 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   168
 			    gksuui_dialog->ok_button);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   169
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   170
+  g_signal_connect (G_OBJECT (gksuui_dialog->entry), "key_release_event",
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   171
+		    G_CALLBACK (entry_key_release_event), gksuui_dialog);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   172
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   173
+  gtk_label_set_mnemonic_widget (GTK_LABEL(label), gksuui_dialog->entry);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   174
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   175
+  atk_entry = gtk_widget_get_accessible( gksuui_dialog->entry );
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   176
+  atk_label = gtk_widget_get_accessible( label );
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   177
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   178
+  /* Create the labelled-by relation */
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   179
+  set = atk_object_ref_relation_set (atk_entry);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   180
+  rel_obj[0] = atk_label;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   181
+  relation = atk_relation_new (rel_obj, 1, ATK_RELATION_LABEL_FOR);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   182
+  atk_relation_set_add (set, relation);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   183
+  g_object_unref ( relation );
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   184
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   185
+  /* Create the label-for relation */
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   186
+  set = atk_object_ref_relation_set (atk_label);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   187
+  rel_obj[0] = atk_entry;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   188
+  relation = atk_relation_new (rel_obj, 1, ATK_RELATION_LABELLED_BY);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   189
+  atk_relation_set_add (set, relation);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   190
+  g_object_unref ( relation );
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   191
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   192
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   193
   gtk_entry_set_visibility(GTK_ENTRY(gksuui_dialog->entry), FALSE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   194
-  gtk_box_pack_start (GTK_BOX (hbox), gksuui_dialog->entry, 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   195
-		      TRUE, TRUE, 0);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   196
+  gtk_table_attach_defaults ( GTK_TABLE (table), gksuui_dialog->entry, 1, 3, 0, 1);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   197
   gtk_widget_show (gksuui_dialog->entry);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   198
   gtk_widget_grab_focus(gksuui_dialog->entry);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   199
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   200
+  /* add warning image */
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   201
+  gksuui_dialog->info_image = 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   202
+  gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING,
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   203
+			      GTK_ICON_SIZE_SMALL_TOOLBAR);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   204
+  gtk_table_attach ( GTK_TABLE (table), gksuui_dialog->info_image, 1, 2, 1, 2, GTK_SHRINK, GTK_SHRINK, 0, 0);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   205
+  gtk_misc_set_alignment (GTK_MISC(gksuui_dialog->info_image), 0.5, 0);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   206
+  gtk_widget_show (gksuui_dialog->info_image);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   207
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   208
+  /* add warning info */
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   209
+  gksuui_dialog->info_label = gtk_label_new( NULL );
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   210
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   211
+  gtk_label_set_justify (GTK_LABEL(gksuui_dialog->info_label), 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   212
+			 GTK_JUSTIFY_LEFT );
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   213
+  gtk_label_set_use_markup (GTK_LABEL(gksuui_dialog->info_label), TRUE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   214
+  gtk_label_set_line_wrap (GTK_LABEL(gksuui_dialog->info_label), TRUE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   215
+  gtk_misc_set_alignment (GTK_MISC(gksuui_dialog->info_label), 0.0, 0);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   216
+  gtk_table_attach ( GTK_TABLE (table), gksuui_dialog->info_label, 2,3,1,2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 10);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   217
+  gtk_widget_show (gksuui_dialog->info_label);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   218
+  caps_lock_state = gksuui_is_capslock_on();
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   219
+  capslock_update ( GKSUUI_DIALOG (dialog), caps_lock_state );
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   220
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   221
   gtk_widget_pop_composite_child ();
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   222
 }
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   223
 
15569
f5ee708e987d 2009-04-06 Takao Fujiwara <[email protected]>
fujiwara
parents: 8406
diff changeset
   224
@@ -263,4 +352,109 @@
8406
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   225
   GtkEditable *entry = GTK_EDITABLE(dialog->entry);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   226
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   227
   return gtk_editable_get_chars (entry, 0, -1);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   228
+}
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   229
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   230
+Display*
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   231
+get_parent_display (void)
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   232
+{
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   233
+  gboolean tested = FALSE;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   234
+  Display *dsp = NULL;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   235
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   236
+  if (tested)
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   237
+    return dsp;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   238
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   239
+  tested = TRUE;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   240
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   241
+  if (g_getenv ("GDM_PARENT_DISPLAY") != NULL)
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   242
+    {
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   243
+      char *old_xauth = g_strdup (g_getenv ("XAUTHORITY"));
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   244
+      if (g_getenv ("GDM_PARENT_XAUTHORITY") != NULL)
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   245
+        {
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   246
+	  g_setenv ("XAUTHORITY",
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   247
+		    g_getenv ("GDM_PARENT_XAUTHORITY"), TRUE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   248
+	}
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   249
+      dsp = XOpenDisplay (g_getenv ("GDM_PARENT_DISPLAY"));
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   250
+      if (old_xauth != NULL)
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   251
+        g_setenv ("XAUTHORITY", old_xauth, TRUE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   252
+      else
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   253
+        g_unsetenv ("XAUTHORITY");
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   254
+      g_free (old_xauth);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   255
+    }
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   256
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   257
+  return dsp;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   258
+}
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   259
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   260
+gboolean
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   261
+gksuui_is_capslock_on (void)
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   262
+{
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   263
+  XkbStateRec states;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   264
+  Display *dsp;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   265
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   266
+  /* HACK! incredible hack, if this is set we get
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   267
+   * indicator state from the parent display, since we must be inside an
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   268
+   * Xnest */
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   269
+  dsp = get_parent_display ();
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   270
+  if (dsp == NULL)
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   271
+    dsp = GDK_DISPLAY ();
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   272
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   273
+  if (XkbGetState (dsp, XkbUseCoreKbd, &states) != Success)
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   274
+      return FALSE;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   275
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   276
+  return (states.locked_mods & LockMask) != 0;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   277
+}
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   278
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   279
+gboolean
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   280
+cl_key_press_event (GtkWidget *widget, GdkEventKey *key, gpointer data)
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   281
+{
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   282
+  gboolean new_state;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   283
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   284
+  new_state = gksuui_is_capslock_on ();
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   285
+  if (new_state != caps_lock_state) {
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   286
+	caps_lock_state = new_state;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   287
+        capslock_update (GKSUUI_DIALOG(widget), new_state);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   288
+  }
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   289
+  return FALSE;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   290
+}
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   291
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   292
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   293
+void
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   294
+entry_key_release_event ( GtkWidget *widget, GdkEventKey *key, gpointer data)
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   295
+{
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   296
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   297
+  ok_button_update ( GKSUUI_DIALOG(data) );
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   298
+}
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   299
+void
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   300
+capslock_update (GksuuiDialog *gksuui_dialog, gboolean new_state)
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   301
+{
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   302
+  GtkDialog *dialog;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   303
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   304
+  dialog = GTK_DIALOG(gksuui_dialog);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   305
+  if ( new_state ) {
15569
f5ee708e987d 2009-04-06 Takao Fujiwara <[email protected]>
fujiwara
parents: 8406
diff changeset
   306
+	/* SUN_BRANDING */
8406
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   307
+	gtk_label_set_markup (GTK_LABEL(gksuui_dialog->info_label), _("<span weight=\"normal\" size=\"medium\">"
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   308
+					  "Caps Locks is turned on</span>"));
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   309
+	gtk_image_set_from_stock (gksuui_dialog->info_image, GTK_STOCK_DIALOG_WARNING,
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   310
+			      GTK_ICON_SIZE_SMALL_TOOLBAR);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   311
+  } else {
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   312
+	gtk_label_set_markup (GTK_LABEL(gksuui_dialog->info_label), _("<span weight=\"normal\" size=\"medium\">"
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   313
+					  " </span>"));
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   314
+	gtk_image_set_from_pixbuf (gksuui_dialog->info_image, NULL);  }
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   315
+}
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   316
+
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   317
+void
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   318
+ok_button_update ( GksuuiDialog *dialog )
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   319
+{
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   320
+	if ( strlen (gtk_entry_get_text ( dialog->entry)) == 0 ) {
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   321
+		g_signal_handlers_disconnect_by_func ( G_OBJECT(dialog->entry),
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   322
+			    G_CALLBACK(gtk_button_clicked), 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   323
+			    dialog->ok_button);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   324
+		gtk_widget_grab_default ( dialog->cancel_button );
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   325
+		gtk_widget_set_sensitive ( dialog->ok_button, FALSE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   326
+	} else {
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   327
+		g_signal_connect_swapped (G_OBJECT(dialog->entry), "activate",
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   328
+			    G_CALLBACK(gtk_button_clicked), 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   329
+			    dialog->ok_button);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   330
+		gtk_widget_grab_default (dialog->ok_button);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   331
+		gtk_widget_set_sensitive ( dialog->ok_button, TRUE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   332
+	}
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   333
 }
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   334
--- libgksuui1.0-1.0.5.orig/libgksuui/gksuui-dialog.h	Tue May 10 06:45:36 2005
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   335
+++ libgksuui1.0-1.0.5/libgksuui/gksuui-dialog.h	Fri Jul  7 17:12:25 2006
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   336
@@ -67,6 +67,9 @@
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   337
   GtkWidget *entry;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   338
   GtkWidget *ok_button;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   339
   GtkWidget *cancel_button;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   340
+  GtkWidget *required_label;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   341
+  GtkWidget *info_image;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   342
+  GtkWidget *info_label;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   343
 };
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   344
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   345
 GType
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   346
--- libgksuui1.0-1.0.5.orig/libgksuui/test-gksuui.c	Tue May 10 06:45:36 2005
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   347
+++ libgksuui1.0-1.0.5/libgksuui/test-gksuui.c	Mon Aug 21 15:06:25 2006
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   348
@@ -43,13 +43,13 @@
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   349
 				     NULL);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   350
   gksuui_dialog_set_icon (GKSUUI_DIALOG(gksuui_dialog), pixbuf);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   351
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   352
-  gtk_widget_show_all (gksuui_dialog);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   353
+  gtk_widget_show (gksuui_dialog);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   354
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   355
   response = gtk_dialog_run (GTK_DIALOG(gksuui_dialog));
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   356
   fprintf (stderr, "response ID: %d\n", response);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   357
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   358
   password = gksuui_dialog_get_password (GKSUUI_DIALOG(gksuui_dialog));
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   359
-  fprintf (stderr, "password: %s\n", password);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   360
+  if ( password != NULL) fprintf (stderr, "password: %s\n", password);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   361
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   362
   gtk_widget_hide (gksuui_dialog);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   363
   while (gtk_events_pending ())
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   364
@@ -56,7 +56,7 @@
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   365
     gtk_main_iteration_do (FALSE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   366
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   367
   password = gksu_ask_password (NULL, NULL, TRUE);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   368
-  fprintf (stderr, "password: %s\n", password);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   369
+  if ( password != NULL) fprintf (stderr, "password: %s\n", password);
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   370
 
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   371
   return 0;
ffd63cd84c86 2006-10-23 Jim Li <[email protected]>
jim
parents:
diff changeset
   372
 }