X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=shell%2Fev-view-private.h;h=a2a2812541554d65c1f687ac2c47ee13213230f4;hb=4afda26e15369c1ff2dbbdb132438f3cfaccb529;hp=e839a31545628370bea1322acbdd2a719f3d6e8a;hpb=982600bbceb76a22d5c7b3e0cbe6e20421105ad6;p=evince.git diff --git a/shell/ev-view-private.h b/shell/ev-view-private.h index e839a315..a2a28125 100644 --- a/shell/ev-view-private.h +++ b/shell/ev-view-private.h @@ -28,14 +28,28 @@ #include "ev-form-field.h" #include "ev-selection.h" +#define DRAG_HISTORY 10 + /* Information for middle clicking and moving around the doc */ typedef struct { gboolean in_drag; GdkPoint start; gdouble hadj; gdouble vadj; + guint drag_timeout_id; + guint release_timeout_id; + GdkPoint buffer[DRAG_HISTORY]; + GdkPoint momentum; } DragInfo; +/* Autoscrolling */ +typedef struct { + gboolean autoscrolling; + guint last_y; + guint start_y; + guint timeout_id; +} AutoScrollInfo; + /* Information for handling selection */ typedef struct { gboolean in_drag; @@ -65,7 +79,8 @@ typedef enum { EV_VIEW_CURSOR_LINK, EV_VIEW_CURSOR_WAIT, EV_VIEW_CURSOR_HIDDEN, - EV_VIEW_CURSOR_DRAG + EV_VIEW_CURSOR_DRAG, + EV_VIEW_CURSOR_AUTOSCROLL, } EvViewCursor; typedef enum { @@ -133,6 +148,9 @@ struct _EvView { /* Information for middle clicking and dragging around. */ DragInfo drag_info; + + /* Autoscrolling */ + AutoScrollInfo scroll_info; /* Selection */ GdkPoint motion;