--- gnome-settings-daemon-2.28.0.orig/plugins/xrandr/gsd-xrandr-manager.c
+++ gnome-settings-daemon-2.28.0/plugins/xrandr/gsd-xrandr-manager.c
@@ -1305,6 +1305,23 @@
 }
 
 static void
+popup_menu_detect_monitors_cb (GtkMenuItem *item, gpointer data)
+{
+    GsdXrandrManager *manager = GSD_XRANDR_MANAGER (data);
+    struct GsdXrandrManagerPrivate *priv = manager->priv;
+    GError *error;
+
+    error = NULL;
+    if (!gnome_rr_screen_refresh (priv->rw_screen, &error)) {
+       if (error) {
+           error_message (manager, _("Could not detect monitors"), error, NULL);
+           g_error_free (error);
+       }
+    }
+}
+
+
+static void
 status_icon_popup_menu_selection_done_cb (GtkMenuShell *menu_shell, gpointer data)
 {
         GsdXrandrManager *manager = GSD_XRANDR_MANAGER (data);
@@ -1732,6 +1749,12 @@
         gtk_widget_show (item);
         gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), item);
 
+        item = gtk_menu_item_new_with_mnemonic (_("_Detect Monitors"));
+        g_signal_connect (item, "activate",
+                          G_CALLBACK (popup_menu_detect_monitors_cb), manager);
+        gtk_widget_show (item);
+        gtk_menu_shell_append (GTK_MENU_SHELL (priv->popup_menu), item);
+
         item = gtk_menu_item_new_with_mnemonic (_("_Configure Display Settings ..."));
         g_signal_connect (item, "activate",
                           G_CALLBACK (popup_menu_configure_display_cb), manager);

