From ecbdd1d662bea569244d6822e594ff6cfb185ed8 Mon Sep 17 00:00:00 2001 From: Colin Clark Date: Mon, 27 Mar 2017 13:22:58 +0100 Subject: [PATCH] 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: open , bring Geeqie window to the top File: open , do not bring Geeqie window to the top --- doc/docbook/GuideReferenceCommandLine.xml | 24 ++++++++++++++--------- src/remote.c | 13 ++++++++++-- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/doc/docbook/GuideReferenceCommandLine.xml b/doc/docbook/GuideReferenceCommandLine.xml index da17bef3..60191696 100644 --- a/doc/docbook/GuideReferenceCommandLine.xml +++ b/doc/docbook/GuideReferenceCommandLine.xml @@ -9,7 +9,7 @@ - + Short Option Long Option Description @@ -88,16 +88,17 @@
Remote commands 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: -
- - - +
+ + Short Option Long Option Description - - + + + + -n --next Change main window to display next image. @@ -190,7 +191,12 @@ file:<file> - Change main window to display <file> + Open <file> and bring Geeqie window to the top + + + + File:<file> + Open <file> and do not bring Geeqie window to the top @@ -222,4 +228,4 @@
- + diff --git a/src/remote.c b/src/remote.c index 9147bf90..3d11d227 100644 --- a/src/remote.c +++ b/src/remote.c @@ -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_(""), N_("load configuration from FILE") }, { NULL, "--get-sidecars:", gr_get_sidecars, TRUE, FALSE, N_(""), N_("get list of sidecars of FILE") }, { NULL, "--get-destination:", gr_get_destination, TRUE, FALSE, N_(""), N_("get destination path of FILE") }, - { NULL, "file:", gr_file_load, TRUE, FALSE, N_(""), N_("open FILE") }, + { NULL, "file:", gr_file_load, TRUE, FALSE, N_(""), N_("open FILE, bring Geeqie window to the top") }, + { NULL, "File:", gr_file_load_no_raise, TRUE, FALSE, N_(""), 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_(""), N_("open FILE in new window") }, { NULL, "--list-clear", gr_list_clear, FALSE, FALSE, NULL, N_("clear command line collection list") }, -- 2.20.1