Network: refresh ui in an idle
This seems a lot safer than doing it directly from all kinds of callbacks.
This commit is contained in:
parent
c390d4f36d
commit
d4b88f12a6
1 changed files with 16 additions and 3 deletions
|
@ -62,6 +62,7 @@ struct _CcNetworkPanelPrivate
|
||||||
NMClient *client;
|
NMClient *client;
|
||||||
NMRemoteSettings *remote_settings;
|
NMRemoteSettings *remote_settings;
|
||||||
gboolean updating_device;
|
gboolean updating_device;
|
||||||
|
guint refresh_idle;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
@ -1697,9 +1698,10 @@ nm_device_refresh_vpn_ui (CcNetworkPanel *panel, NetVpn *vpn)
|
||||||
net_vpn_get_password (vpn));
|
net_vpn_get_password (vpn));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static gboolean
|
||||||
refresh_ui (CcNetworkPanel *panel)
|
refresh_ui_idle (gpointer data)
|
||||||
{
|
{
|
||||||
|
CcNetworkPanel *panel = data;
|
||||||
GtkTreeSelection *selection;
|
GtkTreeSelection *selection;
|
||||||
GtkTreeIter iter;
|
GtkTreeIter iter;
|
||||||
GtkTreeModel *model;
|
GtkTreeModel *model;
|
||||||
|
@ -1776,7 +1778,18 @@ refresh_ui (CcNetworkPanel *panel)
|
||||||
nm_device_refresh_device_ui (panel, NET_DEVICE (object));
|
nm_device_refresh_device_ui (panel, NET_DEVICE (object));
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
|
priv->refresh_idle = 0;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
refresh_ui (CcNetworkPanel *panel)
|
||||||
|
{
|
||||||
|
if (panel->priv->refresh_idle != 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
panel->priv->refresh_idle = g_idle_add (refresh_ui_idle, panel);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue