Author: mikeL
Date: Mon Jun 23 22:00:36 2008
New Revision: 4432
URL:
http://source.netsurf-browser.org?rev=4432&view=rev
Log:
Drag events are now emited from where the press originated, instead of from where they
became a drag
Modified:
branches/mikeL/netsurf/gtk/gtk_window.c
Modified: branches/mikeL/netsurf/gtk/gtk_window.c
URL:
http://source.netsurf-browser.org/branches/mikeL/netsurf/gtk/gtk_window.c...
==============================================================================
--- branches/mikeL/netsurf/gtk/gtk_window.c (original)
+++ branches/mikeL/netsurf/gtk/gtk_window.c Mon Jun 23 22:00:36 2008
@@ -330,8 +330,7 @@
if (g->mouse->state & BROWSER_MOUSE_PRESS_1){
/* Start button 1 drag */
browser_window_mouse_click(g->bw, BROWSER_MOUSE_DRAG_1,
- event->x / g->bw->scale,
- event->y / g->bw->scale);
+ g->mouse->pressed_x, g->mouse->pressed_y);
/* Replace PRESS with HOLDING and declare drag in progress */
g->mouse->state ^= (BROWSER_MOUSE_PRESS_1 |
BROWSER_MOUSE_HOLDING_1);
@@ -340,8 +339,7 @@
else if (g->mouse->state & BROWSER_MOUSE_PRESS_2){
/* Start button 2 drag */
browser_window_mouse_click(g->bw, BROWSER_MOUSE_DRAG_2,
- event->x / g->bw->scale,
- event->y / g->bw->scale);
+ g->mouse->pressed_x, g->mouse->pressed_y);
/* Replace PRESS with HOLDING and declare drag in progress */
g->mouse->state ^= (BROWSER_MOUSE_PRESS_2 |
BROWSER_MOUSE_HOLDING_2);
@@ -381,9 +379,12 @@
g->mouse->state |= BROWSER_MOUSE_MOD_1;
if (event->state & GDK_CONTROL_MASK)
g->mouse->state |= BROWSER_MOUSE_MOD_2;
-
- browser_window_mouse_click(g->bw, g->mouse->state, event->x /
g->bw->scale,
- event->y / g->bw->scale);
+
+ g->mouse->pressed_x = event->x / g->bw->scale;
+ g->mouse->pressed_y = event->y / g->bw->scale;
+
+ browser_window_mouse_click(g->bw, g->mouse->state, g->mouse->pressed_x,
+ g->mouse->pressed_y);
}
gboolean nsgtk_window_button_release_event(GtkWidget *widget,
@@ -461,7 +462,6 @@
{
struct gui_window *g = data;
wchar_t nskey = gdkkey_to_nskey(event);
-
if (browser_window_key_press(g->bw, nskey))
return TRUE;