Merge lp:~bratsche/oif/evince-libgrip into lp:~oif-team/oif/evince-gestures-trunk

Proposed by Cody Russell
Status: Merged
Merged at revision: 4209
Proposed branch: lp:~bratsche/oif/evince-libgrip
Merge into: lp:~oif-team/oif/evince-gestures-trunk
Diff against target: 279 lines (+115/-126)
2 files modified
configure.ac (+1/-1)
shell/ev-window.c (+114/-125)
To merge this branch: bzr merge lp:~bratsche/oif/evince-libgrip
Reviewer Review Type Date Requested Status
Mohamed IKBEL Boulabiar (community) Approve
Duncan McGreggor (community) Needs Information
Review via email: mp+41621@code.launchpad.net
To post a comment you must log in.
lp:~bratsche/oif/evince-libgrip updated
4208. By Cody Russell

Merge from trunk, resolve conflicts.

Revision history for this message
Duncan McGreggor (oubiwann) wrote :

Hey Cody,

I tried building this but autogen fails since there's no package for libgrip... how do I work around that? (Or do you want to push a libgrip package into the PPA?).

review: Needs Information
Revision history for this message
Cody Russell (bratsche) wrote :

Need to package libgrip still. :/

lp:~bratsche/oif/evince-libgrip updated
4209. By Cody Russell

Fix warnings, resolve conflict.

Revision history for this message
Cody Russell (bratsche) wrote :

libgrip is packaged now and is in the PPA. I found a couple issues and fixed them in revno 4209.

Revision history for this message
Mohamed IKBEL Boulabiar (boulabiar) wrote :

I liked the factorization of ev_(pinch||drag||rotate)_gesture_(start||update||end) functions into one: ev_gesture_callback

