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:
parent
b570f28224
commit
7c61c07eb8
1
putty.h
1
putty.h
@ -626,6 +626,7 @@ struct config_tag {
|
||||
FontSpec wideboldfont;
|
||||
int shadowboldoffset;
|
||||
int crhaslf;
|
||||
char winclass[256];
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -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)
|
||||
|
@ -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)));
|
||||
}
|
||||
}
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user