Fix #201: Geeqie to pop to top of current windows when open up with -r
authorColin Clark <cclark@mcb.net>
Mon, 27 Mar 2017 12:22:58 +0000 (13:22 +0100)
committerColin Clark <cclark@mcb.net>
Mon, 27 Mar 2017 12:22:58 +0000 (13:22 +0100)
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

doc/docbook/GuideReferenceCommandLine.xml
src/remote.c

index da17bef..6019169 100644 (file)
@@ -9,7 +9,7 @@
   <table frame="all">\r
     <tgroup cols="3" rowsep="1" colsep="1">\r
       <thead rowsep="1" colsep="1">\r
-        <row >\r
+        <row>\r
           <entry>Short Option</entry>\r
           <entry>Long Option</entry>\r
           <entry>Description</entry>\r
   <section id="Remotecommands">\r
     <title>Remote commands</title>\r
     <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>\r
-  <table frame="all">
-    <tgroup cols="3" rowsep="1" colsep="1">
-      <thead rowsep="1" colsep="1">\r
-\r
+    <table frame="all">\r
+      <tgroup cols="3" rowsep="1" colsep="1">\r
+        <thead rowsep="1" colsep="1">\r
           <row>\r
             <entry>Short Option</entry>\r
             <entry>Long Option</entry>\r
             <entry>Description</entry>\r
-          </row></thead>\r
-        <tbody>          <row>\r
+          </row>\r
+        </thead>\r
+        <tbody>\r
+          <row>\r
             <entry>-n</entry>\r
             <entry>--next</entry>\r
             <entry>Change main window to display next image.</entry>\r
           <row>\r
             <entry />\r
             <entry>file:&lt;file&gt;</entry>\r
-            <entry>Change main window to display &lt;file&gt;</entry>\r
+            <entry>Open  &lt;file&gt; and bring Geeqie window to the top</entry>\r
+          </row>\r
+          <row>\r
+            <entry />\r
+            <entry>File:&lt;file&gt;</entry>\r
+            <entry>Open  &lt;file&gt; and do not bring Geeqie window to the top</entry>\r
           </row>\r
           <row>\r
             <entry />\r
     </table>\r
     <para />\r
   </section>\r
-</section>
+</section>\r
index 9147bf9..3d11d22 100644 (file)
@@ -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 @@ static void gr_quit(const gchar *text, GIOChannel *channel, gpointer data)
        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 @@ static void gr_file_load(const gchar *text, GIOChannel *channel, gpointer data)
        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 @@ static RemoteCommandEntry remote_commands[] = {
        { 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") },