summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2012-11-08 21:43:31 -0500
committerMatthias Clasen <mclasen@redhat.com>2013-04-05 13:42:53 -0400
commiteec97819f8cb48f2ea1df56fab077608e75d1604 (patch)
treea87ffdbc613dda80d29d7e116d53c1d1ec82c7de
parente97b54497aff9988dd04b98a39a99b981f378312 (diff)
downloadyelp-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.c20
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);