91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
+
|
int exited;
struct unicode_data ucsdata;
Config cfg;
void *eventlogstuff;
char *progname, **gtkargvstart;
int ngtkargs;
guint32 input_event_time; /* Timestamp of the most recent input event. */
int reconfiguring;
};
struct draw_ctx {
GdkGC *gc;
struct gui_data *inst;
};
|
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
|
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
|
+
+
+
+
+
|
struct gui_data *inst = (struct gui_data *)data;
char *title = dupcat(appname, " Reconfiguration", NULL);
Config cfg2, oldcfg;
int i, need_size;
assert(lenof(ww) == NCFGCOLOURS);
if (inst->reconfiguring)
return;
else
inst->reconfiguring = TRUE;
cfg2 = inst->cfg; /* structure copy */
if (do_config_box(title, &cfg2, 1,
inst->back?inst->back->cfg_info(inst->backhandle):0)) {
oldcfg = inst->cfg; /* structure copy */
inst->cfg = cfg2; /* structure copy */
|
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
|
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
|
+
|
/*
* We do an explicit full redraw here to ensure the window
* border has been redrawn as well as the text area.
*/
gtk_widget_queue_draw(inst->area);
}
sfree(title);
inst->reconfiguring = FALSE;
}
void fork_and_exec_self(struct gui_data *inst, int fd_to_close, ...)
{
/*
* Re-execing ourself is not an exact science under Unix. I do
* the best I can by using /proc/self/exe if available and by
|