diff options
author | Matthias Clasen <mclasen@redhat.com> | 2012-11-08 21:43:31 -0500 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2013-04-05 13:42:53 -0400 |
commit | eec97819f8cb48f2ea1df56fab077608e75d1604 (patch) | |
tree | a87ffdbc613dda80d29d7e116d53c1d1ec82c7de | |
parent | e97b54497aff9988dd04b98a39a99b981f378312 (diff) | |
download | yelp-eec97819f8cb48f2ea1df56fab077608e75d1604.tar.gz |
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.
-rw-r--r-- | src/yelp-application.c | 20 |
1 files 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); |