/**
* Update status area icon and status menu button value
*/
- private void update_status () {
- if (tor_enabled && tor_connected && icon_connected == null) try {
- var icon_theme = Gtk.IconTheme.get_default ();
- var pixbuf = icon_theme.load_icon ("statusarea_tor_connected",
- STATUS_AREA_ICON_SIZE,
- Gtk.IconLookupFlags.NO_SVG);
- icon_connected = pixbuf;
+ private bool update_status () {
+ try {
+ if (tor_enabled && tor_connected && icon_connected == null) {
+ var icon_theme = Gtk.IconTheme.get_default ();
+ var pixbuf = icon_theme.load_icon ("statusarea_tor_connected",
+ STATUS_AREA_ICON_SIZE,
+ Gtk.IconLookupFlags.NO_SVG);
+ icon_connected = pixbuf;
+ }
+ if (tor_enabled && !tor_connected && icon_connecting == null) {
+ var icon_theme = Gtk.IconTheme.get_default ();
+ var pixbuf = icon_theme.load_icon ("statusarea_tor_connecting",
+ STATUS_AREA_ICON_SIZE,
+ Gtk.IconLookupFlags.NO_SVG);
+ icon_connecting = pixbuf;
+ }
+ if (tor_enabled && icon_enabled == null) {
+ var icon_theme = Gtk.IconTheme.get_default();
+ var pixbuf = icon_theme.load_icon ("statusarea_tor_enabled",
+ STATUS_MENU_ICON_SIZE,
+ Gtk.IconLookupFlags.NO_SVG);
+ icon_enabled = new Gtk.Image.from_pixbuf (pixbuf);
+ }
+ if (!tor_enabled && icon_disabled == null) {
+ var icon_theme = Gtk.IconTheme.get_default();
+ var pixbuf = icon_theme.load_icon ("statusarea_tor_disabled",
+ STATUS_MENU_ICON_SIZE,
+ Gtk.IconLookupFlags.NO_SVG);
+ icon_disabled = new Gtk.Image.from_pixbuf (pixbuf);
+ }
} catch (Error e) {
- error (e.message);
- }
- if (tor_enabled && !tor_connected && icon_connecting == null) try {
+ critical (e.message);
var icon_theme = Gtk.IconTheme.get_default ();
- var pixbuf = icon_theme.load_icon ("statusarea_tor_connecting",
- STATUS_AREA_ICON_SIZE,
- Gtk.IconLookupFlags.NO_SVG);
- icon_connecting = pixbuf;
- } catch (Error e) {
- error (e.message);
- }
- if (tor_enabled && icon_enabled == null) try {
- var icon_theme = Gtk.IconTheme.get_default();
- var pixbuf = icon_theme.load_icon ("statusarea_tor_enabled",
- STATUS_MENU_ICON_SIZE,
- Gtk.IconLookupFlags.NO_SVG);
- icon_enabled = new Gtk.Image.from_pixbuf (pixbuf);
- } catch (Error e) {
- error (e.message);
- }
- if (!tor_enabled && icon_disabled == null) try {
- var icon_theme = Gtk.IconTheme.get_default();
- var pixbuf = icon_theme.load_icon ("statusarea_tor_disabled",
- STATUS_MENU_ICON_SIZE,
- Gtk.IconLookupFlags.NO_SVG);
- icon_disabled = new Gtk.Image.from_pixbuf (pixbuf);
- } catch (Error e) {
- error (e.message);
+ icon_theme.rescan_if_needed ();
+ Timeout.add_seconds (1, update_status);
+ return false;
}
if (conic_connected && tor_enabled) {
button.set_value (tor_enabled ? _("Disconnected") : _("Disabled"));
}
button.set_image (tor_enabled ? icon_enabled : icon_disabled);
+
+ return false;
}
/**