gtk+ r21103 - in trunk: . gtk
- From: pborelli svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk+ r21103 - in trunk: . gtk
- Date: Tue, 12 Aug 2008 17:21:13 +0000 (UTC)
Author: pborelli
Date: Tue Aug 12 17:21:13 2008
New Revision: 21103
URL: http://svn.gnome.org/viewvc/gtk+?rev=21103&view=rev
Log:
2008-08-12 Paolo Borelli <pborelli katamail com>
Bug 526234 - make shift+ctrl+del delete till the end of line
* gtk/gtktextview.c: add shift+ctrl+del and shift+ctrl+backspace
keyboard shortcuts to delete to the end/start of the current line.
Modified:
trunk/ChangeLog
trunk/gtk/gtktextview.c
Modified: trunk/gtk/gtktextview.c
==============================================================================
--- trunk/gtk/gtktextview.c (original)
+++ trunk/gtk/gtktextview.c Tue Aug 12 17:21:13 2008
@@ -1130,6 +1130,21 @@
G_TYPE_ENUM, GTK_DELETE_WORD_ENDS,
G_TYPE_INT, -1);
+ gtk_binding_entry_add_signal (binding_set, GDK_Delete, GDK_SHIFT_MASK | GDK_CONTROL_MASK,
+ "delete_from_cursor", 2,
+ G_TYPE_ENUM, GTK_DELETE_PARAGRAPH_ENDS,
+ G_TYPE_INT, 1);
+
+ gtk_binding_entry_add_signal (binding_set, GDK_KP_Delete, GDK_SHIFT_MASK | GDK_CONTROL_MASK,
+ "delete_from_cursor", 2,
+ G_TYPE_ENUM, GTK_DELETE_PARAGRAPH_ENDS,
+ G_TYPE_INT, 1);
+
+ gtk_binding_entry_add_signal (binding_set, GDK_BackSpace, GDK_SHIFT_MASK | GDK_CONTROL_MASK,
+ "delete_from_cursor", 2,
+ G_TYPE_ENUM, GTK_DELETE_PARAGRAPH_ENDS,
+ G_TYPE_INT, -1);
+
/* Cut/copy/paste */
gtk_binding_entry_add_signal (binding_set, GDK_x, GDK_CONTROL_MASK,
@@ -5480,26 +5495,42 @@
break;
case GTK_DELETE_PARAGRAPH_ENDS:
- /* If we're already at a newline, we need to
- * simply delete that newline, instead of
- * moving to the next one.
- */
- if (gtk_text_iter_ends_line (&end))
+ if (count > 0)
{
- gtk_text_iter_forward_line (&end);
- --count;
- }
+ /* If we're already at a newline, we need to
+ * simply delete that newline, instead of
+ * moving to the next one.
+ */
+ if (gtk_text_iter_ends_line (&end))
+ {
+ gtk_text_iter_forward_line (&end);
+ --count;
+ }
- while (count > 0)
- {
- if (!gtk_text_iter_forward_to_line_end (&end))
- break;
+ while (count > 0)
+ {
+ if (!gtk_text_iter_forward_to_line_end (&end))
+ break;
- --count;
+ --count;
+ }
}
+ else if (count < 0)
+ {
+ if (gtk_text_iter_starts_line (&start))
+ {
+ gtk_text_iter_backward_line (&start);
+ if (!gtk_text_iter_ends_line (&end))
+ gtk_text_iter_forward_to_line_end (&start);
+ }
+ else
+ {
+ gtk_text_iter_set_line_offset (&start, 0);
+ }
+ ++count;
- /* FIXME figure out what a negative count means
- and support that */
+ gtk_text_iter_backward_lines (&start, -count);
+ }
break;
case GTK_DELETE_PARAGRAPHS:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]