~ubuntu-branches/ubuntu/karmic/gnome-screensaver/karmic-updates

« back to all changes in this revision

Viewing changes to src/gs-lock-plug.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2009-09-23 12:54:12 UTC
  • mfrom: (1.1.32 upstream)
  • Revision ID: james.westby@ubuntu.com-20090923125412-thw2xjbm00cilt2w
Tags: 2.28.0-0ubuntu1
* New upstream version
  Fixed bugs:
  - #444927, get idle time from xorg (lp: #357494)
  - #463010, Port gnome-screensaver from libglade to gtkbuilder
  - #564061, Install .desktop file
  - #570402, screensaver crash if number of screens changes
  - #570941, String not marked for translation gnome-screensaver-command.c
  - #574896, [Leave message] Cancel button should clean clipboard buffe
  - #576463, can't unlock screen after upgrade until restarting 
             gnome-screensaver
  - #581995, Fade out doesn't properly fall back to gamma number if X server
             only supports 0-size ramp
  - #586174, Encoding key in desktop files is deprecated
  - #589728, gnome-screensaver: implicit declaration g_printf
  - #590776, screensaver is never activated
  - #591193, Update/Create .gitignore
  - #591194, Add Comment and Icon in gnome-screensaver.desktop
  - #594082, gnome-screensaver ignores input when fading to black
  Translators
* debian/control.in:
  - don't use libglade
* debian/patches/06_unbreak_upgrade_from_jaunty.patch:
  - the change is in the new version

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
#include <gdk/gdkx.h>
38
38
#include <X11/XKBlib.h>
39
39
#include <gtk/gtk.h>
40
 
#include <glade/glade-xml.h>
41
40
#include <gconf/gconf-client.h>
42
41
 
43
42
#ifdef WITH_KBD_LAYOUT_INDICATOR
1051
1050
}
1052
1051
 
1053
1052
static void
 
1053
clear_clipboards (GSLockPlug *plug)
 
1054
{
 
1055
        GtkClipboard *clipboard;
 
1056
 
 
1057
        clipboard = gtk_widget_get_clipboard (GTK_WIDGET (plug), GDK_SELECTION_PRIMARY);
 
1058
        gtk_clipboard_clear (clipboard);
 
1059
        gtk_clipboard_set_text (clipboard, "", -1);
 
1060
        clipboard = gtk_widget_get_clipboard (GTK_WIDGET (plug), GDK_SELECTION_CLIPBOARD);
 
1061
        gtk_clipboard_clear (clipboard);
 
1062
        gtk_clipboard_set_text (clipboard, "", -1);
 
1063
}
 
1064
 
 
1065
static void
1054
1066
take_note (GtkButton  *button,
1055
1067
           GSLockPlug *plug)
1056
1068
{
1114
1126
        restart_cancel_timeout (plug);
1115
1127
 
1116
1128
        gtk_window_set_default (GTK_WINDOW (plug), plug->priv->auth_unlock_button);
 
1129
 
 
1130
        clear_clipboards (plug);
1117
1131
}
1118
1132
 
1119
1133
static void
1194
1208
        gtk_label_set_text (GTK_LABEL (plug->priv->auth_prompt_label), message);
1195
1209
        gtk_widget_show (plug->priv->auth_prompt_label);
1196
1210
        gtk_entry_set_visibility (GTK_ENTRY (plug->priv->auth_prompt_entry), visible);
 
1211
        gtk_widget_set_sensitive (plug->priv->auth_prompt_entry, TRUE);
1197
1212
        gtk_widget_show (plug->priv->auth_prompt_entry);
1198
1213
 
1199
1214
        if (! GTK_WIDGET_HAS_FOCUS (plug->priv->auth_prompt_entry)) {
1216
1231
        /* gtk_widget_hide (plug->priv->auth_prompt_entry); */
1217
1232
        /* gtk_widget_hide (plug->priv->auth_prompt_label); */
1218
1233
        gtk_widget_set_sensitive (plug->priv->auth_unlock_button, FALSE);
 
1234
        gtk_widget_set_sensitive (plug->priv->auth_prompt_entry, FALSE);
1219
1235
        /* gtk_widget_hide (plug->priv->auth_unlock_button); */
1220
1236
 
1221
1237
        gtk_widget_grab_default (plug->priv->auth_cancel_button);
1625
1641
{
1626
1642
        char       *theme;
1627
1643
        char       *filename;
1628
 
        char       *glade;
 
1644
        char       *gtkbuilder;
1629
1645
        char       *rc;
1630
 
        GladeXML   *xml;
 
1646
        GtkBuilder *builder;
1631
1647
        GtkWidget  *lock_dialog;
 
1648
        GError     *error=NULL;
1632
1649
 
1633
1650
        theme = get_dialog_theme_name (plug);
1634
1651
        if (theme == NULL) {
1635
1652
                return FALSE;
1636
1653
        }
1637
1654
 
1638
 
        filename = g_strdup_printf ("lock-dialog-%s.glade", theme);
1639
 
        glade = g_build_filename (GLADEDIR, filename, NULL);
 
1655
        filename = g_strdup_printf ("lock-dialog-%s.ui", theme);
 
1656
        gtkbuilder = g_build_filename (GTKBUILDERDIR, filename, NULL);
1640
1657
        g_free (filename);
1641
 
        if (! g_file_test (glade, G_FILE_TEST_IS_REGULAR)) {
1642
 
                g_free (glade);
 
1658
        if (! g_file_test (gtkbuilder, G_FILE_TEST_IS_REGULAR)) {
 
1659
                g_free (gtkbuilder);
1643
1660
                g_free (theme);
1644
1661
                return FALSE;
1645
1662
        }
1647
1664
        filename = g_strdup_printf ("lock-dialog-%s.gtkrc", theme);
1648
1665
        g_free (theme);
1649
1666
 
1650
 
        rc = g_build_filename (GLADEDIR, filename, NULL);
 
1667
        rc = g_build_filename (GTKBUILDERDIR, filename, NULL);
1651
1668
        g_free (filename);
1652
1669
        if (g_file_test (rc, G_FILE_TEST_IS_REGULAR)) {
1653
1670
                gtk_rc_parse (rc);
1654
1671
        }
1655
1672
        g_free (rc);
1656
1673
 
1657
 
        xml = glade_xml_new (glade, "lock-dialog", NULL);
 
1674
        builder = gtk_builder_new();
1658
1675
 
1659
 
        if (xml == NULL) {
1660
 
                g_warning ("Failed to load '%s'\n", glade);
1661
 
                g_free (glade);
 
1676
        if (!gtk_builder_add_from_file (builder,gtkbuilder,&error)) {
 
1677
                g_warning ("Couldn't load builder file '%s': %s", gtkbuilder, error->message);
 
1678
                g_error_free(error);
 
1679
                g_free (gtkbuilder);
1662
1680
                return FALSE;
1663
1681
        }
1664
 
        g_free (glade);
 
1682
        g_free (gtkbuilder);
1665
1683
 
1666
 
        lock_dialog = glade_xml_get_widget (xml, "lock-dialog");
 
1684
        lock_dialog = GTK_WIDGET (gtk_builder_get_object(builder, "lock-dialog"));
1667
1685
        gtk_container_add (GTK_CONTAINER (plug), lock_dialog);
1668
1686
 
1669
1687
        plug->priv->vbox = NULL;
1670
 
        plug->priv->notebook = glade_xml_get_widget (xml, "notebook");
 
1688
        plug->priv->notebook = GTK_WIDGET (gtk_builder_get_object(builder, "notebook"));
1671
1689
 
1672
 
        plug->priv->auth_face_image = glade_xml_get_widget (xml, "auth-face-image");
1673
 
        plug->priv->auth_action_area = glade_xml_get_widget (xml, "auth-action-area");
1674
 
        plug->priv->auth_realname_label = glade_xml_get_widget (xml, "auth-realname-label");
1675
 
        plug->priv->auth_username_label = glade_xml_get_widget (xml, "auth-username-label");
1676
 
        plug->priv->auth_prompt_label = glade_xml_get_widget (xml, "auth-prompt-label");
1677
 
        plug->priv->auth_prompt_entry = glade_xml_get_widget (xml, "auth-prompt-entry");
1678
 
        plug->priv->auth_prompt_box = glade_xml_get_widget (xml, "auth-prompt-box");
1679
 
        plug->priv->auth_capslock_label = glade_xml_get_widget (xml, "auth-capslock-label");
1680
 
        plug->priv->auth_message_label = glade_xml_get_widget (xml, "auth-status-label");
1681
 
        plug->priv->auth_unlock_button = glade_xml_get_widget (xml, "auth-unlock-button");
1682
 
        plug->priv->auth_cancel_button = glade_xml_get_widget (xml, "auth-cancel-button");
1683
 
        plug->priv->auth_logout_button = glade_xml_get_widget (xml, "auth-logout-button");
1684
 
        plug->priv->auth_switch_button = glade_xml_get_widget (xml, "auth-switch-button");
1685
 
        plug->priv->auth_note_button = glade_xml_get_widget (xml, "auth-note-button");
1686
 
        plug->priv->note_tab = glade_xml_get_widget (xml, "note-tab");
1687
 
        plug->priv->note_tab_label = glade_xml_get_widget (xml, "note-tab-label");
1688
 
        plug->priv->note_ok_button = glade_xml_get_widget (xml, "note-ok-button");
1689
 
        plug->priv->note_text_view = glade_xml_get_widget (xml, "note-text-view");
1690
 
        plug->priv->note_cancel_button = glade_xml_get_widget (xml, "note-cancel-button");
 
1690
        plug->priv->auth_face_image = GTK_WIDGET (gtk_builder_get_object(builder, "auth-face-image"));
 
1691
        plug->priv->auth_action_area = GTK_WIDGET (gtk_builder_get_object(builder, "auth-action-area"));
 
1692
        plug->priv->auth_realname_label = GTK_WIDGET (gtk_builder_get_object(builder, "auth-realname-label"));
 
1693
        plug->priv->auth_username_label = GTK_WIDGET (gtk_builder_get_object(builder, "auth-username-label"));
 
1694
        plug->priv->auth_prompt_label = GTK_WIDGET (gtk_builder_get_object(builder, "auth-prompt-label"));
 
1695
        plug->priv->auth_prompt_entry = GTK_WIDGET (gtk_builder_get_object(builder, "auth-prompt-entry"));
 
1696
        plug->priv->auth_prompt_box = GTK_WIDGET (gtk_builder_get_object(builder, "auth-prompt-box"));
 
1697
        plug->priv->auth_capslock_label = GTK_WIDGET (gtk_builder_get_object(builder, "auth-capslock-label"));
 
1698
        plug->priv->auth_message_label = GTK_WIDGET (gtk_builder_get_object(builder, "auth-status-label"));
 
1699
        plug->priv->auth_unlock_button = GTK_WIDGET (gtk_builder_get_object(builder, "auth-unlock-button"));
 
1700
        plug->priv->auth_cancel_button = GTK_WIDGET (gtk_builder_get_object(builder, "auth-cancel-button"));
 
1701
        plug->priv->auth_logout_button = GTK_WIDGET (gtk_builder_get_object(builder, "auth-logout-button"));
 
1702
        plug->priv->auth_switch_button = GTK_WIDGET (gtk_builder_get_object(builder, "auth-switch-button"));
 
1703
        plug->priv->auth_note_button = GTK_WIDGET (gtk_builder_get_object(builder, "auth-note-button"));
 
1704
        plug->priv->note_tab = GTK_WIDGET (gtk_builder_get_object(builder, "note-tab"));
 
1705
        plug->priv->note_tab_label = GTK_WIDGET (gtk_builder_get_object(builder, "note-tab-label"));
 
1706
        plug->priv->note_ok_button = GTK_WIDGET (gtk_builder_get_object(builder, "note-ok-button"));
 
1707
        plug->priv->note_text_view = GTK_WIDGET (gtk_builder_get_object(builder, "note-text-view"));
 
1708
        plug->priv->note_cancel_button = GTK_WIDGET (gtk_builder_get_object(builder, "note-cancel-button"));
1691
1709
 
1692
1710
        /* Placeholder for the keyboard indicator */
1693
 
        plug->priv->auth_prompt_kbd_layout_indicator = glade_xml_get_widget (xml, "auth-prompt-kbd-layout-indicator");
 
1711
        plug->priv->auth_prompt_kbd_layout_indicator = GTK_WIDGET (gtk_builder_get_object(builder, "auth-prompt-kbd-layout-indicator"));
1694
1712
        if (plug->priv->auth_logout_button != NULL) {
1695
1713
                gtk_widget_set_no_show_all (plug->priv->auth_logout_button, TRUE);
1696
1714
        }
1703
1721
 
1704
1722
        gtk_widget_show_all (lock_dialog);
1705
1723
 
1706
 
        plug->priv->status_message_label = glade_xml_get_widget (xml, "status-message-label");
 
1724
        plug->priv->status_message_label = GTK_WIDGET (gtk_builder_get_object(builder, "status-message-label"));
1707
1725
 
1708
1726
        return TRUE;
1709
1727
}
1719
1737
}
1720
1738
 
1721
1739
static void
1722
 
clear_clipboards (GSLockPlug *plug)
1723
 
{
1724
 
        GtkClipboard *clipboard;
1725
 
 
1726
 
        clipboard = gtk_widget_get_clipboard (GTK_WIDGET (plug), GDK_SELECTION_PRIMARY);
1727
 
        gtk_clipboard_clear (clipboard);
1728
 
        gtk_clipboard_set_text (clipboard, "", -1);
1729
 
        clipboard = gtk_widget_get_clipboard (GTK_WIDGET (plug), GDK_SELECTION_CLIPBOARD);
1730
 
        gtk_clipboard_clear (clipboard);
1731
 
        gtk_clipboard_set_text (clipboard, "", -1);
1732
 
}
1733
 
 
1734
 
static void
1735
1740
on_note_text_buffer_changed (GtkTextBuffer *buffer,
1736
1741
                             GSLockPlug    *plug)
1737
1742
{