Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
pwmt
zathura
Commits
82b6fac0
Commit
82b6fac0
authored
Jul 05, 2014
by
Alexander Shabalin
Browse files
Implement smooth scroll and smooth zoom
parent
386c949d
Changes
3
Hide whitespace changes
Inline
Side-by-side
config.c
View file @
82b6fac0
...
...
@@ -315,16 +315,18 @@ config_load_default(zathura_t* zathura)
girara_shortcut_add(gsession, 0, 0, "zZ", sc_zoom, (mode), ZOOM_SPECIFIC, NULL);
#define DEFAULT_MOUSE_EVENTS(mode) \
girara_mouse_event_add(gsession, 0, 0, sc_mouse_scroll, (mode), GIRARA_EVENT_SCROLL_UP, UP, NULL); \
girara_mouse_event_add(gsession, 0, 0, sc_mouse_scroll, (mode), GIRARA_EVENT_SCROLL_DOWN, DOWN, NULL); \
girara_mouse_event_add(gsession, 0, 0, sc_mouse_scroll, (mode), GIRARA_EVENT_SCROLL_LEFT, LEFT, NULL); \
girara_mouse_event_add(gsession, 0, 0, sc_mouse_scroll, (mode), GIRARA_EVENT_SCROLL_RIGHT, RIGHT, NULL); \
girara_mouse_event_add(gsession, 0, 0, sc_mouse_scroll, (mode), GIRARA_EVENT_SCROLL_UP, UP, NULL); \
girara_mouse_event_add(gsession, 0, 0, sc_mouse_scroll, (mode), GIRARA_EVENT_SCROLL_DOWN, DOWN, NULL); \
girara_mouse_event_add(gsession, 0, 0, sc_mouse_scroll, (mode), GIRARA_EVENT_SCROLL_LEFT, LEFT, NULL); \
girara_mouse_event_add(gsession, 0, 0, sc_mouse_scroll, (mode), GIRARA_EVENT_SCROLL_RIGHT, RIGHT, NULL); \
girara_mouse_event_add(gsession, 0, 0, sc_mouse_scroll, (mode), GIRARA_EVENT_SCROLL_BIDIRECTIONAL, BIDIRECTIONAL, NULL); \
\
girara_mouse_event_add(gsession, GDK_SHIFT_MASK, 0, sc_mouse_scroll, (mode), GIRARA_EVENT_SCROLL_UP, LEFT, NULL); \
girara_mouse_event_add(gsession, GDK_SHIFT_MASK, 0, sc_mouse_scroll, (mode), GIRARA_EVENT_SCROLL_DOWN, RIGHT, NULL); \
\
girara_mouse_event_add(gsession, GDK_CONTROL_MASK, 0, sc_mouse_zoom, (mode), GIRARA_EVENT_SCROLL_UP, UP, NULL); \
girara_mouse_event_add(gsession, GDK_CONTROL_MASK, 0, sc_mouse_zoom, (mode), GIRARA_EVENT_SCROLL_DOWN, DOWN, NULL); \
girara_mouse_event_add(gsession, GDK_CONTROL_MASK, 0, sc_mouse_zoom, (mode), GIRARA_EVENT_SCROLL_UP, UP, NULL); \
girara_mouse_event_add(gsession, GDK_CONTROL_MASK, 0, sc_mouse_zoom, (mode), GIRARA_EVENT_SCROLL_DOWN, DOWN, NULL); \
girara_mouse_event_add(gsession, GDK_CONTROL_MASK, 0, sc_mouse_zoom, (mode), GIRARA_EVENT_SCROLL_BIDIRECTIONAL, BIDIRECTIONAL, NULL); \
girara_mouse_event_add(gsession, 0, GIRARA_MOUSE_BUTTON2, sc_mouse_scroll, (mode), GIRARA_EVENT_BUTTON_PRESS, 0, NULL); \
girara_mouse_event_add(gsession, GDK_BUTTON2_MASK, GIRARA_MOUSE_BUTTON2, sc_mouse_scroll, (mode), GIRARA_EVENT_BUTTON_RELEASE, 0, NULL); \
girara_mouse_event_add(gsession, GDK_BUTTON2_MASK, 0, sc_mouse_scroll, (mode), GIRARA_EVENT_MOTION_NOTIFY, 0, NULL); \
...
...
shortcuts.c
View file @
82b6fac0
...
...
@@ -285,6 +285,7 @@ sc_mouse_scroll(girara_session_t* session, girara_argument_t* argument, girara_e
case
GIRARA_EVENT_SCROLL_DOWN
:
case
GIRARA_EVENT_SCROLL_LEFT
:
case
GIRARA_EVENT_SCROLL_RIGHT
:
case
GIRARA_EVENT_SCROLL_BIDIRECTIONAL
:
return
sc_scroll
(
session
,
argument
,
NULL
,
t
);
/* drag */
...
...
@@ -339,6 +340,9 @@ sc_mouse_zoom(girara_session_t* session, girara_argument_t* argument, girara_eve
case
GIRARA_EVENT_SCROLL_DOWN
:
argument
->
n
=
ZOOM_OUT
;
break
;
case
GIRARA_EVENT_SCROLL_BIDIRECTIONAL
:
argument
->
n
=
ZOOM_SMOOTH
;
break
;
default:
return
false
;
}
...
...
@@ -589,6 +593,13 @@ sc_scroll(girara_session_t* session, girara_argument_t* argument,
case
RIGHT
:
pos_x
+=
direction
*
t
*
scroll_hstep
/
(
double
)
doc_width
;
break
;
case
BIDIRECTIONAL
:
{
double
*
movement
=
(
double
*
)
argument
->
data
;
pos_x
+=
movement
[
0
]
*
t
*
scroll_hstep
/
(
double
)
doc_width
;
pos_y
+=
movement
[
1
]
*
t
*
scroll_step
/
(
double
)
doc_height
;
break
;
}
}
/* handle boundaries */
...
...
@@ -1367,6 +1378,9 @@ sc_zoom(girara_session_t* session, girara_argument_t* argument, girara_event_t*
}
else
{
zathura_document_set_scale
(
zathura
->
document
,
t
/
100
.
0
);
}
}
else
if
(
argument
->
n
==
ZOOM_SMOOTH
)
{
double
dy
=
((
double
*
)
argument
->
data
)[
1
];
zathura_document_set_scale
(
zathura
->
document
,
old_zoom
+
zoom_step
*
dy
);
}
else
{
zathura_document_set_scale
(
zathura
->
document
,
1
.
0
);
}
...
...
zathura.h
View file @
82b6fac0
...
...
@@ -60,7 +60,9 @@ enum {
ROTATE_CW
,
ROTATE_CCW
,
PAGE_BOTTOM
,
PAGE_TOP
PAGE_TOP
,
BIDIRECTIONAL
,
ZOOM_SMOOTH
};
/* unspecified page number */
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment