use the real cursor, instead of the selection hack
This commit is contained in:
		
							parent
							
								
									ae2d567052
								
							
						
					
					
						commit
						1e19755049
					
				| @ -1,6 +1,6 @@ | |||||||
| diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c
 | diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c
 | ||||||
| --- vte-0.32.2-old/src/vte.c	2012-07-13 21:09:04.003969877 -0400
 | --- vte-0.32.2-old/src/vte.c	2012-07-13 21:09:04.003969877 -0400
 | ||||||
| +++ vte-0.32.2/src/vte.c	2012-08-30 00:53:52.874582449 -0400
 | +++ vte-0.32.2/src/vte.c	2012-08-30 04:11:30.827265668 -0400
 | ||||||
| @@ -129,7 +129,6 @@
 | @@ -129,7 +129,6 @@
 | ||||||
|  						 gpointer data, |  						 gpointer data, | ||||||
|  						 GArray *attributes, |  						 GArray *attributes, | ||||||
| @ -51,7 +51,36 @@ diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c | |||||||
|                                     argv, |                                     argv, | ||||||
|                                     flags); |                                     flags); | ||||||
|          g_free(shell); |          g_free(shell); | ||||||
| @@ -6676,7 +6675,7 @@
 | @@ -6545,6 +6544,28 @@
 | ||||||
|  |  	} | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | +/**
 | ||||||
|  | + * vte_terminal_set_cursor_position:
 | ||||||
|  | + * @terminal: a #VteTerminal
 | ||||||
|  | + * @column: the new cursor column
 | ||||||
|  | + * @row: the new cursor row
 | ||||||
|  | + *
 | ||||||
|  | + * Set the location of the cursor.
 | ||||||
|  | + */
 | ||||||
|  | +void
 | ||||||
|  | +vte_terminal_set_cursor_position(VteTerminal *terminal,
 | ||||||
|  | +				 long column, long row)
 | ||||||
|  | +{
 | ||||||
|  | +	g_return_if_fail(VTE_IS_TERMINAL(terminal));
 | ||||||
|  | +
 | ||||||
|  | +	_vte_invalidate_cursor_once(terminal, FALSE);
 | ||||||
|  | +	terminal->pvt->screen->cursor_current.col = column;
 | ||||||
|  | +	terminal->pvt->screen->cursor_current.row = row;
 | ||||||
|  | +	_vte_invalidate_cursor_once(terminal, FALSE);
 | ||||||
|  | +	_vte_check_cursor_blink(terminal);
 | ||||||
|  | +	vte_terminal_queue_cursor_moved(terminal);
 | ||||||
|  | +}
 | ||||||
|  | +
 | ||||||
|  |  static GtkClipboard * | ||||||
|  |  vte_terminal_clipboard_get(VteTerminal *terminal, GdkAtom board) | ||||||
|  |  { | ||||||
|  | @@ -6676,7 +6697,7 @@
 | ||||||
|  			terminal->pvt->selection_start.row); |  			terminal->pvt->selection_start.row); | ||||||
|   |   | ||||||
|  	/* Temporarily stop caring about input from the child. */ |  	/* Temporarily stop caring about input from the child. */ | ||||||
| @ -60,7 +89,7 @@ diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c | |||||||
|  } |  } | ||||||
|   |   | ||||||
|  static gboolean |  static gboolean | ||||||
| @@ -6693,7 +6692,7 @@
 | @@ -6693,7 +6714,7 @@
 | ||||||
|  		terminal->pvt->selecting = FALSE; |  		terminal->pvt->selecting = FALSE; | ||||||
|   |   | ||||||
|  		/* Reconnect to input from the child if we paused it. */ |  		/* Reconnect to input from the child if we paused it. */ | ||||||
| @ -69,7 +98,7 @@ diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c | |||||||
|   |   | ||||||
|  		return TRUE; |  		return TRUE; | ||||||
|  	} |  	} | ||||||
| @@ -8994,7 +8993,7 @@
 | @@ -8994,7 +9015,7 @@
 | ||||||
