[network-manager-applet/bg/menu-wifi-scan-bgo774848: 1/2] applet: request wifi scan when menu is opened
- From: Beniamino Galvani <bgalvani src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [network-manager-applet/bg/menu-wifi-scan-bgo774848: 1/2] applet: request wifi scan when menu is opened
- Date: Fri, 6 Jan 2017 15:11:03 +0000 (UTC)
commit ffdb34377179d48fa1fe6fda18f3744491213c1d
Author: Beniamino Galvani <bgalvani redhat com>
Date: Fri Jan 6 11:20:27 2017 +0100
applet: request wifi scan when menu is opened
src/applet.c | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/src/applet.c b/src/applet.c
index b702f8e..9a05be6 100644
--- a/src/applet.c
+++ b/src/applet.c
@@ -66,6 +66,24 @@ G_DEFINE_TYPE (NMApplet, nma, G_TYPE_APPLICATION)
/********************************************************************/
+static void
+applet_request_wifi_scan (NMApplet *applet, gpointer unused)
+{
+ const GPtrArray *devices;
+ NMDevice *device;
+ int i;
+
+ g_debug ("requesting wifi scan");
+
+ /* Request scan for all wifi devices */
+ devices = nm_client_get_devices (applet->nm_client);
+ for (i = 0; devices && i < devices->len; i++) {
+ device = g_ptr_array_index (devices, i);
+ if (NM_IS_DEVICE_WIFI (device))
+ nm_device_wifi_request_scan ((NMDeviceWifi *) device, NULL, NULL);
+ }
+}
+
static inline NMADeviceClass *
get_device_class (NMDevice *device, NMApplet *applet)
{
@@ -1991,12 +2009,18 @@ applet_update_indicator_menu (gpointer user_data)
#ifdef WITH_APPINDICATOR
GtkWidget *menu;
+ menu = (GtkWidget *) app_indicator_get_menu (applet->app_indicator);
+ if (menu)
+ g_signal_handlers_disconnect_by_func (menu, applet_request_wifi_scan, applet);
+
menu = nma_context_menu_create (applet);
nma_menu_show_cb (menu, applet);
nma_menu_add_separator_item (menu);
nma_context_menu_update (applet);
app_indicator_set_menu (applet->app_indicator, GTK_MENU (menu));
+
+ g_signal_connect_swapped (menu, "show", G_CALLBACK (applet_request_wifi_scan), applet);
#endif /* WITH_APPINDICATOR */
applet->update_menu_id = 0;
@@ -3084,6 +3108,8 @@ status_icon_activate_cb (GtkStatusIcon *icon, NMApplet *applet)
*/
applet_clear_notify (applet);
+ applet_request_wifi_scan (applet, NULL);
+
/* Kill any old menu */
if (applet->menu)
g_object_unref (applet->menu);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]