Merge lp:~kyleb/sakura/custom-palette into lp:~dabisu/sakura/sakura

Proposed by Kyle Brady
Status: Rejected
Rejected by: David Gómez
Proposed branch: lp:~kyleb/sakura/custom-palette
Merge into: lp:~dabisu/sakura/sakura
Diff against target: 492 lines (+91/-66)
1 file modified
src/sakura.c (+91/-66)
To merge this branch: bzr merge lp:~kyleb/sakura/custom-palette
Reviewer Review Type Date Requested Status
David Gómez Disapprove
Review via email: mp+73968@code.launchpad.net

Description of the change

This branch adds the ability to use a custom palette in sakura. This is done by adding a new section in the config file that stores the options color0-color15, similar to .Xdefaults. The default values for this are pulled from the Linux palette.

To post a comment you must log in.
Revision history for this message
David Gómez (dabisu) wrote :

Palette customization is something i don't want to be in sakura. But if you have a custom palette to propose, please submit it. And sorry for the long long time to answer this.

Revision history for this message
David Gómez (dabisu) :
review: Disapprove

Unmerged revisions

357. By Kyle Brady

Add the ability to use a custom palette.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/sakura.c'
2--- src/sakura.c 2011-07-31 00:45:30 +0000
3+++ src/sakura.c 2011-09-03 21:24:23 +0000
4@@ -136,6 +136,8 @@
5 { 0, 0xffff, 0xffff, 0xffff }
6 };
7
8+static GdkColor custom_palette[PALETTE_SIZE];
9+
10 static struct {
11 GtkWidget *main_window;
12 GtkWidget *notebook;
13@@ -236,6 +238,7 @@
14 #define DEFAULT_FULLSCREEN_KEY GDK_F11
15 #define ERROR_BUFFER_LENGTH 256
16 const char cfg_group[] = "sakura";
17+const char palette_cfg_group[] = "custom palette";
18
19 static GQuark term_data_id = 0;
20 #define sakura_get_page_term( sakura, page_idx ) \
21@@ -247,18 +250,18 @@
22 G_OBJECT( gtk_notebook_get_nth_page( (GtkNotebook*)sakura.notebook, page_idx) ), \
23 term_data_id, term, (GDestroyNotify)g_free);
24
25-#define sakura_set_config_integer(key, value) do {\
26- g_key_file_set_integer(sakura.cfg, cfg_group, key, value);\
27- sakura.config_modified=TRUE;\
28- } while(0);
29-
30-#define sakura_set_config_string(key, value) do {\
31- g_key_file_set_value(sakura.cfg, cfg_group, key, value);\
32- sakura.config_modified=TRUE;\
33- } while(0);
34-
35-#define sakura_set_config_boolean(key, value) do {\
36- g_key_file_set_boolean(sakura.cfg, cfg_group, key, value);\
37+#define sakura_set_config_integer(key, value, group) do {\
38+ g_key_file_set_integer(sakura.cfg, group, key, value);\
39+ sakura.config_modified=TRUE;\
40+ } while(0);
41+
42+#define sakura_set_config_string(key, value, group) do {\
43+ g_key_file_set_value(sakura.cfg, group, key, value);\
44+ sakura.config_modified=TRUE;\
45+ } while(0);
46+
47+#define sakura_set_config_boolean(key, value, group) do {\
48+ g_key_file_set_boolean(sakura.cfg, group, key, value);\
49 sakura.config_modified=TRUE;\
50 } while(0);
51
52@@ -743,7 +746,7 @@
53 sakura.font=pango_font_description_from_string(gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(font_dialog)));
54 sakura_set_font();
55 sakura_set_size(sakura.columns, sakura.rows);
56- sakura_set_config_string("font", pango_font_description_to_string(sakura.font));
57+ sakura_set_config_string("font", pango_font_description_to_string(sakura.font), cfg_group);
58 }
59
60 gtk_widget_destroy(font_dialog);
61@@ -874,15 +877,15 @@
62 gchar *cfgtmp;
63 cfgtmp = g_strdup_printf("#%02x%02x%02x", sakura.forecolor.red >>8,
64 sakura.forecolor.green>>8, sakura.forecolor.blue>>8);
65- sakura_set_config_string("forecolor", cfgtmp);
66+ sakura_set_config_string("forecolor", cfgtmp, cfg_group);
67 g_free(cfgtmp);
68
69 cfgtmp = g_strdup_printf("#%02x%02x%02x", sakura.backcolor.red >>8,
70 sakura.backcolor.green>>8, sakura.backcolor.blue>>8);
71- sakura_set_config_string("backcolor", cfgtmp);
72+ sakura_set_config_string("backcolor", cfgtmp, cfg_group);
73 g_free(cfgtmp);
74
75- sakura_set_config_integer("backalpha", sakura.backalpha);
76+ sakura_set_config_integer("backalpha", sakura.backalpha, cfg_group);
77
78 }
79
80@@ -981,7 +984,7 @@
81 vte_terminal_set_opacity(VTE_TERMINAL (term->vte), sakura.backalpha);
82 vte_terminal_set_colors(VTE_TERMINAL(term->vte), &sakura.forecolor, &sakura.backcolor,
83 sakura.palette, PALETTE_SIZE);
84- sakura_set_config_integer("backalpha", sakura.backalpha);
85+ sakura_set_config_integer("backalpha", sakura.backalpha, cfg_group);
86 sakura.fake_transparency = TRUE;
87 } else {
88 /* Fake transparency, there is no composite manager */
89@@ -989,7 +992,7 @@
90 vte_terminal_set_background_saturation(VTE_TERMINAL(term->vte), sakura.opacity_level);
91 vte_terminal_set_background_tint_color(VTE_TERMINAL(term->vte), &sakura.backcolor);
92 sakura.fake_transparency = TRUE;
93- sakura_set_config_string("fake_transparency", "Yes");
94+ sakura_set_config_string("fake_transparency", "Yes", cfg_group);
95 }
96 }
97
98@@ -1000,12 +1003,12 @@
99 term = sakura_get_page_term(sakura, i);
100 vte_terminal_set_background_transparent(VTE_TERMINAL(term->vte), FALSE);
101 sakura.fake_transparency = FALSE;
102- sakura_set_config_string("fake_transparency", "No");
103+ sakura_set_config_string("fake_transparency", "No", cfg_group);
104 }
105
106 }
107
108- sakura_set_config_string("opacity_level", sakura.opacity_level_percent);
109+ sakura_set_config_string("opacity_level", sakura.opacity_level_percent, cfg_group);
110 }
111
112 gtk_widget_destroy(opacity_dialog);
113@@ -1141,7 +1144,7 @@
114
115 // FIXME: is this really needed? IMHO, this should be done just before
116 // dumping the config to the config file.
117- sakura_set_config_string("background", "none");
118+ sakura_set_config_string("background", "none", cfg_group);
119
120 g_free(sakura.background);
121 sakura.background=NULL;
122@@ -1159,13 +1162,13 @@
123
124 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
125 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(sakura.notebook), TRUE);
126- sakura_set_config_string("show_always_first_tab", "Yes");
127+ sakura_set_config_string("show_always_first_tab", "Yes", cfg_group);
128 } else {
129 /* Only hide tabs if the notebook has one page */
130 if (gtk_notebook_get_n_pages(GTK_NOTEBOOK(sakura.notebook)) == 1) {
131 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(sakura.notebook), FALSE);
132 }
133- sakura_set_config_string("show_always_first_tab", "No");
134+ sakura_set_config_string("show_always_first_tab", "No", cfg_group);
135 }
136 }
137
138@@ -1180,9 +1183,9 @@
139 term = sakura_get_page_term(sakura, page);
140
141 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
142- sakura_set_config_boolean("closebutton", TRUE);
143+ sakura_set_config_boolean("closebutton", TRUE, cfg_group);
144 } else {
145- sakura_set_config_boolean("closebutton", FALSE);
146+ sakura_set_config_boolean("closebutton", FALSE, cfg_group);
147 }
148 }
149
150@@ -1203,10 +1206,10 @@
151
152 if (!g_key_file_get_boolean(sakura.cfg, cfg_group, "scrollbar", NULL)) {
153 sakura.show_scrollbar=true;
154- sakura_set_config_boolean("scrollbar", TRUE);
155+ sakura_set_config_boolean("scrollbar", TRUE, cfg_group);
156 } else {
157 sakura.show_scrollbar=false;
158- sakura_set_config_boolean("scrollbar", FALSE);
159+ sakura_set_config_boolean("scrollbar", FALSE, cfg_group);
160 }
161
162 /* Toggle/Untoggle the scrollbar for all tabs */
163@@ -1231,10 +1234,10 @@
164
165 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
166 vte_terminal_set_audible_bell (VTE_TERMINAL(term->vte), TRUE);
167- sakura_set_config_string("audible_bell", "Yes");
168+ sakura_set_config_string("audible_bell", "Yes", cfg_group);
169 } else {
170 vte_terminal_set_audible_bell (VTE_TERMINAL(term->vte), FALSE);
171- sakura_set_config_string("audible_bell", "No");
172+ sakura_set_config_string("audible_bell", "No", cfg_group);
173 }
174 }
175
176@@ -1250,10 +1253,10 @@
177
178 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
179 vte_terminal_set_visible_bell (VTE_TERMINAL(term->vte), TRUE);
180- sakura_set_config_string("visible_bell", "Yes");
181+ sakura_set_config_string("visible_bell", "Yes", cfg_group);
182 } else {
183 vte_terminal_set_visible_bell (VTE_TERMINAL(term->vte), FALSE);
184- sakura_set_config_string("visible_bell", "No");
185+ sakura_set_config_string("visible_bell", "No", cfg_group);
186 }
187 }
188
189@@ -1269,10 +1272,10 @@
190
191 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
192 vte_terminal_set_cursor_blink_mode (VTE_TERMINAL(term->vte), VTE_CURSOR_BLINK_ON);
193- sakura_set_config_string("blinking_cursor", "Yes");
194+ sakura_set_config_string("blinking_cursor", "Yes", cfg_group);
195 } else {
196 vte_terminal_set_cursor_blink_mode (VTE_TERMINAL(term->vte), VTE_CURSOR_BLINK_OFF);
197- sakura_set_config_string("blinking_cursor", "No");
198+ sakura_set_config_string("blinking_cursor", "No", cfg_group);
199 }
200 }
201
202@@ -1282,10 +1285,10 @@
203 {
204 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
205 gtk_window_set_decorated (GTK_WINDOW(sakura.main_window), FALSE);
206- sakura_set_config_string("borderless", "Yes");
207+ sakura_set_config_string("borderless", "Yes", cfg_group);
208 } else {
209 gtk_window_set_decorated (GTK_WINDOW(sakura.main_window), TRUE);
210- sakura_set_config_string("borderless", "No");
211+ sakura_set_config_string("borderless", "No", cfg_group);
212 }
213 }
214
215@@ -1295,10 +1298,10 @@
216 {
217 if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
218 gtk_window_maximize (GTK_WINDOW(sakura.main_window));
219- sakura_set_config_string("maximized", "Yes");
220+ sakura_set_config_string("maximized", "Yes", cfg_group);
221 } else {
222 gtk_window_unmaximize (GTK_WINDOW(sakura.main_window));
223- sakura_set_config_string("maximized", "No");
224+ sakura_set_config_string("maximized", "No", cfg_group);
225 }
226 }
227
228@@ -1320,8 +1323,10 @@
229 sakura.palette=tango_palette;
230 } else if (strcmp(palette, "xterm")==0) {
231 sakura.palette=xterm_palette;
232+ } else if (strcmp(palette, "rxvt")==0) {
233+ sakura.palette=xterm_palette;
234 } else {
235- sakura.palette=rxvt_palette;
236+ sakura.palette=custom_palette;
237 }
238
239 for (i = (n_pages - 1); i >= 0; i--) {
240@@ -1330,7 +1335,7 @@
241 sakura.palette, PALETTE_SIZE);
242 }
243
244- sakura_set_config_string("palette", palette);
245+ sakura_set_config_string("palette", palette, cfg_group);
246 }
247 }
248
249@@ -1600,7 +1605,7 @@
250 */
251
252 if (!g_key_file_has_key(sakura.cfg, cfg_group, "forecolor", NULL)) {
253- sakura_set_config_string("forecolor", "#c0c0c0");
254+ sakura_set_config_string("forecolor", "#c0c0c0", cfg_group);
255 }
256 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "forecolor", NULL);
257 gdk_color_parse(cfgtmp, &sakura.forecolor);
258@@ -1608,7 +1613,7 @@
259
260
261 if (!g_key_file_has_key(sakura.cfg, cfg_group, "backcolor", NULL)) {
262- sakura_set_config_string("backcolor", "#000000");
263+ sakura_set_config_string("backcolor", "#000000", cfg_group);
264 }
265 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "backcolor", NULL);
266 gdk_color_parse(cfgtmp, &sakura.backcolor);
267@@ -1616,13 +1621,13 @@
268
269
270 if (!g_key_file_has_key(sakura.cfg, cfg_group, "backalpha", NULL)) {
271- sakura_set_config_integer("backalpha", 65535);
272+ sakura_set_config_integer("backalpha", 65535, cfg_group);
273 }
274 sakura.backalpha = g_key_file_get_integer(sakura.cfg, cfg_group, "backalpha", NULL);
275
276
277 if (!g_key_file_has_key(sakura.cfg, cfg_group, "opacity_level", NULL)) {
278- sakura_set_config_string("opacity_level", "80");
279+ sakura_set_config_string("opacity_level", "80", cfg_group);
280 }
281 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "opacity_level", NULL);
282 sakura.opacity_level_percent=cfgtmp;
283@@ -1631,7 +1636,7 @@
284
285
286 if (!g_key_file_has_key(sakura.cfg, cfg_group, "fake_transparency", NULL)) {
287- sakura_set_config_string("fake_transparency", "No");
288+ sakura_set_config_string("fake_transparency", "No", cfg_group);
289 }
290 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "fake_transparency", NULL);
291 if (strcmp(cfgtmp, "Yes")==0) {
292@@ -1643,7 +1648,7 @@
293
294
295 if (!g_key_file_has_key(sakura.cfg, cfg_group, "background", NULL)) {
296- sakura_set_config_string("background", "none");
297+ sakura_set_config_string("background", "none", cfg_group);
298 }
299 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "background", NULL);
300 if (strcmp(cfgtmp, "none")==0) {
301@@ -1655,65 +1660,78 @@
302
303
304 if (!g_key_file_has_key(sakura.cfg, cfg_group, "font", NULL)) {
305- sakura_set_config_string("font", DEFAULT_FONT);
306+ sakura_set_config_string("font", DEFAULT_FONT, cfg_group);
307 }
308
309 if (!g_key_file_has_key(sakura.cfg, cfg_group, "show_always_first_tab", NULL)) {
310- sakura_set_config_string("show_always_first_tab", "No");
311+ sakura_set_config_string("show_always_first_tab", "No", cfg_group);
312 }
313
314 if (!g_key_file_has_key(sakura.cfg, cfg_group, "scrollbar", NULL)) {
315- sakura_set_config_boolean("scrollbar", FALSE);
316+ sakura_set_config_boolean("scrollbar", FALSE, cfg_group);
317 }
318 sakura.show_scrollbar = g_key_file_get_boolean(sakura.cfg, cfg_group, "scrollbar", NULL);
319
320 if (!g_key_file_has_key(sakura.cfg, cfg_group, "closebutton", NULL)) {
321- sakura_set_config_boolean("closebutton", FALSE);
322+ sakura_set_config_boolean("closebutton", FALSE, cfg_group);
323 }
324 sakura.show_closebutton = g_key_file_get_boolean(sakura.cfg, cfg_group, "closebutton", NULL);
325
326 if (!g_key_file_has_key(sakura.cfg, cfg_group, "audible_bell", NULL)) {
327- sakura_set_config_string("audible_bell", "Yes");
328+ sakura_set_config_string("audible_bell", "Yes", cfg_group);
329 }
330 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "audible_bell", NULL);
331 sakura.audible_bell= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;
332 g_free(cfgtmp);
333
334 if (!g_key_file_has_key(sakura.cfg, cfg_group, "visible_bell", NULL)) {
335- sakura_set_config_string("visible_bell", "No");
336+ sakura_set_config_string("visible_bell", "No", cfg_group);
337 }
338 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "visible_bell", NULL);
339 sakura.visible_bell= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;
340 g_free(cfgtmp);
341
342 if (!g_key_file_has_key(sakura.cfg, cfg_group, "blinking_cursor", NULL)) {
343- sakura_set_config_string("blinking_cursor", "No");
344+ sakura_set_config_string("blinking_cursor", "No", cfg_group);
345 }
346 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "blinking_cursor", NULL);
347 sakura.blinking_cursor= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;
348 g_free(cfgtmp);
349
350 if (!g_key_file_has_key(sakura.cfg, cfg_group, "borderless", NULL)) {
351- sakura_set_config_string("borderless", "No");
352+ sakura_set_config_string("borderless", "No", cfg_group);
353 }
354 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "borderless", NULL);
355 sakura.borderless= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;
356 g_free(cfgtmp);
357
358 if (!g_key_file_has_key(sakura.cfg, cfg_group, "maximized", NULL)) {
359- sakura_set_config_string("maximized", "No");
360+ sakura_set_config_string("maximized", "No", cfg_group);
361 }
362 cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "maximized", NULL);
363 sakura.maximized= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;
364 g_free(cfgtmp);
365
366 if (!g_key_file_has_key(sakura.cfg, cfg_group, "word_chars", NULL)) {
367- sakura_set_config_string("word_chars", DEFAULT_WORD_CHARS);
368+ sakura_set_config_string("word_chars", DEFAULT_WORD_CHARS, cfg_group);
369 }
370 sakura.word_chars = g_key_file_get_value(sakura.cfg, cfg_group, "word_chars", NULL);
371
372+ gchar *paltmp = NULL;
373+ for(int i=0; i<PALETTE_SIZE; i++)
374+ {
375+ paltmp = g_strdup_printf("color%i", i);
376+ if (!g_key_file_has_key(sakura.cfg, palette_cfg_group, paltmp, NULL)) {
377+ sakura_set_config_string(paltmp, gdk_color_to_string(&linux_palette[i]), palette_cfg_group);
378+ }
379+ cfgtmp = g_key_file_get_value(sakura.cfg, palette_cfg_group, paltmp, NULL);
380+ gdk_color_parse(cfgtmp, &custom_palette[i]);
381+ g_free(paltmp);
382+ g_free(cfgtmp);
383+ }
384+
385 if (!g_key_file_has_key(sakura.cfg, cfg_group, "palette", NULL)) {
386- sakura_set_config_string("palette", DEFAULT_PALETTE);
387+ sakura_set_config_string("palette", DEFAULT_PALETTE, cfg_group);
388 }
389 cfgtmp = g_key_file_get_string(sakura.cfg, cfg_group, "palette", NULL);
390 if (strcmp(cfgtmp, "linux")==0) {
391@@ -1722,38 +1740,40 @@
392 sakura.palette=tango_palette;
393 } else if (strcmp(cfgtmp, "xterm")==0) {
394 sakura.palette=xterm_palette;
395- } else {
396+ } else if (strcmp(cfgtmp, "rxvt")==0) {
397 sakura.palette=rxvt_palette;
398+ } else {
399+ sakura.palette=custom_palette;
400 }
401 g_free(cfgtmp);
402
403 if (!g_key_file_has_key(sakura.cfg, cfg_group, "add_tab_accelerator", NULL)) {
404- sakura_set_config_integer("add_tab_accelerator", DEFAULT_ADD_TAB_ACCELERATOR);
405+ sakura_set_config_integer("add_tab_accelerator", DEFAULT_ADD_TAB_ACCELERATOR, cfg_group);
406 }
407 sakura.add_tab_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "add_tab_accelerator", NULL);
408
409 if (!g_key_file_has_key(sakura.cfg, cfg_group, "del_tab_accelerator", NULL)) {
410- sakura_set_config_integer("del_tab_accelerator", DEFAULT_DEL_TAB_ACCELERATOR);
411+ sakura_set_config_integer("del_tab_accelerator", DEFAULT_DEL_TAB_ACCELERATOR, cfg_group);
412 }
413 sakura.del_tab_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "del_tab_accelerator", NULL);
414
415 if (!g_key_file_has_key(sakura.cfg, cfg_group, "switch_tab_accelerator", NULL)) {
416- sakura_set_config_integer("switch_tab_accelerator", DEFAULT_SWITCH_TAB_ACCELERATOR);
417+ sakura_set_config_integer("switch_tab_accelerator", DEFAULT_SWITCH_TAB_ACCELERATOR, cfg_group);
418 }
419 sakura.switch_tab_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "switch_tab_accelerator", NULL);
420
421 if (!g_key_file_has_key(sakura.cfg, cfg_group, "copy_accelerator", NULL)) {
422- sakura_set_config_integer("copy_accelerator", DEFAULT_COPY_ACCELERATOR);
423+ sakura_set_config_integer("copy_accelerator", DEFAULT_COPY_ACCELERATOR, cfg_group);
424 }
425 sakura.copy_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "copy_accelerator", NULL);
426
427 if (!g_key_file_has_key(sakura.cfg, cfg_group, "scrollbar_accelerator", NULL)) {
428- sakura_set_config_integer("scrollbar_accelerator", DEFAULT_SCROLLBAR_ACCELERATOR);
429+ sakura_set_config_integer("scrollbar_accelerator", DEFAULT_SCROLLBAR_ACCELERATOR, cfg_group);
430 }
431 sakura.scrollbar_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "scrollbar_accelerator", NULL);
432
433 if (!g_key_file_has_key(sakura.cfg, cfg_group, "open_url_accelerator", NULL)) {
434- sakura_set_config_integer("open_url_accelerator", DEFAULT_OPEN_URL_ACCELERATOR);
435+ sakura_set_config_integer("open_url_accelerator", DEFAULT_OPEN_URL_ACCELERATOR, cfg_group);
436 }
437 sakura.open_url_accelerator = g_key_file_get_integer(sakura.cfg, cfg_group, "open_url_accelerator", NULL);
438
439@@ -1891,7 +1911,7 @@
440 *item_opacity_menu, *item_show_first_tab, *item_audible_bell, *item_visible_bell,
441 *item_blinking_cursor, *item_borderless_maximized,
442 *item_palette, *item_palette_tango, *item_palette_linux, *item_palette_xterm, *item_palette_rxvt,
443- *item_show_close_button;
444+ *item_palette_custom, *item_show_close_button;
445 GtkAction *action_open_link, *action_copy_link, *action_new_tab, *action_set_name, *action_close_tab,
446 *action_new_window,
447 *action_copy, *action_paste, *action_select_font, *action_select_colors,
448@@ -1945,6 +1965,7 @@
449 item_palette_linux=gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(item_palette_tango), "Linux");
450 item_palette_xterm=gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(item_palette_tango), "xterm");
451 item_palette_rxvt=gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(item_palette_tango), "rxvt");
452+ item_palette_custom=gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(item_palette_tango), "Custom");
453 item_options=gtk_menu_item_new_with_label(_("Options"));
454 item_palette=gtk_menu_item_new_with_label(_("Set palette"));
455
456@@ -1994,8 +2015,10 @@
457 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_palette_tango), TRUE);
458 } else if (strcmp(cfgtmp, "xterm")==0) {
459 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_palette_xterm), TRUE);
460- } else {
461+ } else if (strcmp(cfgtmp, "rxvt")==0) {
462 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_palette_rxvt), TRUE);
463+ } else {
464+ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_palette_custom), TRUE);
465 }
466 g_free(cfgtmp);
467
468@@ -2045,6 +2068,7 @@
469 gtk_menu_shell_append(GTK_MENU_SHELL(palette_menu), item_palette_linux);
470 gtk_menu_shell_append(GTK_MENU_SHELL(palette_menu), item_palette_xterm);
471 gtk_menu_shell_append(GTK_MENU_SHELL(palette_menu), item_palette_rxvt);
472+ gtk_menu_shell_append(GTK_MENU_SHELL(palette_menu), item_palette_custom);
473 gtk_menu_shell_append(GTK_MENU_SHELL(options_menu), gtk_separator_menu_item_new());
474 gtk_menu_shell_append(GTK_MENU_SHELL(options_menu), item_input_methods);
475
476@@ -2080,6 +2104,7 @@
477 g_signal_connect(G_OBJECT(item_palette_linux), "activate", G_CALLBACK(sakura_set_palette), "linux");
478 g_signal_connect(G_OBJECT(item_palette_xterm), "activate", G_CALLBACK(sakura_set_palette), "xterm");
479 g_signal_connect(G_OBJECT(item_palette_rxvt), "activate", G_CALLBACK(sakura_set_palette), "rxvt");
480+ g_signal_connect(G_OBJECT(item_palette_custom), "activate", G_CALLBACK(sakura_set_palette), "custom");
481
482 g_signal_connect(G_OBJECT(action_open_link), "activate", G_CALLBACK(sakura_open_url), NULL);
483 g_signal_connect(G_OBJECT(action_copy_link), "activate", G_CALLBACK(sakura_copy_url), NULL);
484@@ -2501,7 +2526,7 @@
485 vte_terminal_set_background_saturation(VTE_TERMINAL(term->vte), TRUE);
486 vte_terminal_set_background_transparent(VTE_TERMINAL(term->vte),FALSE);
487
488- sakura_set_config_string("background", infile);
489+ sakura_set_config_string("background", infile, cfg_group);
490 }
491 }
492 }

Subscribers

People subscribed via source and target branches