|  #endif |  #endif | ||||||
|  		kill(terminal->pvt->pty_pid, SIGHUP); |  		kill(terminal->pvt->pty_pid, SIGHUP); | ||||||
|  	} |  	} | ||||||
| @ -78,7 +107,7 @@ diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c | |||||||
|  	_vte_terminal_disconnect_pty_write(terminal); |  	_vte_terminal_disconnect_pty_write(terminal); | ||||||
|  	if (terminal->pvt->pty_channel != NULL) { |  	if (terminal->pvt->pty_channel != NULL) { | ||||||
|  		g_io_channel_unref (terminal->pvt->pty_channel); |  		g_io_channel_unref (terminal->pvt->pty_channel); | ||||||
| @@ -13641,6 +13640,12 @@
 | @@ -13641,6 +13662,12 @@
 | ||||||
|          g_object_notify(G_OBJECT(terminal), "cursor-blink-mode"); |          g_object_notify(G_OBJECT(terminal), "cursor-blink-mode"); | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @ -91,7 +120,7 @@ diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c | |||||||
|  /** |  /** | ||||||
|   * vte_terminal_get_cursor_blink_mode: |   * vte_terminal_get_cursor_blink_mode: | ||||||
|   * @terminal: a #VteTerminal |   * @terminal: a #VteTerminal | ||||||
| @@ -14384,7 +14389,7 @@
 | @@ -14384,7 +14411,7 @@
 | ||||||
|          g_object_freeze_notify(object); |          g_object_freeze_notify(object); | ||||||
|   |   | ||||||
|          if (pvt->pty != NULL) { |          if (pvt->pty != NULL) { | ||||||
| @ -100,7 +129,7 @@ diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c | |||||||
|                  _vte_terminal_disconnect_pty_write(terminal); |                  _vte_terminal_disconnect_pty_write(terminal); | ||||||
|   |   | ||||||
|                  if (terminal->pvt->pty_channel != NULL) { |                  if (terminal->pvt->pty_channel != NULL) { | ||||||
| @@ -14440,7 +14445,7 @@
 | @@ -14440,7 +14467,7 @@
 | ||||||
|          _vte_terminal_setup_utf8 (terminal); |          _vte_terminal_setup_utf8 (terminal); | ||||||
|   |   | ||||||
|          /* Open channels to listen for input on. */ |          /* Open channels to listen for input on. */ | ||||||
| @ -109,7 +138,7 @@ diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c | |||||||
|   |   | ||||||
|          g_object_notify(object, "pty"); |          g_object_notify(object, "pty"); | ||||||
|          g_object_notify(object, "pty-object"); |          g_object_notify(object, "pty-object"); | ||||||
| @@ -14567,6 +14572,51 @@
 | @@ -14567,6 +14594,50 @@
 | ||||||
|  	} |  	} | ||||||
|  } |  } | ||||||
|   |   | ||||||
| @ -156,14 +185,13 @@ diff -aur vte-0.32.2-old/src/vte.c vte-0.32.2/src/vte.c | |||||||
| +			 long end_col, long end_row) {
 | +			 long end_col, long end_row) {
 | ||||||
| +	_vte_terminal_select_text(terminal, start_col, start_row, end_col, end_row, 0, 0);
 | +	_vte_terminal_select_text(terminal, start_col, start_row, end_col, end_row, 0, 0);
 | ||||||
| +}
 | +}
 | ||||||
| +
 |  | ||||||
| +
 | +
 | ||||||
