--- 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);