1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-25 01:02:24 +00:00

Allow setting the WM_CLASS X window property as a configuration option

in saved sessions, so that a programmable window manager can
distinguish different PuTTYs/pterms on startup and assign them
different window management properties.

[originally from svn r9078]
This commit is contained in:
Simon Tatham 2011-01-15 11:39:44 +00:00
parent b570f28224
commit 7c61c07eb8
4 changed files with 20 additions and 0 deletions

View File

@ -626,6 +626,7 @@ struct config_tag {
FontSpec wideboldfont;
int shadowboldoffset;
int crhaslf;
char winclass[256];
};
/*

View File

@ -499,6 +499,7 @@ void save_open_settings(void *sesskey, Config *cfg)
write_setting_i(sesskey, "SerialStopHalfbits", cfg->serstopbits);
write_setting_i(sesskey, "SerialParity", cfg->serparity);
write_setting_i(sesskey, "SerialFlowControl", cfg->serflow);
write_setting_s(sesskey, "WindowClass", cfg->winclass);
}
void load_settings(char *section, Config * cfg)
@ -858,6 +859,7 @@ void load_open_settings(void *sesskey, Config *cfg)
gppi(sesskey, "SerialStopHalfbits", 2, &cfg->serstopbits);
gppi(sesskey, "SerialParity", SER_PAR_NONE, &cfg->serparity);
gppi(sesskey, "SerialFlowControl", SER_FLOW_XONXOFF, &cfg->serflow);
gpps(sesskey, "WindowClass", "", cfg->winclass, sizeof(cfg->winclass));
}
void do_defaults(char *session, Config * cfg)

View File

@ -127,4 +127,18 @@ void gtk_setup_config_box(struct controlbox *b, int midsession, void *win)
HELPCTX(translation_utf8_override),
dlg_stdcheckbox_handler,
I(offsetof(Config,utf8_override)));
if (!midsession) {
/*
* Allow the user to specify the window class as part of the saved
* configuration, so that they can have their window manager treat
* different kinds of PuTTY and pterm differently if they want to.
*/
s = ctrl_getset(b, "Window/Behaviour", "x11",
"X Window System settings");
ctrl_editbox(s, "Window class name:", 'z', 50,
HELPCTX(no_help), dlg_stdeditbox_handler,
I(offsetof(Config,winclass)),
I(sizeof(((Config *)0)->winclass)));
}
}

View File

@ -3430,6 +3430,9 @@ int pt_main(int argc, char **argv)
init_cutbuffers();
inst->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
if (inst->cfg.winclass[0])
gtk_window_set_wmclass(GTK_WINDOW(inst->window),
inst->cfg.winclass, inst->cfg.winclass);
/*
* Set up the colour map.