|  void |  void | ||||||
|  _vte_terminal_select_text(VteTerminal *terminal, |  _vte_terminal_select_text(VteTerminal *terminal, | ||||||
|  			  long start_col, long start_row, |  			  long start_col, long start_row, | ||||||
| diff -aur vte-0.32.2-old/src/vte.h vte-0.32.2/src/vte.h
 | diff -aur vte-0.32.2-old/src/vte.h vte-0.32.2/src/vte.h
 | ||||||
| --- vte-0.32.2-old/src/vte.h	2012-07-13 21:09:04.003969877 -0400
 | --- vte-0.32.2-old/src/vte.h	2012-07-13 21:09:04.003969877 -0400
 | ||||||
| +++ vte-0.32.2/src/vte.h	2012-08-30 00:54:19.738281795 -0400
 | +++ vte-0.32.2/src/vte.h	2012-08-30 04:06:04.192768680 -0400
 | ||||||
| @@ -296,6 +296,15 @@
 | @@ -296,6 +296,15 @@
 | ||||||
|  /* simple manipulation of selection */ |  /* simple manipulation of selection */ | ||||||
|  void vte_terminal_select_all(VteTerminal *terminal); |  void vte_terminal_select_all(VteTerminal *terminal); | ||||||
| @ -190,7 +218,16 @@ diff -aur vte-0.32.2-old/src/vte.h vte-0.32.2/src/vte.h | |||||||
|  /* Set whether or not the cursor blinks. */ |  /* Set whether or not the cursor blinks. */ | ||||||
|  void vte_terminal_set_cursor_blink_mode(VteTerminal *terminal, |  void vte_terminal_set_cursor_blink_mode(VteTerminal *terminal, | ||||||
|  					VteTerminalCursorBlinkMode mode); |  					VteTerminalCursorBlinkMode mode); | ||||||
| @@ -484,6 +496,7 @@
 | @@ -435,6 +447,8 @@
 | ||||||
|  |  				  GArray *attributes); | ||||||
|  |  void vte_terminal_get_cursor_position(VteTerminal *terminal, | ||||||
|  |  				      glong *column, glong *row); | ||||||
|  | +void vte_terminal_set_cursor_position(VteTerminal *terminal,
 | ||||||
|  | +				      long column, long row);
 | ||||||
|  |  /* Display string matching:  clear all matching expressions. */ | ||||||
|  |  void vte_terminal_match_clear_all(VteTerminal *terminal); | ||||||
|  |   | ||||||
|  | @@ -484,6 +498,7 @@
 | ||||||
|  VtePty *vte_terminal_get_pty_object(VteTerminal *terminal); |  VtePty *vte_terminal_get_pty_object(VteTerminal *terminal); | ||||||
|   |   | ||||||
|  char *vte_get_user_shell (void); |  char *vte_get_user_shell (void); | ||||||
|  | |||||||
							
								
								
									
										88
									
								
								termite.cc
									
									
									
									
									
								
							
							
						
						
									
										88
									
								
								termite.cc
									
									
									
									
									
								
							| @ -29,8 +29,8 @@ struct select_info { | |||||||
|     vi_mode mode; |     vi_mode mode; | ||||||
|     long begin_col; |     long begin_col; | ||||||
|     long begin_row; |     long begin_row; | ||||||
|     long cursor_col; |     long cursor_col_save; | ||||||
|     long cursor_row; |     long cursor_row_save; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| struct search_panel_info { | struct search_panel_info { | ||||||
| @ -79,12 +79,13 @@ void launch_browser(char *url) { | |||||||
| 
 | 
 | ||||||
| static void update_selection(VteTerminal *vte, const select_info *select) { | static void update_selection(VteTerminal *vte, const select_info *select) { | ||||||
|     if (select->mode == vi_mode::command) { |     if (select->mode == vi_mode::command) { | ||||||
|         // a hack to use the selection as a cursor until a real one is implemented
 |         vte_terminal_select_none(vte); | ||||||
|         vte_terminal_select_text(vte, select->cursor_col, select->cursor_row, |  | ||||||
|                                  select->cursor_col, select->cursor_row); |  | ||||||
|         return; // not in visual mode
 |         return; // not in visual mode
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     long cursor_col, cursor_row; | ||||||
|  |     vte_terminal_get_cursor_position(vte, &cursor_col, &cursor_row); | ||||||
|  | 
 | ||||||
|     vte_terminal_select_none(vte); |     vte_terminal_select_none(vte); | ||||||
|     vte_terminal_set_selection_block_mode(vte, select->mode == vi_mode::visual_block); |     vte_terminal_set_selection_block_mode(vte, select->mode == vi_mode::visual_block); | ||||||
| 
 | 
 | ||||||
| @ -92,40 +93,39 @@ static void update_selection(VteTerminal *vte, const select_info *select) { | |||||||
| 
 | 
 | ||||||
|     if (select->mode == vi_mode::visual) { |     if (select->mode == vi_mode::visual) { | ||||||
|         const long begin = select->begin_row * n_columns + select->begin_col; |         const long begin = select->begin_row * n_columns + select->begin_col; | ||||||
|         const long end = select->cursor_row * n_columns + select->cursor_col; |         const long end = cursor_row * n_columns + cursor_col; | ||||||
|         if (begin < end) { |         if (begin < end) { | ||||||
|             vte_terminal_select_text(vte, select->begin_col, select->begin_row, |             vte_terminal_select_text(vte, select->begin_col, select->begin_row, | ||||||
|                                      select->cursor_col, select->cursor_row); |                                      cursor_col, cursor_row); | ||||||
|         } else { |         } else { | ||||||
|             vte_terminal_select_text(vte, select->cursor_col, select->cursor_row, |             vte_terminal_select_text(vte, cursor_col, cursor_row, | ||||||
|                                      select->begin_col, select->begin_row); |                                      select->begin_col, select->begin_row); | ||||||
|         } |         } | ||||||
|     } else if (select->mode == vi_mode::visual_line) { |     } else if (select->mode == vi_mode::visual_line) { | ||||||
|         vte_terminal_select_text(vte, 0, |         vte_terminal_select_text(vte, 0, | ||||||
|                                  std::min(select->begin_row, select->cursor_row), |                                  std::min(select->begin_row, cursor_row), | ||||||
|                                  n_columns - 1, |                                  n_columns - 1, | ||||||
|                                  std::max(select->begin_row, select->cursor_row)); |                                  std::max(select->begin_row, cursor_row)); | ||||||
|     } else if (select->mode == vi_mode::visual_block) { |     } else if (select->mode == vi_mode::visual_block) { | ||||||
|         vte_terminal_select_text(vte, |         vte_terminal_select_text(vte, | ||||||
|                                  std::min(select->begin_col, select->cursor_col), |                                  std::min(select->begin_col, cursor_col), | ||||||
|                                  std::min(select->begin_row, select->cursor_row), |                                  std::min(select->begin_row, cursor_row), | ||||||
|                                  std::max(select->begin_col, select->cursor_col), |                                  std::max(select->begin_col, cursor_col), | ||||||
|                                  std::max(select->begin_row, select->cursor_row)); |                                  std::max(select->begin_row, cursor_row)); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     vte_terminal_copy_primary(vte); |     vte_terminal_copy_primary(vte); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void start_selection(VteTerminal *vte, select_info *select) { | static void start_selection(VteTerminal *vte, select_info *select) { | ||||||
|     vte_terminal_set_cursor_visible(vte, FALSE); |  | ||||||
|     vte_terminal_disconnect_pty_read(vte); |     vte_terminal_disconnect_pty_read(vte); | ||||||
|     select->mode = vi_mode::command; |     select->mode = vi_mode::command; | ||||||
|     vte_terminal_get_cursor_position(vte, &select->cursor_col, &select->cursor_row); |     vte_terminal_get_cursor_position(vte, &select->cursor_col_save, &select->cursor_row_save); | ||||||
|     update_selection(vte, select); |     update_selection(vte, select); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void end_selection(VteTerminal *vte, select_info *select) { | static void end_selection(VteTerminal *vte, select_info *select) { | ||||||
|     vte_terminal_set_cursor_visible(vte, TRUE); |     vte_terminal_set_cursor_position(vte, select->cursor_col_save, select->cursor_row_save); | ||||||
|     vte_terminal_connect_pty_read(vte); |     vte_terminal_connect_pty_read(vte); | ||||||
|     vte_terminal_select_none(vte); |     vte_terminal_select_none(vte); | ||||||
|     select->mode = vi_mode::insert; |     select->mode = vi_mode::insert; | ||||||
| @ -136,8 +136,7 @@ static void toggle_visual(VteTerminal *vte, select_info *select, vi_mode mode) { | |||||||
|         select->mode = vi_mode::command; |         select->mode = vi_mode::command; | ||||||
|     } else { |     } else { | ||||||
|         if (select->mode == vi_mode::command) { |         if (select->mode == vi_mode::command) { | ||||||
|             select->begin_col = select->cursor_col; |             vte_terminal_get_cursor_position(vte, &select->begin_col, &select->begin_row); | ||||||
|             select->begin_row = select->cursor_row; |  | ||||||
|         } |         } | ||||||
|         select->mode = mode; |         select->mode = mode; | ||||||
|     } |     } | ||||||
| @ -158,27 +157,32 @@ static void update_scroll(VteTerminal *vte, const select_info *select) { | |||||||
|     GtkAdjustment *adjust = gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(vte)); |     GtkAdjustment *adjust = gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(vte)); | ||||||
|     const double scroll_row = gtk_adjustment_get_value(adjust); |     const double scroll_row = gtk_adjustment_get_value(adjust); | ||||||
|     const long n_rows = vte_terminal_get_row_count(vte); |     const long n_rows = vte_terminal_get_row_count(vte); | ||||||
|  |     long cursor_col, cursor_row; | ||||||
|  |     vte_terminal_get_cursor_position(vte, &cursor_col, &cursor_row); | ||||||
| 
 | 
 | ||||||
|     if (select->cursor_row < scroll_row) { |     if (cursor_row < scroll_row) { | ||||||
|         gtk_adjustment_set_value(adjust, (double)select->cursor_row); |         gtk_adjustment_set_value(adjust, (double)cursor_row); | ||||||
|     } else if (select->cursor_row - n_rows >= (long)scroll_row) { |     } else if (cursor_row - n_rows >= (long)scroll_row) { | ||||||
|         gtk_adjustment_set_value(adjust, (double)(select->cursor_row - n_rows + 1)); |         gtk_adjustment_set_value(adjust, (double)(cursor_row - n_rows + 1)); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void move(VteTerminal *vte, select_info *select, long col, long row) { | static void move(VteTerminal *vte, select_info *select, long col, long row) { | ||||||
|     const long end_col = vte_terminal_get_column_count(vte) - 1; |     const long end_col = vte_terminal_get_column_count(vte) - 1; | ||||||
| 
 | 
 | ||||||
|     select->cursor_col = CLAMP(select->cursor_col + col, 0, end_col); |     long cursor_col, cursor_row; | ||||||
|     select->cursor_row = CLAMP(select->cursor_row + row, first_row(vte), last_row(vte)); |     vte_terminal_get_cursor_position(vte, &cursor_col, &cursor_row); | ||||||
|  | 
 | ||||||
|  |     vte_terminal_set_cursor_position(vte, | ||||||
|  |                                      CLAMP(cursor_col + col, 0, end_col), | ||||||
|  |                                      CLAMP(cursor_row + row, first_row(vte), last_row(vte))); | ||||||
| 
 | 
 | ||||||
|     update_scroll(vte, select); |     update_scroll(vte, select); | ||||||
|     update_selection(vte, select); |     update_selection(vte, select); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void move_to_row_start(VteTerminal *vte, select_info *select, long row) { | static void move_to_row_start(VteTerminal *vte, select_info *select, long row) { | ||||||
|     select->cursor_col = 0; |     vte_terminal_set_cursor_position(vte, 0, row); | ||||||
|     select->cursor_row = row; |  | ||||||
|     update_scroll(vte, select); |     update_scroll(vte, select); | ||||||
|     update_selection(vte, select); |     update_selection(vte, select); | ||||||
| } | } | ||||||
| @ -197,8 +201,11 @@ static void open_selection(VteTerminal *vte) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void move_backward_word(VteTerminal *vte, select_info *select) { | static void move_backward_word(VteTerminal *vte, select_info *select) { | ||||||
|     char *content = vte_terminal_get_text_range(vte, select->cursor_row, 0, |     long cursor_col, cursor_row; | ||||||
|                                                 select->cursor_row, select->cursor_col, |     vte_terminal_get_cursor_position(vte, &cursor_col, &cursor_row); | ||||||
|  | 
 | ||||||
|  |     char *content = vte_terminal_get_text_range(vte, cursor_row, 0, | ||||||
|  |                                                 cursor_row, cursor_col, | ||||||
|                                                 NULL, NULL, NULL); |                                                 NULL, NULL, NULL); | ||||||
| 
 | 
 | ||||||
|     if (!content) { |     if (!content) { | ||||||
| @ -222,8 +229,9 @@ static void move_backward_word(VteTerminal *vte, select_info *select) { | |||||||
|         } else { |         } else { | ||||||
|             in_word = true; |             in_word = true; | ||||||
|         } |         } | ||||||
|         select->cursor_col--; |         cursor_col--; | ||||||
|     } |     } | ||||||
|  |     vte_terminal_set_cursor_position(vte, cursor_col, cursor_row); | ||||||
|     update_selection(vte, select); |     update_selection(vte, select); | ||||||
| 
 | 
 | ||||||
|     g_free(codepoints); |     g_free(codepoints); | ||||||
| @ -231,10 +239,13 @@ static void move_backward_word(VteTerminal *vte, select_info *select) { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static void move_forward_word(VteTerminal *vte, select_info *select) { | static void move_forward_word(VteTerminal *vte, select_info *select) { | ||||||
|  |     long cursor_col, cursor_row; | ||||||
|  |     vte_terminal_get_cursor_position(vte, &cursor_col, &cursor_row); | ||||||
|  | 
 | ||||||
|     const long end_col = vte_terminal_get_column_count(vte) - 1; |     const long end_col = vte_terminal_get_column_count(vte) - 1; | ||||||
| 
 | 
 | ||||||
|     char *content = vte_terminal_get_text_range(vte, select->cursor_row, select->cursor_col, |     char *content = vte_terminal_get_text_range(vte, cursor_row, cursor_col, | ||||||
|                                                 select->cursor_row, end_col, |                                                 cursor_row, end_col, | ||||||
|                                                 NULL, NULL, NULL); |                                                 NULL, NULL, NULL); | ||||||
| 
 | 
 | ||||||
|     if (!content) { |     if (!content) { | ||||||
| @ -257,14 +268,21 @@ static void move_forward_word(VteTerminal *vte, select_info *select) { | |||||||
|         } else { |         } else { | ||||||
|             end_of_word = true; |             end_of_word = true; | ||||||
|         } |         } | ||||||
|         select->cursor_col++; |         cursor_col++; | ||||||
|     } |     } | ||||||
|  |     vte_terminal_set_cursor_position(vte, cursor_col, cursor_row); | ||||||
|     update_selection(vte, select); |     update_selection(vte, select); | ||||||
| 
 | 
 | ||||||
|     g_free(codepoints); |     g_free(codepoints); | ||||||
|     g_free(content); |     g_free(content); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | static void set_cursor_column(VteTerminal *vte, long column) { | ||||||
|  |     long cursor_row; | ||||||
|  |     vte_terminal_get_cursor_position(vte, nullptr, &cursor_row); | ||||||
|  |     vte_terminal_set_cursor_position(vte, column, cursor_row); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| /* {{{ CALLBACKS */ | /* {{{ CALLBACKS */ | ||||||
| void window_title_cb(VteTerminal *vte, gboolean *dynamic_title) { | void window_title_cb(VteTerminal *vte, gboolean *dynamic_title) { | ||||||
|     const char * const title = *dynamic_title ? vte_terminal_get_window_title(vte) : NULL; |     const char * const title = *dynamic_title ? vte_terminal_get_window_title(vte) : NULL; | ||||||
| @ -305,11 +323,11 @@ gboolean key_press_cb(VteTerminal *vte, GdkEventKey *event, keybind_info *info) | |||||||
|                 move_forward_word(vte, &info->select); |                 move_forward_word(vte, &info->select); | ||||||
|                 break; |                 break; | ||||||
|             case GDK_KEY_asciicircum: |             case GDK_KEY_asciicircum: | ||||||
|                 info->select.cursor_col = 0; |                 set_cursor_column(vte, 0); | ||||||
|                 update_selection(vte, &info->select); |                 update_selection(vte, &info->select); | ||||||
|                 break; |                 break; | ||||||
|             case GDK_KEY_dollar: |             case GDK_KEY_dollar: | ||||||
|                 info->select.cursor_col = vte_terminal_get_column_count(vte) - 1; |                 set_cursor_column(vte, vte_terminal_get_column_count(vte) - 1); | ||||||
|                 update_selection(vte, &info->select); |                 update_selection(vte, &info->select); | ||||||
|                 break; |                 break; | ||||||
|             case GDK_KEY_g: |             case GDK_KEY_g: | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Daniel Micay
						Daniel Micay