qemacs-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemacs-commit] qemacs qe.c qe.h qeconfig.h


From: Charlie Gordon
Subject: [Qemacs-commit] qemacs qe.c qe.h qeconfig.h
Date: Sun, 16 Aug 2015 17:40:41 +0000

CVSROOT:        /sources/qemacs
Module name:    qemacs
Changes by:     Charlie Gordon <chqrlie>        15/08/16 17:40:41

Modified files:
        .              : qe.c qe.h qeconfig.h 

Log message:
        view-mode: improve navigation
        - move cursor instead of scrolling at top of file
        - move cursor horizontally except left on bol
        - scroll-left anf scroll-right toggle line-wrapping
        - change some bindings
          C-down -> forward-paragraph
          C-up   -> backward-paragraph
        - fix scroll-left and scroll-right direction argument
        - add eb_at_bol(b, offset) primitive

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.c?cvsroot=qemacs&r1=1.197&r2=1.198
http://cvs.savannah.gnu.org/viewcvs/qemacs/qe.h?cvsroot=qemacs&r1=1.194&r2=1.195
http://cvs.savannah.gnu.org/viewcvs/qemacs/qeconfig.h?cvsroot=qemacs&r1=1.51&r2=1.52

Patches:
Index: qe.c
===================================================================
RCS file: /sources/qemacs/qemacs/qe.c,v
retrieving revision 1.197
retrieving revision 1.198
diff -u -b -r1.197 -r1.198
--- qe.c        15 Aug 2015 14:18:51 -0000      1.197
+++ qe.c        16 Aug 2015 17:40:40 -0000      1.198
@@ -942,9 +942,13 @@
 {
 #ifndef CONFIG_TINY
     if (s->b->flags & BF_PREVIEW) {
-        if (s->mode->scroll_up_down)
+        if (s->mode->scroll_up_down
+        &&  (dir > 0 || s->offset_top > 0)
+        &&  eb_at_bol(s->b, s->offset)) {
             s->mode->scroll_up_down(s, dir);
-    } else
+            return;
+        }
+    }
 #endif
     if (s->mode->move_up_down)
         s->mode->move_up_down(s, dir);
@@ -955,9 +959,12 @@
 #ifndef CONFIG_TINY
     if (s->b->flags & BF_PREVIEW) {
         EditState *e = find_window(s, KEY_LEFT);
-        if (e && (e->b->flags & BF_DIRED) && dir < 0)
+        if (e && (e->b->flags & BF_DIRED)
+        &&  dir < 0 && eb_at_bol(s->b, s->offset)) {
             s->qe_state->active_window = e;
-    } else
+            return;
+        }        
+    }
 #endif
     if (s->mode->move_left_right)
         s->mode->move_left_right(s, dir);
@@ -1059,8 +1066,21 @@
 
 void do_scroll_left_right(EditState *s, int dir)
 {
+    if (dir < 0) {
+        if (s->x_disp[0] == 0) {
+            s->wrap = WRAP_LINE;
+        } else {
+            /* XXX: should change x_disp by space_width increments */
+            s->x_disp[0] += dir;
+        }
+    } else {
+        if (s->wrap == WRAP_LINE) {
+            s->wrap = WRAP_TRUNCATE;
+        } else {
     /* XXX: should change x_disp by space_width increments */
     s->x_disp[0] += dir;
+        }
+    }
 }
 
 void do_scroll_up_down(EditState *s, int dir)

Index: qe.h
===================================================================
RCS file: /sources/qemacs/qemacs/qe.h,v
retrieving revision 1.194
retrieving revision 1.195
diff -u -b -r1.194 -r1.195
--- qe.h        15 Aug 2015 13:08:42 -0000      1.194
+++ qe.h        16 Aug 2015 17:40:41 -0000      1.195
@@ -988,6 +988,9 @@
 int eb_goto_char(EditBuffer *b, int pos);
 int eb_get_char_offset(EditBuffer *b, int offset);
 int eb_delete_range(EditBuffer *b, int p1, int p2);
+static inline int eb_at_bol(EditBuffer *b, int offset) {
+    return eb_prevc(b, offset, &offset) == '\n';
+}
 //int eb_clip_offset(EditBuffer *b, int offset);
 void do_undo(EditState *s);
 void do_redo(EditState *s);

Index: qeconfig.h
===================================================================
RCS file: /sources/qemacs/qemacs/qeconfig.h,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -b -r1.51 -r1.52
--- qeconfig.h  11 Aug 2015 17:45:31 -0000      1.51
+++ qeconfig.h  16 Aug 2015 17:40:41 -0000      1.52
@@ -200,9 +200,9 @@
 
     CMD0( KEY_META('h'), KEY_NONE,
           "mark-paragraph", do_mark_paragraph)
-    CMD0( KEY_META('{'), KEY_META('['),
+    CMD0( KEY_META('{'), KEY_CTRL_UP,  /* KEY_META('[') */
           "backward-paragraph", do_backward_paragraph)
-    CMD0( KEY_META('}'), KEY_META(']'),
+    CMD0( KEY_META('}'), KEY_CTRL_DOWN, /* KEY_META(']') */
           "forward-paragraph", do_forward_paragraph)
     CMD2( KEY_META('q'), KEY_NONE,
           "fill-paragraph", do_fill_paragraph, ES, "*")
@@ -277,9 +277,9 @@
     CMD1( KEY_CTRL('x'), KEY_RIGHT,
           "find-window-right", do_find_window, KEY_RIGHT)
     CMD1( KEY_META('('), KEY_NONE,
-          "scroll-left", do_scroll_left_right, -1)
+          "scroll-left", do_scroll_left_right, 1)
     CMD1( KEY_META(')'), KEY_NONE,
-          "scroll-right", do_scroll_left_right, 1)
+          "scroll-right", do_scroll_left_right, -1)
     CMD1( KEY_NONE, KEY_NONE,
           "preview-mode", do_preview_mode, 1)
 #endif



reply via email to

[Prev in Thread] Current Thread [Next in Thread]