Fully tested and works fine.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'configure.ac'
--- configure.ac 2010-09-21 18:17:40 +0000
+++ configure.ac 2010-11-29 17:47:48 +0000
@@ -193,7 +193,7 @@
193 ;;193 ;;
194esac194esac
195195
196PKG_CHECK_MODULES([SHELL_CORE],[libxml-2.0 >= $LIBXML_REQUIRED libido-0.1 >= 0.2 gtk+-$GTK_API_VERSION >= $GTK_REQUIRED gio-2.0 >= $GLIB_REQUIRED gthread-2.0 $SHELL_PLATFORM_PKGS])196PKG_CHECK_MODULES([SHELL_CORE],[libxml-2.0 >= $LIBXML_REQUIRED libgrip-0.1 >= 0.1 gtk+-$GTK_API_VERSION >= $GTK_REQUIRED gio-2.0 >= $GLIB_REQUIRED gthread-2.0 $SHELL_PLATFORM_PKGS])
197197
198# *********198# *********
199# SM client199# SM client
200200
=== modified file 'shell/ev-window.c'
--- shell/ev-window.c 2010-11-23 14:45:21 +0000
+++ shell/ev-window.c 2010-11-29 17:47:48 +0000
@@ -41,7 +41,7 @@
41#include <gio/gio.h>41#include <gio/gio.h>
42#include <gtk/gtk.h>42#include <gtk/gtk.h>
4343
44#include <libido/idogesturemanager.h>44#include <libgrip/gripgesturemanager.h>
4545
46#include "egg-editable-toolbar.h"46#include "egg-editable-toolbar.h"
47#include "egg-toolbar-editor.h"47#include "egg-toolbar-editor.h"
@@ -5433,104 +5433,96 @@
5433}5433}
54345434
5435static void5435static void
5436ev_pinch_gesture_start (GtkWindow *window,5436ev_gesture_callback (GtkWindow *window,
5437 IdoGestureEvent *event)5437 GripTimeType time_type,
5438{5438 GripGestureEvent *event,
5439 EvWindowPrivate *priv = EV_WINDOW (window)->priv;5439 gpointer user_data)
5440 IdoEventGesturePinch *pinch = (IdoEventGesturePinch *)event;5440{
54415441 EvWindowPrivate *priv = EV_WINDOW (window)->priv;
5442 priv->pinch_start_x = pinch->focus_x;5442
5443 priv->pinch_start_y = pinch->focus_y;5443 if (time_type == GRIP_TIME_START) {
5444 priv->pinch_start_radius = pinch->radius;5444 switch (event->type) {
5445}5445 case GRIP_GESTURE_DRAG: {
54465446 GripEventGestureDrag *drag = (GripEventGestureDrag *)event;
5447static void5447
5448ev_pinch_gesture_update (GtkWindow *window,5448 priv->drag_start_x = drag->position_x;
5449 IdoGestureEvent *event)5449 priv->drag_start_y = drag->position_y;
5450{5450
5451 IdoEventGesturePinch *pinch = (IdoEventGesturePinch *)event;5451 break;
5452 EvWindowPrivate *priv = EV_WINDOW (window)->priv;5452 }
5453 gdouble increment = pinch->radius_delta * 0.01;5453
54545454 case GRIP_GESTURE_PINCH: {
5455 if (increment < 0.0) increment = -increment;5455 GripEventGesturePinch *pinch = (GripEventGesturePinch *)event;
5456 increment += 1.0;5456
54575457 priv->pinch_start_x = pinch->focus_x;
5458 if (pinch->radius_delta < 0.0) {5458 priv->pinch_start_y = pinch->focus_y;
5459 ev_document_model_set_sizing_mode (priv->model, EV_SIZING_FREE);5459 priv->pinch_start_radius = pinch->radius;
5460 ev_view_zoom_out_smooth (priv->view, (1.0 / increment));5460 break;
5461 } else if (pinch->radius_delta > 0.0) {5461 }
5462 ev_document_model_set_sizing_mode (priv->model, EV_SIZING_FREE);5462
5463 ev_view_zoom_in_smooth (priv->view, increment);5463 default:
5464 }5464 break;
5465}5465 }
54665466 } else if (time_type == GRIP_TIME_END) {
5467static void5467 switch (event->type) {
5468ev_pinch_gesture_end (GtkWindow *window,5468 case GRIP_GESTURE_DRAG: {
5469 IdoGestureEvent *event)5469 GripEventGestureDrag *drag = (GripEventGestureDrag *)event;
5470{5470
5471}5471 if (drag->velocity_y >= 1.0 &&
54725472 drag->position_y > priv->drag_start_y) {
5473static void5473 ev_window_cmd_go_next_page (NULL, EV_WINDOW (window));
5474ev_drag_gesture_start (GtkWindow *window,5474 } else if (drag->velocity_y <= -1.0 &&
5475 IdoGestureEvent *event)5475 drag->position_y < priv->drag_start_y) {
5476{5476 ev_window_cmd_go_previous_page (NULL, EV_WINDOW (window));
5477 EvWindowPrivate *priv = EV_WINDOW (window)->priv;5477 } else if (drag->velocity_x >= 1.0 &&
5478 IdoEventGestureDrag *drag = (IdoEventGestureDrag *)event;5478 drag->position_x > priv->drag_start_x) {
54795479 ev_window_cmd_go_next_page (NULL, EV_WINDOW (window));
5480 priv->drag_start_x = drag->position_x;5480 } else if (drag->velocity_x <= -1.0 &&
5481 priv->drag_start_y = drag->position_y;5481 drag->position_x < priv->drag_start_x) {
5482}5482 ev_window_cmd_go_previous_page (NULL, EV_WINDOW (window));
54835483 }
5484static void5484
5485ev_drag_gesture_update (GtkWindow *window,5485 break;
5486 IdoGestureEvent *event)5486 }
5487{5487
5488}5488 case GRIP_GESTURE_ROTATE: {
54895489 GripEventGestureRotate *rotate = (GripEventGestureRotate *)event;
5490static void5490
5491ev_drag_gesture_end (GtkWindow *window,5491 if (rotate->angle >= 1.0) {
5492 IdoGestureEvent *event)5492 ev_window_cmd_edit_rotate_right (NULL, EV_WINDOW (window));
5493{5493 } else if (rotate->angle <= -1.0) {
5494 EvWindowPrivate *priv = EV_WINDOW (window)->priv;5494 ev_window_cmd_edit_rotate_left (NULL, EV_WINDOW (window));
5495 IdoEventGestureDrag *drag = (IdoEventGestureDrag *)event;5495 }
54965496
5497 if (drag->velocity_y >= 1.0 &&5497 break;
5498 drag->position_y > priv->drag_start_y) {5498 }
5499 ev_window_cmd_go_next_page (NULL, EV_WINDOW (window));5499
5500 } else if (drag->velocity_y <= -1.0 &&5500 default:
5501 drag->position_y < priv->drag_start_y) {5501 break;
5502 ev_window_cmd_go_previous_page (NULL, EV_WINDOW (window));5502 }
5503 } else if (drag->velocity_x >= 1.0 &&5503 } else {
5504 drag->position_x > priv->drag_start_x) {5504 switch (event->type) {
5505 ev_window_cmd_go_next_page (NULL, EV_WINDOW (window));5505 case GRIP_GESTURE_PINCH: {
5506 } else if (drag->velocity_x <= -1.0 &&5506 GripEventGesturePinch *pinch = (GripEventGesturePinch *)event;
5507 drag->position_x < priv->drag_start_x) {5507 gdouble increment = pinch->radius_delta * 0.01;
5508 ev_window_cmd_go_previous_page (NULL, EV_WINDOW (window));5508
5509 }5509 if (increment < 0.0) increment = -increment;
5510}5510 increment += 1.0;
55115511
5512static void5512 if (pinch->radius_delta < 0.0) {
5513ev_rotate_gesture_start (GtkWindow *window,5513 ev_document_model_set_sizing_mode (priv->model, EV_SIZING_FREE);
5514 IdoGestureEvent *event)5514 ev_view_zoom_out_smooth (EV_VIEW (priv->view), (1.0 / increment));
5515{5515 } else if (pinch->radius_delta > 0.0) {
5516}5516 ev_document_model_set_sizing_mode (priv->model, EV_SIZING_FREE);
55175517 ev_view_zoom_in_smooth (EV_VIEW (priv->view), increment);
5518static void5518 }
5519ev_rotate_gesture_update (GtkWindow *window,5519
5520 IdoGestureEvent *event)5520 break;
5521{5521 }
5522}5522
55235523 default:
5524static void5524 break;
5525ev_rotate_gesture_end (GtkWindow *window,5525 }
5526 IdoGestureEvent *event)
5527{
5528 IdoEventGestureRotate *rotate = (IdoEventGestureRotate *)event;
5529
5530 if (rotate->angle >= 1.0) {
5531 ev_window_cmd_edit_rotate_right (NULL, EV_WINDOW (window));
5532 } else if (rotate->angle <= -1.0) {
5533 ev_window_cmd_edit_rotate_left (NULL, EV_WINDOW (window));
5534 }5526 }
5535}5527}
55365528
@@ -5538,36 +5530,33 @@
5538on_window_mapped (GtkWidget *widget)5530on_window_mapped (GtkWidget *widget)
5539{5531{
5540 GtkWindow *window;5532 GtkWindow *window;
5541 IdoGestureManager *manager;5533 GripGestureManager *manager;
55425534
5543 window = GTK_WINDOW (widget);5535 window = GTK_WINDOW (widget);
55445536
5545 if (ev_application_get_gestures_enabled (EV_APP)) {5537 if (ev_application_get_gestures_enabled (EV_APP)) {
5546 manager = ido_gesture_manager_get ();5538 manager = grip_gesture_manager_get ();
55475539
5548 ido_gesture_manager_register_window (manager,5540 grip_gesture_manager_register_window (manager,
5549 window,5541 window,
5550 IDO_GESTURE_PINCH,5542 GRIP_GESTURE_PINCH,
5551 2,5543 2,
5552 ev_pinch_gesture_start,5544 ev_gesture_callback,
5553 ev_pinch_gesture_update,5545 NULL, NULL);
5554 ev_pinch_gesture_end);5546
55555547 grip_gesture_manager_register_window (manager,
5556 ido_gesture_manager_register_window (manager,5548 window,
5557 window,5549 GRIP_GESTURE_DRAG,
5558 IDO_GESTURE_DRAG,5550 2,
5559 2,5551 ev_gesture_callback,
5560 ev_drag_gesture_start,5552 NULL, NULL);
5561 ev_drag_gesture_update,5553
5562 ev_drag_gesture_end);5554 grip_gesture_manager_register_window (manager,
55635555 window,
5564 ido_gesture_manager_register_window (manager,5556 GRIP_GESTURE_ROTATE,
5565 window,5557 2,
5566 IDO_GESTURE_ROTATE,5558 ev_gesture_callback,
5567 2,5559 NULL, NULL);
5568 ev_rotate_gesture_start,
5569 ev_rotate_gesture_update,
5570 ev_rotate_gesture_end);
5571 }5560 }
5572}5561}
55735562

Subscribers

People subscribed via source and target branches