changeset 2464:a235aad08c32

Fix #201: Geeqie to pop to top of current windows when open up with -r https://github.com/BestImageViewer/geeqie/issues/201 Additional remote option to bring Geeqie widow to the top when opening image: file:<file> open <file>, bring Geeqie window to the top File:<file> open <file>, do not bring Geeqie window to the top
author Colin Clark <cclark@mcb.net>
date Mon, 27 Mar 2017 13:22:58 +0100
parents 2f4d24bf7a97
children 58073aea8bc0
files doc/docbook/GuideReferenceCommandLine.xml src/remote.c
diffstat 2 files changed, 26 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/doc/docbook/GuideReferenceCommandLine.xml	Sun Mar 26 11:42:10 2017 +0100
+++ b/doc/docbook/GuideReferenceCommandLine.xml	Mon Mar 27 13:22:58 2017 +0100
@@ -9,7 +9,7 @@
   <table frame="all">
     <tgroup cols="3" rowsep="1" colsep="1">
       <thead rowsep="1" colsep="1">
-        <row >
+        <row>
           <entry>Short Option</entry>
           <entry>Long Option</entry>
           <entry>Description</entry>
@@ -88,16 +88,17 @@
   <section id="Remotecommands">
     <title>Remote commands</title>
     <para>The --remote command line option will send all entered commands to an existing Geeqie process, a new process will be started if one does not exist. These are the additional commands that can be used with the remote command:</para>
-  <table frame="all">
-    <tgroup cols="3" rowsep="1" colsep="1">
-      <thead rowsep="1" colsep="1">
-
+    <table frame="all">
+      <tgroup cols="3" rowsep="1" colsep="1">
+        <thead rowsep="1" colsep="1">
           <row>
             <entry>Short Option</entry>
             <entry>Long Option</entry>
             <entry>Description</entry>
-          </row></thead>
-        <tbody>          <row>
+          </row>
+        </thead>
+        <tbody>
+          <row>
             <entry>-n</entry>
             <entry>--next</entry>
             <entry>Change main window to display next image.</entry>
@@ -190,7 +191,12 @@
           <row>
             <entry />
             <entry>file:&lt;file&gt;</entry>
-            <entry>Change main window to display &lt;file&gt;</entry>
+            <entry>Open  &lt;file&gt; and bring Geeqie window to the top</entry>
+          </row>
+          <row>
+            <entry />
+            <entry>File:&lt;file&gt;</entry>
+            <entry>Open  &lt;file&gt; and do not bring Geeqie window to the top</entry>
           </row>
           <row>
             <entry />
@@ -222,4 +228,4 @@
     </table>
     <para />
   </section>
-</section>
+</section>
--- a/src/remote.c	Sun Mar 26 11:42:10 2017 +0100
+++ b/src/remote.c	Mon Mar 27 13:22:58 2017 +0100
@@ -51,6 +51,7 @@
 
 static RemoteConnection *remote_client_open(const gchar *path);
 static gint remote_client_send(RemoteConnection *rc, const gchar *text);
+static void gr_raise(const gchar *text, GIOChannel *channel, gpointer data);
 
 
 typedef struct _RemoteClient RemoteClient;
@@ -495,7 +496,7 @@
 	g_idle_add(gr_quit_idle_cb, NULL);
 }
 
-static void gr_file_load(const gchar *text, GIOChannel *channel, gpointer data)
+static void gr_file_load_no_raise(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	gchar *filename = expand_tilde(text);
 
@@ -523,6 +524,13 @@
 	g_free(filename);
 }
 
+static void gr_file_load(const gchar *text, GIOChannel *channel, gpointer data)
+{
+	gr_file_load_no_raise(text, channel, data);
+
+	gr_raise(text, channel, data);
+}
+
 static void gr_file_tell(const gchar *text, GIOChannel *channel, gpointer data)
 {
 	LayoutWindow *lw = NULL; /* NULL to force layout_valid() to do some magic */
@@ -674,7 +682,8 @@
 	{ NULL, "--config-load:",       gr_config_load,         TRUE,  FALSE, N_("<FILE>"), N_("load configuration from FILE") },
 	{ NULL, "--get-sidecars:",      gr_get_sidecars,        TRUE,  FALSE, N_("<FILE>"), N_("get list of sidecars of FILE") },
 	{ NULL, "--get-destination:",  	gr_get_destination,     TRUE,  FALSE, N_("<FILE>"), N_("get destination path of FILE") },
-	{ NULL, "file:",                gr_file_load,           TRUE,  FALSE, N_("<FILE>"), N_("open FILE") },
+	{ NULL, "file:",                gr_file_load,           TRUE,  FALSE, N_("<FILE>"), N_("open FILE, bring Geeqie window to the top") },
+	{ NULL, "File:",                gr_file_load_no_raise,  TRUE,  FALSE, N_("<FILE>"), N_("open FILE, do not bring Geeqie window to the top") },
 	{ NULL, "--tell",               gr_file_tell,           FALSE, FALSE, NULL, N_("print filename of current image") },
 	{ NULL, "view:",                gr_file_view,           TRUE,  FALSE, N_("<FILE>"), N_("open FILE in new window") },
 	{ NULL, "--list-clear",         gr_list_clear,          FALSE, FALSE, NULL, N_("clear command line collection list") },