summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common/cfgfiles.c1
-rw-r--r--src/common/outbound.c6
-rw-r--r--src/common/xchat.h1
-rw-r--r--src/fe-gtk/setup.c1
4 files changed, 9 insertions, 0 deletions
diff --git a/src/common/cfgfiles.c b/src/common/cfgfiles.c
index e3029df8..7948fe2c 100644
--- a/src/common/cfgfiles.c
+++ b/src/common/cfgfiles.c
@@ -423,6 +423,7 @@ const struct prefs vars[] = {
 
 	{"gui_auto_open_chat", P_OFFINT (autoopendccchatwindow), TYPE_BOOL},
 	{"gui_auto_open_dialog", P_OFFINT (autodialog), TYPE_BOOL},
+	{"gui_auto_open_msg", P_OFFINT (gui_auto_open_msg), TYPE_BOOL},
 	{"gui_auto_open_recv", P_OFFINT (autoopendccrecvwindow), TYPE_BOOL},
 	{"gui_auto_open_send", P_OFFINT (autoopendccsendwindow), TYPE_BOOL},
 	{"gui_dialog_height", P_OFFINT (dialog_height), TYPE_INT},
diff --git a/src/common/outbound.c b/src/common/outbound.c
index df8eddbd..417ac323 100644
--- a/src/common/outbound.c
+++ b/src/common/outbound.c
@@ -2605,7 +2605,13 @@ cmd_msg (struct session *sess, char *tbuf, char *word[], char *word_eol[])
 			}
 			newsess = find_dialog (sess->server, nick);
 			if (!newsess)
+			{
 				newsess = find_channel (sess->server, nick);
+				if (!newsess && prefs.gui_auto_open_msg)
+				{
+					newsess = new_ircwindow (sess->server, nick, SESS_DIALOG, 0);
+				}
+			}
 			if (newsess)
 				inbound_chanmsg (newsess->server, NULL, newsess->channel,
 									  newsess->server->nick, msg, TRUE, FALSE);
diff --git a/src/common/xchat.h b/src/common/xchat.h
index 6856d949..3ec13e6b 100644
--- a/src/common/xchat.h
+++ b/src/common/xchat.h
@@ -205,6 +205,7 @@ struct xchatprefs
 	unsigned int perc_ascii;
 	unsigned int autosave;
 	unsigned int autodialog;
+	unsigned int gui_auto_open_msg;
 	unsigned int autosave_url;
 	unsigned int autoreconnect;
 	unsigned int autoreconnectonfail;
diff --git a/src/fe-gtk/setup.c b/src/fe-gtk/setup.c
index e07c2c7e..acb4eda6 100644
--- a/src/fe-gtk/setup.c
+++ b/src/fe-gtk/setup.c
@@ -265,6 +265,7 @@ static const setting tabs_settings[] =
 	{ST_TOGGLE, N_("Open an extra tab for server messages"), P_OFFINTNL(use_server_tab), 0, 0, 0},
 	{ST_TOGGLE, N_("Open an extra tab for server notices"), P_OFFINTNL(notices_tabs), 0, 0, 0},
 	{ST_TOGGLE, N_("Open a new tab when you receive a private message"), P_OFFINTNL(autodialog), 0, 0, 0},
+	{ST_TOGGLE, N_("Open a new tab when you send a private message"), P_OFFINTNL(gui_auto_open_msg), 0, 0, 0},
 	{ST_TOGGLE, N_("Sort tabs in alphabetical order"), P_OFFINTNL(tab_sort), 0, 0, 0},
 	{ST_TOGGLE, N_("Smaller text"), P_OFFINTNL(tab_small), 0, 0, 0},
 #if 0