Advertisement
Guest User

sakura.patch

a guest
Oct 26th, 2011
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.02 KB | None | 0 0
  1. --- sakura.c 2011-07-30 23:35:11.000000000 +0400
  2. +++ sakura_u.c 2011-10-26 14:16:13.000000000 +0400
  3. @@ -164,6 +164,7 @@
  4. bool show_closebutton;
  5. bool audible_bell;
  6. bool visible_bell;
  7. + bool underline_cursor;
  8. bool blinking_cursor;
  9. bool borderless;
  10. bool maximized;
  11. @@ -1276,6 +1277,24 @@
  12.  
  13.  
  14. static void
  15. +sakura_underline_cursor (GtkWidget *widget, void *data)
  16. +{
  17. + int page;
  18. + struct terminal *term;
  19. +
  20. + page = gtk_notebook_get_current_page(GTK_NOTEBOOK(sakura.notebook));
  21. + term = sakura_get_page_term(sakura, page);
  22. +
  23. + if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
  24. + vte_terminal_set_cursor_shape (VTE_TERMINAL(term->vte), VTE_CURSOR_SHAPE_UNDERLINE);
  25. + sakura_set_config_string("underline_cursor", "Yes");
  26. + } else {
  27. + vte_terminal_set_cursor_shape (VTE_TERMINAL(term->vte), VTE_CURSOR_SHAPE_BLOCK);
  28. + sakura_set_config_string("underline_cursor", "No");
  29. + }
  30. +}
  31. +
  32. +static void
  33. sakura_borderless (GtkWidget *widget, void *data)
  34. {
  35. if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))) {
  36. @@ -1686,6 +1705,13 @@
  37. sakura.blinking_cursor= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;
  38. g_free(cfgtmp);
  39.  
  40. + if (!g_key_file_has_key(sakura.cfg, cfg_group, "underline_cursor", NULL)) {
  41. + sakura_set_config_string("underline_cursor", "No");
  42. + }
  43. + cfgtmp = g_key_file_get_value(sakura.cfg, cfg_group, "underline_cursor", NULL);
  44. + sakura.underline_cursor= (strcmp(cfgtmp, "Yes")==0) ? 1 : 0;
  45. + g_free(cfgtmp);
  46. +
  47. if (!g_key_file_has_key(sakura.cfg, cfg_group, "borderless", NULL)) {
  48. sakura_set_config_string("borderless", "No");
  49. }
  50. @@ -1882,7 +1908,7 @@
  51. *item_select_background, *item_set_title, *item_full_screen,
  52. *item_toggle_scrollbar, *item_options, *item_input_methods,
  53. *item_opacity_menu, *item_show_first_tab, *item_audible_bell, *item_visible_bell,
  54. - *item_blinking_cursor, *item_borderless_maximized,
  55. + *item_blinking_cursor, *item_borderless_maximized, *item_underline_cursor,
  56. *item_palette, *item_palette_tango, *item_palette_linux, *item_palette_xterm, *item_palette_rxvt,
  57. *item_show_close_button;
  58. GtkAction *action_open_link, *action_copy_link, *action_new_tab, *action_set_name, *action_close_tab,
  59. @@ -1932,6 +1958,7 @@
  60. item_audible_bell=gtk_check_menu_item_new_with_label(_("Set audible bell"));
  61. item_visible_bell=gtk_check_menu_item_new_with_label(_("Set visible bell"));
  62. item_blinking_cursor=gtk_check_menu_item_new_with_label(_("Set blinking cursor"));
  63. + item_underline_cursor=gtk_check_menu_item_new_with_label(_("Set underline cursor"));
  64. item_borderless_maximized=gtk_check_menu_item_new_with_label(_("Borderless and maximized"));
  65. item_input_methods=gtk_menu_item_new_with_label(_("Input methods"));
  66. item_palette_tango=gtk_radio_menu_item_new_with_label(NULL, "Tango");
  67. @@ -1976,6 +2003,10 @@
  68. gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_blinking_cursor), TRUE);
  69. }
  70.  
  71. + if (sakura.underline_cursor) {
  72. + gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_underline_cursor), TRUE);
  73. + }
  74. +
  75. if (sakura.borderless && sakura.maximized) {
  76. gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(item_borderless_maximized), TRUE);
  77. }
  78. @@ -2029,6 +2060,7 @@
  79. gtk_menu_shell_append(GTK_MENU_SHELL(options_menu), item_visible_bell);
  80. gtk_menu_shell_append(GTK_MENU_SHELL(options_menu), item_blinking_cursor);
  81. gtk_menu_shell_append(GTK_MENU_SHELL(options_menu), item_borderless_maximized);
  82. + gtk_menu_shell_append(GTK_MENU_SHELL(options_menu), item_underline_cursor);
  83. gtk_menu_shell_append(GTK_MENU_SHELL(options_menu), gtk_separator_menu_item_new());
  84. gtk_menu_shell_append(GTK_MENU_SHELL(options_menu), item_set_title);
  85. gtk_menu_shell_append(GTK_MENU_SHELL(options_menu), item_opacity_menu);
  86. @@ -2065,6 +2097,7 @@
  87. g_signal_connect(G_OBJECT(item_audible_bell), "activate", G_CALLBACK(sakura_audible_bell), NULL);
  88. g_signal_connect(G_OBJECT(item_visible_bell), "activate", G_CALLBACK(sakura_visible_bell), NULL);
  89. g_signal_connect(G_OBJECT(item_blinking_cursor), "activate", G_CALLBACK(sakura_blinking_cursor), NULL);
  90. + g_signal_connect(G_OBJECT(item_underline_cursor), "activate", G_CALLBACK(sakura_underline_cursor), NULL);
  91. g_signal_connect(G_OBJECT(item_borderless_maximized), "activate", G_CALLBACK(sakura_borderless), NULL);
  92. g_signal_connect(G_OBJECT(item_borderless_maximized), "activate", G_CALLBACK(sakura_maximized), NULL);
  93. g_signal_connect(G_OBJECT(action_opacity), "activate", G_CALLBACK(sakura_opacity_dialog), NULL);
  94. @@ -2416,6 +2449,9 @@
  95. /* Disable stupid blinking cursor */
  96. vte_terminal_set_cursor_blink_mode (VTE_TERMINAL(term->vte), sakura.blinking_cursor ? VTE_CURSOR_BLINK_ON : VTE_CURSOR_BLINK_OFF);
  97.  
  98. + /* Change cursor */
  99. + vte_terminal_set_cursor_shape (VTE_TERMINAL(term->vte), sakura.underline_cursor ? VTE_CURSOR_SHAPE_UNDERLINE : VTE_CURSOR_SHAPE_BLOCK);
  100. +
  101. /* Apply user defined window configuration */
  102. gtk_window_set_decorated (GTK_WINDOW(sakura.main_window), sakura.borderless ? FALSE : TRUE);
  103. if (sakura.maximized) {
  104.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement