From eec97819f8cb48f2ea1df56fab077608e75d1604 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 8 Nov 2012 21:43:31 -0500 Subject: Don't steal focus, optionally It is somewhat rude to steal focus like this, and it actively interferes with some use cases for launching yelp in the background. Add a commandline option --dont-steal-focus, to make those use cases work. --- src/yelp-application.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/yelp-application.c b/src/yelp-application.c index 057cafdc..2d004c20 100644 --- a/src/yelp-application.c +++ b/src/yelp-application.c @@ -43,6 +43,7 @@ #define DEFAULT_URI "help:gnome-help" static gboolean editor_mode = FALSE; +static gboolean dont_steal_focus = FALSE; enum { READ_LATER_CHANGED, @@ -63,6 +64,7 @@ option_version_cb (const gchar *option_name, static const GOptionEntry entries[] = { {"editor-mode", 0, 0, G_OPTION_ARG_NONE, &editor_mode, N_("Turn on editor mode"), NULL}, + {"dont-steal-focus", 0, 0, G_OPTION_ARG_NONE, &dont_steal_focus, N_("Don't steal focus"), NULL}, { "version", 0, G_OPTION_FLAG_NO_ARG | G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_CALLBACK, option_version_cb, NULL, NULL }, { NULL } }; @@ -472,15 +474,17 @@ application_uri_resolved (YelpUri *uri, if (gdk_window) gdk_x11_window_move_to_current_desktop (gdk_window); - /* Ensure we actually present the window when invoked from the command - * line. This is somewhat evil, but the minor evil of Yelp stealing - * focus (after you requested it) is outweighed for me by the major - * evil of no help window appearing when you click Help. - */ - if (data->timestamp == 0) - data->timestamp = gdk_x11_get_server_time (gtk_widget_get_window (GTK_WIDGET (window))); + if (!dont_steal_focus) { + /* Ensure we actually present the window when invoked from the command + * line. This is somewhat evil, but the minor evil of Yelp stealing + * focus (after you requested it) is outweighed for me by the major + * evil of no help window appearing when you click Help. + */ + if (data->timestamp == 0) + data->timestamp = gdk_x11_get_server_time (gtk_widget_get_window (GTK_WIDGET (window))); - gtk_window_present_with_time (GTK_WINDOW (window), data->timestamp); + gtk_window_present_with_time (GTK_WINDOW (window), data->timestamp); + } g_object_unref (uri); g_free (data); -- cgit v1.2.1