1
=== modified file 'libgksuui/gksuui-dialog.c'
2
--- libgksuui/gksuui-dialog.c
3
+++ libgksuui/gksuui-dialog.c
9
+#include <X11/XKBlib.h>
12
#include "../config.h"
16
gksuui_dialog_init (GksuuiDialog *gksuui_dialog);
20
gksuui_dialog_get_type (void)
26
+ * Helper that can detect if caps lock is pressed
29
+is_capslock_on (void)
34
+ dsp = GDK_DISPLAY ();
35
+ if (XkbGetState (dsp, XkbUseCoreKbd, &states) != Success)
38
+ return (states.locked_mods & LockMask) != 0;
42
+gksuui_dialog_keypress_cb(GtkWidget *widget, GdkEventKey *event, gpointer user_data)
44
+ GksuuiDialog *dialog = user_data;
46
+ if (is_capslock_on())
47
+ gtk_widget_show(dialog->label_warn_capslock);
49
+ gtk_widget_hide(dialog->label_warn_capslock);
56
gksuui_dialog_init (GksuuiDialog *gksuui_dialog)
59
gtk_box_pack_start (GTK_BOX(gksuui_dialog->hbox), gksuui_dialog->entry_vbox,
61
gtk_widget_show (gksuui_dialog->entry_vbox);
63
+ /* label capslock warning */
64
+ gksuui_dialog->label_warn_capslock = gtk_label_new (_("<i>You have capslock on</i>"));
65
+ gtk_label_set_justify (GTK_LABEL(gksuui_dialog->label_warn_capslock),
66
+ GTK_JUSTIFY_CENTER);
67
+ gtk_label_set_use_markup (GTK_LABEL(gksuui_dialog->label_warn_capslock), TRUE);
68
+ gtk_box_pack_start (GTK_BOX(gksuui_dialog->entry_vbox),
69
+ gksuui_dialog->label_warn_capslock, TRUE, TRUE, 0);
72
gksuui_dialog->label = gtk_label_new (_("<span weight=\"bold\" size=\"larger\">"
76
gksuui_dialog->entry = gtk_entry_new();
77
+ g_signal_connect (G_OBJECT(gksuui_dialog->entry), "key-press-event",
78
+ G_CALLBACK(gksuui_dialog_keypress_cb), gksuui_dialog);
79
g_signal_connect_swapped (G_OBJECT(gksuui_dialog->entry), "activate",
80
G_CALLBACK(gtk_button_clicked),
81
gksuui_dialog->ok_button);
83
gtk_widget_show (gksuui_dialog->entry);
84
gtk_widget_grab_focus(gksuui_dialog->entry);
87
+ g_signal_connect (G_OBJECT(gksuui_dialog), "focus-in-event",
88
+ G_CALLBACK(gksuui_dialog_keypress_cb), gksuui_dialog);
91
gtk_widget_pop_composite_child ();
94
=== modified file 'libgksuui/gksuui-dialog.h'
95
--- libgksuui/gksuui-dialog.h
96
+++ libgksuui/gksuui-dialog.h
99
GtkWidget *entry_vbox;
101
+ GtkWidget *label_warn_capslock;
103
GtkWidget *ok_button;
104
GtkWidget *cancel_button;