~ubuntu-branches/ubuntu/quantal/epiphany-extensions/quantal

« back to all changes in this revision

Viewing changes to extensions/push-scroller/ephy-push-scroller.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastian Dröge
  • Date: 2010-04-09 07:34:35 UTC
  • mfrom: (1.1.40 upstream) (2.3.10 sid)
  • Revision ID: james.westby@ubuntu.com-20100409073435-ypgwviw41tw8307a
Tags: 2.30.0-4
* debian/control.in:
  + (Build-) depend on epiphany-browser >= 2.30.2 for the new
    and finally correct extensions directory.

Show diffs side-by-side

added added

removed removed

Lines of Context:
72
72
{
73
73
        GtkAdjustment *adj;
74
74
        gdouble value;
75
 
 
76
 
        g_return_if_fail (GTK_IS_SCROLLED_WINDOW (embed));
77
 
 
78
 
        adj = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (embed));
79
 
        value = gtk_adjustment_get_value (adj);
80
 
        gtk_adjustment_set_value (adj, value + scroll_x);
81
 
 
82
 
        adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (embed));
83
 
        value = gtk_adjustment_get_value (adj);
84
 
        gtk_adjustment_set_value (adj, value + scroll_y);
 
75
        gdouble new_value;
 
76
        gdouble page_size;
 
77
        gdouble upper;
 
78
        gdouble lower;
 
79
        GtkWidget *sw;
 
80
 
 
81
        sw = gtk_widget_get_parent (GTK_WIDGET (ephy_embed_get_web_view (embed)));
 
82
        g_return_if_fail (GTK_IS_SCROLLED_WINDOW (sw));
 
83
 
 
84
        adj = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (sw));
 
85
        upper = gtk_adjustment_get_upper (adj);
 
86
        lower = gtk_adjustment_get_lower (adj);
 
87
        value = gtk_adjustment_get_value (adj);
 
88
        page_size = gtk_adjustment_get_page_size (adj);
 
89
 
 
90
        new_value = CLAMP (value - scroll_x, lower, upper - page_size);
 
91
        gtk_adjustment_set_value (adj, new_value);
 
92
 
 
93
        adj = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (sw));
 
94
        upper = gtk_adjustment_get_upper (adj);
 
95
        lower = gtk_adjustment_get_lower (adj);
 
96
        value = gtk_adjustment_get_value (adj);
 
97
        page_size = gtk_adjustment_get_page_size (adj);
 
98
 
 
99
        new_value = CLAMP (value - scroll_y, lower, upper - page_size);
 
100
        gtk_adjustment_set_value (adj, new_value);
85
101
}
86
102
 
87
103
static gboolean
90
106
                              EphyPushScroller *scroller)
91
107
{
92
108
        EphyPushScrollerPrivate *priv = scroller->priv;
93
 
        int x_dist, x_dist_abs, y_dist, y_dist_abs;
 
109
        int x_dist, y_dist;
94
110
 
95
111
        if (!priv->active)
96
112
        {
98
114
        }
99
115
 
100
116
        /* get distance between last known cursor position and cursor */
101
 
        x_dist = priv->start_x - event->x_root;
102
 
        x_dist_abs = abs (x_dist);
103
 
        y_dist = priv->start_y - event->y_root;
104
 
        y_dist_abs = abs (y_dist);
 
117
        x_dist = event->x_root - priv->start_x;
 
118
        y_dist = event->y_root - priv->start_y ;
105
119
 
106
120
        /* scroll */
107
121
        ephy_push_scroller_scroll_pixels (priv->embed, x_dist, y_dist);
183
197
void
184
198
ephy_push_scroller_start (EphyPushScroller *scroller,
185
199
                          EphyEmbed *embed,
186
 
                          int x,
187
 
                          int y)
 
200
                          gdouble x,
 
201
                          gdouble y)
188
202
{
189
203
        EphyPushScrollerPrivate *priv = scroller->priv;
190
204
        GtkWidget *widget, *child;