yelp/0001-Don-t-steal-focus-optionally.patch
2013-01-04 15:18:45 -05:00

63 lines
2.5 KiB
Diff

From b76206bbdeb710853f585942377badff0a4c1df9 Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Thu, 8 Nov 2012 21:43:31 -0500
Subject: [PATCH] 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 057cafd..2d004c2 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);
--
1.7.12.1