Merge lp:~bregma/evince/ubuntu-natty into lp:~ubuntu-desktop/evince/ubuntu

Proposed by Stephen M. Webb
Status: Rejected
Rejected by: Sebastien Bacher
Proposed branch: lp:~bregma/evince/ubuntu-natty
Merge into: lp:~ubuntu-desktop/evince/ubuntu
Diff against target: 678 lines (+636/-0)
5 files modified
debian/changelog (+6/-0)
debian/control.in (+1/-0)
debian/patches/07_utouch-gestures.patch (+627/-0)
debian/patches/series (+1/-0)
debian/rules (+1/-0)
To merge this branch: bzr merge lp:~bregma/evince/ubuntu-natty
Reviewer Review Type Date Requested Status
Ubuntu Desktop Pending
Review via email: mp+54568@code.launchpad.net

Description of the change

Adds uTouch multi-touch gesture handling via libgrip.

This is targetted at natty release.

To post a comment you must log in.
lp:~bregma/evince/ubuntu-natty updated
116. By Stephen M. Webb

Added multi-touch gesture support through libgrip.

Unmerged revisions

116. By Stephen M. Webb

Added multi-touch gesture support through libgrip.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/changelog'
--- debian/changelog 2011-03-22 18:38:58 +0000
+++ debian/changelog 2011-03-23 21:23:34 +0000
@@ -1,3 +1,9 @@
1evince (2.32.0-0ubuntu13) UNRELEASED; urgency=low
2
3 * Added multi-touch gesture support through libgrip (LP: #741242).
4
5 -- Stephen M. Webb <stephen.webb@canonical.com> Mon, 21 Mar 2011 17:28:15 -0400
6
1evince (2.32.0-0ubuntu12) natty; urgency=low7evince (2.32.0-0ubuntu12) natty; urgency=low
28
3 * debian/rules: update the translation template in the correct directory9 * debian/rules: update the translation template in the correct directory
410
=== modified file 'debian/control.in'
--- debian/control.in 2011-01-07 16:38:17 +0000
+++ debian/control.in 2011-03-23 21:23:34 +0000
@@ -17,6 +17,7 @@
17 libcairo2-dev (>= 1.9.10),17 libcairo2-dev (>= 1.9.10),
18 libgtk2.0-dev (>= 2.21.5),18 libgtk2.0-dev (>= 2.21.5),
19 libglib2.0-dev (>= 2.25.11),19 libglib2.0-dev (>= 2.25.11),
20 libgrip-0.1-dev (>= 0.1.1),
20 libgail-dev (>= 2.21.5),21 libgail-dev (>= 2.21.5),
21 libgnome-keyring-dev (>= 2.22.0),22 libgnome-keyring-dev (>= 2.22.0),
22 gnome-icon-theme (>= 2.17.1),23 gnome-icon-theme (>= 2.17.1),
2324
=== added file 'debian/patches/07_utouch-gestures.patch'
--- debian/patches/07_utouch-gestures.patch 1970-01-01 00:00:00 +0000
+++ debian/patches/07_utouch-gestures.patch 2011-03-23 21:23:34 +0000
@@ -0,0 +1,627 @@
1--- a/configure.ac
2+++ b/configure.ac
3@@ -335,6 +335,17 @@
4 AM_CONDITIONAL([GCONF_SCHEMAS_INSTALL],false)
5 fi
6
7+# ****************
8+# uTouch (optional)
9+# ****************
10+GRIP_REQUIRED=0.1.0
11+
12+AC_ARG_WITH([libgrip], AC_HELP_STRING([--with-libgrip], [enable libgrip support]))
13+AS_IF([test "x$with_libgrip" = "xyes"],[
14+ PKG_CHECK_MODULES([LIBGRIP], [libgrip-0.1 >= $GRIP_REQUIRED],
15+ [AC_DEFINE(HAVE_LIBGRIP, 1, [libgrip support])])
16+])
17+
18 dnl Debug mode
19
20 AC_ARG_ENABLE([debug],
21@@ -359,8 +370,8 @@
22 AC_SUBST(LIBDOCUMENT_CFLAGS)
23 AC_SUBST(LIBDOCUMENT_LIBS)
24
25-LIBVIEW_CFLAGS="$LIBVIEW_CFLAGS $GTKUNIXPRINT_CFLAGS $DEBUG_FLAGS"
26-LIBVIEW_LIBS="$LIBVIEW_LIBS $GTKUNIXPRINT_LIBS -lm"
27+LIBVIEW_CFLAGS="$LIBVIEW_CFLAGS $GTKUNIXPRINT_CFLAGS $LIBGRIP_CFLAGS $DEBUG_FLAGS"
28+LIBVIEW_LIBS="$LIBVIEW_LIBS $GTKUNIXPRINT_LIBS $LIBGRIP_LIBS -lm"
29 AC_SUBST(LIBVIEW_CFLAGS)
30 AC_SUBST(LIBVIEW_LIBS)
31
32--- a/libview/ev-view-private.h
33+++ b/libview/ev-view-private.h
34@@ -193,6 +193,16 @@
35
36 /* Accessibility */
37 gboolean a11y_enabled;
38+
39+#ifdef HAVE_LIBGRIP
40+ /* Gesture state */
41+ gboolean enable_gestures;
42+ gdouble drag_start_x;
43+ gdouble drag_start_y;
44+ gdouble pinch_start_x;
45+ gdouble pinch_start_y;
46+ gdouble pinch_start_radius;
47+#endif
48 };
49
50 struct _EvViewClass {
51--- a/libview/ev-view.c
52+++ b/libview/ev-view.c
53@@ -28,6 +28,10 @@
54 #include <gtk/gtk.h>
55 #include <gdk/gdkkeysyms.h>
56
57+#ifdef HAVE_LIBGRIP
58+#include <libgrip/gripgesturemanager.h>
59+#endif
60+
61 #include "ev-mapping-list.h"
62 #include "ev-document-forms.h"
63 #include "ev-document-images.h"
64@@ -48,6 +52,13 @@
65 #define EV_IS_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EV_TYPE_VIEW))
66 #define EV_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EV_TYPE_VIEW, EvViewClass))
67
68+#ifdef HAVE_LIBGRIP
69+enum {
70+ PROP_0,
71+ PROP_ENABLE_GESTURES
72+};
73+#endif
74+
75 enum {
76 SIGNAL_BINDING_ACTIVATED,
77 SIGNAL_HANDLE_LINK,
78@@ -75,6 +86,11 @@
79 #define ZOOM_IN_FACTOR 1.2
80 #define ZOOM_OUT_FACTOR (1.0/ZOOM_IN_FACTOR)
81
82+#ifdef HAVE_LIBGRIP
83+#define GESTURE_DRAG_VELOCITY 1.0
84+#define GESTURE_ROTATE_ANGLE 1.0
85+#endif
86+
87 #define SCROLL_TIME 150
88
89 /*** Scrolling ***/
90@@ -140,6 +156,16 @@
91 static void hide_annotation_windows (EvView *view,
92 gint page);
93 /*** GtkWidget implementation ***/
94+#ifdef HAVE_LIBGRIP
95+static void ev_view_get_property (GObject *object,
96+ guint prop_id,
97+ GValue *value,
98+ GParamSpec *param_spec);
99+static void ev_view_set_property (GObject *object,
100+ guint prop_id,
101+ const GValue *value,
102+ GParamSpec *param_spec);
103+#endif
104 static void ev_view_size_request_continuous_dual_page (EvView *view,
105 GtkRequisition *requisition);
106 static void ev_view_size_request_continuous (EvView *view,
107@@ -277,6 +303,14 @@
108 gpointer data);
109 static void ev_view_update_primary_selection (EvView *ev_view);
110
111+/*** Gestures ***/
112+#ifdef HAVE_LIBGRIP
113+static void ev_gesture_callback (GtkWidget *widget,
114+ GripTimeType time_type,
115+ GripGestureEvent *event,
116+ gpointer user_data);
117+#endif
118+
119 G_DEFINE_TYPE (EvView, ev_view, GTK_TYPE_LAYOUT)
120
121 /* HeightToPage cache */
122@@ -2942,6 +2976,116 @@
123 return FALSE;
124 }
125
126+#ifdef HAVE_LIBGRIP
127+/*** Gesture implementation ***/
128+static void
129+ev_gesture_callback (GtkWidget *widget,
130+ GripTimeType time_type,
131+ GripGestureEvent *event,
132+ gpointer user_data)
133+{
134+ EvView *view = EV_VIEW (widget);
135+
136+ if (time_type == GRIP_TIME_START) {
137+ switch (event->type) {
138+ case GRIP_GESTURE_DRAG: {
139+ GripEventGestureDrag *drag = (GripEventGestureDrag *)event;
140+
141+ view->drag_start_x = drag->position_x;
142+ view->drag_start_y = drag->position_y;
143+
144+ break;
145+ }
146+
147+ case GRIP_GESTURE_PINCH: {
148+ GripEventGesturePinch *pinch = (GripEventGesturePinch *)event;
149+
150+ view->pinch_start_x = pinch->focus_x;
151+ view->pinch_start_y = pinch->focus_y;
152+ view->pinch_start_radius = pinch->radius;
153+ break;
154+ }
155+
156+ default:
157+ break;
158+ }
159+ } else if (time_type == GRIP_TIME_END) {
160+ switch (event->type) {
161+ case GRIP_GESTURE_DRAG: {
162+ GripEventGestureDrag *drag = (GripEventGestureDrag *)event;
163+
164+ if (drag->velocity_y >= GESTURE_DRAG_VELOCITY &&
165+ drag->position_y > view->drag_start_y) {
166+ ev_view_previous_page (view);
167+ } else if (drag->velocity_y <= -GESTURE_DRAG_VELOCITY &&
168+ drag->position_y < view->drag_start_y) {
169+ ev_view_next_page (view);
170+ } else if (drag->velocity_x >= GESTURE_DRAG_VELOCITY &&
171+ drag->position_x > view->drag_start_x) {
172+ ev_view_previous_page (view);
173+ } else if (drag->velocity_x <= -GESTURE_DRAG_VELOCITY &&
174+ drag->position_x < view->drag_start_x) {
175+ ev_view_next_page (view);
176+ }
177+
178+ break;
179+ }
180+
181+ case GRIP_GESTURE_ROTATE: {
182+ GripEventGestureRotate *rotate = (GripEventGestureRotate *)event;
183+ gint rotation = ev_document_model_get_rotation (view->model);
184+
185+ if (rotate->angle >= GESTURE_ROTATE_ANGLE) {
186+ ev_document_model_set_rotation (view->model,
187+ rotation + 90);
188+ } else if (rotate->angle <= -GESTURE_ROTATE_ANGLE) {
189+ ev_document_model_set_rotation (view->model,
190+ rotation - 90);
191+ }
192+
193+ break;
194+ }
195+
196+ default:
197+ break;
198+ }
199+ } else {
200+ switch (event->type) {
201+ case GRIP_GESTURE_PINCH: {
202+ GripEventGesturePinch *pinch = (GripEventGesturePinch *)event;
203+ gdouble increment = pinch->radius_delta * 0.01;
204+
205+ if (increment < 0.0) increment = -increment;
206+ increment += 1.0;
207+
208+ if (pinch->radius_delta < 0.0) {
209+ ev_document_model_set_sizing_mode (view->model, EV_SIZING_FREE);
210+ ev_view_zoom_out_smooth (view, (1.0 / increment));
211+ } else if (pinch->radius_delta > 0.0) {
212+ ev_document_model_set_sizing_mode (view->model, EV_SIZING_FREE);
213+ ev_view_zoom_in_smooth (view, increment);
214+ }
215+
216+ break;
217+ }
218+
219+ case GRIP_GESTURE_DRAG: {
220+ GripEventGestureDrag *drag = (GripEventGestureDrag *)event;
221+
222+ if (drag->fingers == 1) {
223+ ev_view_drag (view,
224+ (gdouble)-drag->delta_x,
225+ (gdouble)-drag->delta_y);
226+ }
227+ }
228+
229+ default:
230+ break;
231+ }
232+ }
233+}
234+#endif
235+
236 /*** GtkWidget implementation ***/
237
238 static void
239@@ -4586,6 +4730,82 @@
240 return GTK_WIDGET_CLASS (ev_view_parent_class)->get_accessible (widget);
241 }
242
243+#ifdef HAVE_LIBGRIP
244+static void
245+ev_view_get_property (GObject *object,
246+ guint prop_id,
247+ GValue *value,
248+ GParamSpec *param_spec)
249+{
250+ EvView *view = EV_VIEW (object);
251+
252+ switch (prop_id) {
253+ case PROP_ENABLE_GESTURES:
254+ g_value_set_boolean (value, view->enable_gestures);
255+ break;
256+
257+ default:
258+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
259+ prop_id,
260+ param_spec);
261+ }
262+}
263+
264+static void
265+ev_view_set_property (GObject *object,
266+ guint prop_id,
267+ const GValue *value,
268+ GParamSpec *param_spec)
269+{
270+ EvView *view = EV_VIEW (object);
271+ GtkWidget *widget;
272+ GripGestureManager *manager;
273+
274+ switch (prop_id) {
275+ case PROP_ENABLE_GESTURES:
276+ view->enable_gestures = g_value_get_boolean (value);
277+
278+ widget = GTK_WIDGET (view);
279+ manager = grip_gesture_manager_get ();
280+
281+ grip_gesture_manager_register_window (manager,
282+ widget,
283+ GRIP_GESTURE_PINCH,
284+ 2,
285+ ev_gesture_callback,
286+ NULL, NULL);
287+
288+ grip_gesture_manager_register_window (manager,
289+ widget,
290+ GRIP_GESTURE_DRAG,
291+ 2,
292+ ev_gesture_callback,
293+ NULL, NULL);
294+
295+ grip_gesture_manager_register_window (manager,
296+ widget,
297+ GRIP_GESTURE_DRAG,
298+ 1,
299+ ev_gesture_callback,
300+ NULL, NULL);
301+
302+ grip_gesture_manager_register_window (manager,
303+ widget,
304+ GRIP_GESTURE_ROTATE,
305+ 2,
306+ ev_gesture_callback,
307+ NULL, NULL);
308+
309+ break;
310+
311+ default:
312+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
313+ prop_id,
314+ param_spec);
315+ }
316+}
317+#endif
318+
319 static void
320 ev_view_class_init (EvViewClass *class)
321 {
322@@ -4596,6 +4816,10 @@
323 GtkBindingSet *binding_set;
324
325 object_class->finalize = ev_view_finalize;
326+#ifdef HAVE_LIBGRIP
327+ object_class->get_property = ev_view_get_property;
328+ object_class->set_property = ev_view_set_property;
329+#endif
330
331 widget_class->expose_event = ev_view_expose_event;
332 widget_class->button_press_event = ev_view_button_press_event;
333@@ -4681,6 +4905,17 @@
334 G_TYPE_NONE, 1,
335 EV_TYPE_ANNOTATION);
336
337+#ifdef HAVE_LIBGRIP
338+ g_object_class_install_property (object_class,
339+ PROP_ENABLE_GESTURES,
340+ g_param_spec_boolean ("enable-gestures",
341+ "Enable gestures",
342+ "Whether to enable gestures",
343+ FALSE,
344+ G_PARAM_WRITABLE |
345+ G_PARAM_CONSTRUCT_ONLY));
346+#endif
347+
348 binding_set = gtk_binding_set_by_class (class);
349
350 add_scroll_binding_keypad (binding_set, GDK_Left, 0, GTK_SCROLL_STEP_BACKWARD, TRUE);
351@@ -4732,6 +4967,7 @@
352 gtk_layout_set_vadjustment (GTK_LAYOUT (view), NULL);
353 }
354
355+
356 /*** Callbacks ***/
357
358 static void
359@@ -4867,8 +5103,21 @@
360 view_update_range_and_current_page (view);
361 }
362
363+#ifdef HAVE_LIBGRIP
364+GtkWidget*
365+ev_view_new (gboolean enable_gestures)
366+{
367+ GtkWidget *view;
368+
369+ view = g_object_new (EV_TYPE_VIEW,
370+ "enable-gestures", enable_gestures,
371+ NULL);
372+
373+ return view;
374+}
375+#else
376 GtkWidget*
377-ev_view_new (void)
378+ev_view_new ()
379 {
380 GtkWidget *view;
381
382@@ -4876,6 +5125,7 @@
383
384 return view;
385 }
386+#endif
387
388 static void
389 setup_caches (EvView *view)
390@@ -5022,6 +5272,26 @@
391 ev_view_handle_cursor_over_xy (view, x, y);
392 }
393
394+#ifdef HAVE_LIBGRIP
395+void
396+ev_view_drag (EvView *view,
397+ gdouble x,
398+ gdouble y)
399+{
400+ gdouble value;
401+
402+ value = gtk_adjustment_get_value (view->vadjustment);
403+ value = CLAMP (value + y, 0,
404+ gtk_adjustment_get_upper (view->vadjustment) - gtk_adjustment_get_page_size (view->vadjustment));
405+ gtk_adjustment_set_value (view->vadjustment, value);
406+
407+ value = gtk_adjustment_get_value (view->hadjustment);
408+ value = CLAMP (value + x, 0,
409+ gtk_adjustment_get_upper (view->hadjustment) - gtk_adjustment_get_page_size (view->hadjustment));
410+ gtk_adjustment_set_value (view->hadjustment, value);
411+}
412+#endif
413+
414 static void
415 ev_view_document_changed_cb (EvDocumentModel *model,
416 GParamSpec *pspec,
417@@ -5253,14 +5523,51 @@
418 return view->scale * ZOOM_OUT_FACTOR >= ev_document_model_get_min_scale (view->model);
419 }
420
421+#ifdef HAVE_LIBGRIP
422+void
423+ev_view_zoom_in_smooth (EvView *view, float factor)
424+{
425+ gdouble scale;
426+
427+ g_return_if_fail (view->sizing_mode == EV_SIZING_FREE);
428+
429+ view->pending_scroll = SCROLL_TO_CENTER;
430+ scale = ev_document_model_get_scale (view->model) * factor;
431+ ev_document_model_set_scale (view->model, scale);
432+}
433+
434 void
435 ev_view_zoom_in (EvView *view)
436 {
437+ ev_view_zoom_in_smooth (view, ZOOM_IN_FACTOR);
438+}
439+
440+void
441+ev_view_zoom_out_smooth (EvView *view, float factor)
442+{
443 gdouble scale;
444
445 g_return_if_fail (view->sizing_mode == EV_SIZING_FREE);
446
447 view->pending_scroll = SCROLL_TO_CENTER;
448+ scale = ev_document_model_get_scale (view->model) * factor;
449+ ev_document_model_set_scale (view->model, scale);
450+}
451+
452+void
453+ev_view_zoom_out (EvView *view)
454+{
455+ ev_view_zoom_out_smooth (view, ZOOM_OUT_FACTOR);
456+}
457+#else
458+void
459+ev_view_zoom_in (EvView *view)
460+{
461+ gdouble scale;
462+
463+ g_return_if_fail (view->sizing_mode == EV_SIZING_FREE);
464+
465+ view->pending_scroll = SCROLL_TO_CENTER;
466 scale = ev_document_model_get_scale (view->model) * ZOOM_IN_FACTOR;
467 ev_document_model_set_scale (view->model, scale);
468 }
469@@ -5276,6 +5583,7 @@
470 scale = ev_document_model_get_scale (view->model) * ZOOM_OUT_FACTOR;
471 ev_document_model_set_scale (view->model, scale);
472 }
473+#endif
474
475 static double
476 zoom_for_size_fit_width (gdouble doc_width,
477--- a/libview/ev-view.h
478+++ b/libview/ev-view.h
479@@ -46,7 +46,11 @@
480
481 GType ev_view_get_type (void) G_GNUC_CONST;
482
483+#ifdef HAVE_LIBGRIP
484+GtkWidget* ev_view_new (gboolean enable_gestures);
485+#else
486 GtkWidget* ev_view_new (void);
487+#endif
488 void ev_view_set_model (EvView *view,
489 EvDocumentModel *model);
490 void ev_view_set_loading (EvView *view,
491@@ -65,8 +69,14 @@
492 /* Page size */
493 gboolean ev_view_can_zoom_in (EvView *view);
494 void ev_view_zoom_in (EvView *view);
495+#ifdef HAVE_LIBGRIP
496+void ev_view_zoom_in_smooth (EvView *view, float factor);
497+#endif
498 gboolean ev_view_can_zoom_out (EvView *view);
499 void ev_view_zoom_out (EvView *view);
500+#ifdef HAVE_LIBGRIP
501+void ev_view_zoom_out_smooth (EvView *view, float factor);
502+#endif
503
504 /* Find */
505 void ev_view_find_next (EvView *view);
506@@ -103,6 +113,13 @@
507 gint page,
508 GdkRectangle *page_area,
509 GtkBorder *border);
510+
511+#ifdef HAVE_LIBGRIP
512+void ev_view_drag (EvView *view,
513+ gdouble x,
514+ gdouble y);
515+#endif
516+
517 /* Annotations */
518 void ev_view_focus_annotation (EvView *view,
519 EvMapping *annot_mapping);
520--- a/previewer/ev-previewer-window.c
521+++ b/previewer/ev-previewer-window.c
522@@ -607,7 +607,11 @@
523 GTK_POLICY_AUTOMATIC,
524 GTK_POLICY_AUTOMATIC);
525
526+#ifdef HAVE_LIBGRIP
527+ window->view = EV_VIEW (ev_view_new (FALSE));
528+#else
529 window->view = EV_VIEW (ev_view_new ());
530+#endif
531 g_signal_connect_object (window->view, "focus_in_event",
532 G_CALLBACK (view_focus_changed),
533 window, 0);
534--- a/shell/ev-application.c
535+++ b/shell/ev-application.c
536@@ -72,6 +72,10 @@
537
538 gchar *filechooser_open_uri;
539 gchar *filechooser_save_uri;
540+
541+#ifdef HAVE_LIBGRIP
542+ gboolean gestures_enabled;
543+#endif
544 };
545
546 struct _EvApplicationClass {
547@@ -126,6 +130,20 @@
548 return instance;
549 }
550
551+#ifdef HAVE_LIBGRIP
552+gboolean
553+ev_application_get_gestures_enabled (EvApplication *application)
554+{
555+ return application->gestures_enabled;
556+}
557+
558+void
559+ev_application_set_gestures_enabled (EvApplication *application, gboolean enabled)
560+{
561+ application->gestures_enabled = enabled;
562+}
563+#endif
564+
565 /* Session */
566 gboolean
567 ev_application_load_session (EvApplication *application)
568--- a/shell/ev-application.h
569+++ b/shell/ev-application.h
570@@ -81,6 +81,10 @@
571 const gchar *ev_application_get_dot_dir (EvApplication *application,
572 gboolean create);
573 const gchar *ev_application_get_data_dir (EvApplication *application);
574+#ifdef HAVE_LIBGRIP
575+gboolean ev_application_get_gestures_enabled (EvApplication *application);
576+void ev_application_set_gestures_enabled (EvApplication *application, gboolean enabled);
577+#endif
578
579 G_END_DECLS
580
581--- a/shell/ev-window.c
582+++ b/shell/ev-window.c
583@@ -6950,7 +6950,11 @@
584 ev_window->priv->view_box);
585 gtk_widget_show (ev_window->priv->view_box);
586
587+#ifdef HAVE_LIBGRIP
588+ ev_window->priv->view = ev_view_new (ev_application_get_gestures_enabled (EV_APP));
589+#else
590 ev_window->priv->view = ev_view_new ();
591+#endif
592 ev_view_set_page_cache_size (EV_VIEW (ev_window->priv->view), PAGE_CACHE_SIZE);
593 ev_view_set_model (EV_VIEW (ev_window->priv->view), ev_window->priv->model);
594
595--- a/shell/main.c
596+++ b/shell/main.c
597@@ -58,7 +58,9 @@
598 static gboolean unlink_temp_file = FALSE;
599 static gchar *print_settings;
600 static const char **file_arguments = NULL;
601-
602+#ifdef HAVE_LIBGRIP
603+static gboolean disable_gestures = FALSE;
604+#endif
605
606 static gboolean
607 option_version_cb (const gchar *option_name,
608@@ -82,6 +84,9 @@
609 { "find", 'l', 0, G_OPTION_ARG_STRING, &ev_find_string, N_("The word or phrase to find in the document"), N_("STRING")},
610 { "unlink-tempfile", 'u', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &unlink_temp_file, NULL, NULL },
611 { "print-settings", 't', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_FILENAME, &print_settings, NULL, NULL },
612+#ifdef HAVE_LIBGRIP
613+ { "disable-gestures", 'g', G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_NONE, &disable_gestures, NULL, NULL },
614+#endif
615 { "version", 0, G_OPTION_FLAG_NO_ARG | G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_CALLBACK, option_version_cb, NULL, NULL },
616 { G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &file_arguments, NULL, N_("[FILEā€¦]") },
617 { NULL }
618@@ -312,6 +317,9 @@
619 #endif /* WITH_SMCLIENT && GDK_WINDOWING_X11 */
620
621 ev_application_load_session (EV_APP);
622+#ifdef HAVE_LIBGRIP
623+ ev_application_set_gestures_enabled (EV_APP, !disable_gestures);
624+#endif
625 load_files (file_arguments);
626
627 /* Change directory so we don't prevent unmounting in case the initial cwd
0628
=== modified file 'debian/patches/series'
--- debian/patches/series 2011-02-04 17:14:42 +0000
+++ debian/patches/series 2011-03-23 21:23:34 +0000
@@ -4,3 +4,4 @@
404_gold.patch404_gold.patch
505_library-path.patch505_library-path.patch
606_new_poppler_api_update.patch606_new_poppler_api_update.patch
707_utouch-gestures.patch
78
=== modified file 'debian/rules'
--- debian/rules 2011-03-22 18:38:58 +0000
+++ debian/rules 2011-03-23 21:23:34 +0000
@@ -24,6 +24,7 @@
24 --enable-pixbuf \24 --enable-pixbuf \
25 --enable-comics \25 --enable-comics \
26 --enable-impress \26 --enable-impress \
27 --with-libgrip \
27 --enable-introspection=yes28 --enable-introspection=yes
2829
29DEB_DH_MAKESHLIBS_ARGS += --exclude=libevince-properties-page.so30DEB_DH_MAKESHLIBS_ARGS += --exclude=libevince-properties-page.so

Subscribers

People subscribed via source and target branches