Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 20907 Details for
Bug 94502
Redundant check for the pointer coordinates
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Patch
mouse-origin-fix.txt (text/plain), 6.00 KB, created by
Billy Biggs
on 2005-05-10 16:03:41 EDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Billy Biggs
Created:
2005-05-10 16:03:41 EDT
Size:
6.00 KB
patch
obsolete
>Index: Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java >=================================================================== >RCS file: /home/eclipse/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java,v >retrieving revision 1.265 >diff -u -r1.265 Control.java >--- Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java 29 Apr 2005 19:52:42 -0000 1.265 >+++ Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java 10 May 2005 20:01:40 -0000 >@@ -1798,7 +1798,7 @@ > display.dragging = false; > int button = gdkEvent.button; > int type = gdkEvent.type != OS.GDK_2BUTTON_PRESS ? SWT.MouseDown : SWT.MouseDoubleClick; >- sendMouseEvent (type, button, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, gdkEvent.state, event); >+ sendMouseEvent (type, button, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state, event); > int result = 0; > if ((state & MENU) != 0) { > if (gdkEvent.button == 3 && gdkEvent.type == OS.GDK_BUTTON_PRESS) { >@@ -1835,7 +1835,7 @@ > int button = gdkEvent.button; > if (button == -6) button = 4; > if (button == -7) button = 5; >- sendMouseEvent (SWT.MouseUp, button, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, gdkEvent.state, event); >+ sendMouseEvent (SWT.MouseUp, button, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state, event); > return 0; > } > >@@ -1855,7 +1855,7 @@ > OS.memmove (gdkEvent, event, GdkEventCrossing.sizeof); > if (gdkEvent.mode != OS.GDK_CROSSING_NORMAL) return 0; > if (gdkEvent.subwindow != 0) return 0; >- sendMouseEvent (SWT.MouseEnter, 0, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, gdkEvent.state, event); >+ sendMouseEvent (SWT.MouseEnter, 0, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state, event); > return 0; > } > >@@ -1976,7 +1976,7 @@ > OS.memmove (gdkEvent, event, GdkEventCrossing.sizeof); > if (gdkEvent.mode != OS.GDK_CROSSING_NORMAL) return 0; > if (gdkEvent.subwindow != 0) return 0; >- sendMouseEvent (SWT.MouseExit, 0, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, gdkEvent.state, event); >+ sendMouseEvent (SWT.MouseExit, 0, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state, event); > return 0; > } > >@@ -2020,16 +2020,17 @@ > if (hooks (SWT.MouseHover) || filters (SWT.MouseHover)) { > display.addMouseHoverTimeout (handle); > } >- double x_root = gdkEvent.x_root, y_root = gdkEvent.y_root; >+ double x = gdkEvent.x_root, y = gdkEvent.y_root; > int state = gdkEvent.state; > if (gdkEvent.is_hint != 0) { > int [] pointer_x = new int [1], pointer_y = new int [1], mask = new int [1]; >- OS.gdk_window_get_pointer (0, pointer_x, pointer_y, mask); >- x_root = pointer_x [0]; >- y_root = pointer_y [0]; >+ int /*long*/ window = OS.GTK_WIDGET_WINDOW (eventHandle ()); >+ OS.gdk_window_get_pointer (window, pointer_x, pointer_y, mask); >+ x = pointer_x [0]; >+ y = pointer_y [0]; > state = mask [0]; > } >- sendMouseEvent (SWT.MouseMove, 0, gdkEvent.time, x_root, y_root, state, event); >+ sendMouseEvent (SWT.MouseMove, 0, gdkEvent.time, x, y, gdkEvent.is_hint != 0, state, event); > return 0; > } > >@@ -2060,20 +2061,20 @@ > OS.memmove (gdkEvent, eventPtr, GdkEventScroll.sizeof); > switch (gdkEvent.direction) { > case OS.GDK_SCROLL_UP: >- if (!sendMouseEvent (SWT.MouseWheel, 0, 3, SWT.SCROLL_LINE, true, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, gdkEvent.state, eventPtr)) { >+ if (!sendMouseEvent (SWT.MouseWheel, 0, 3, SWT.SCROLL_LINE, true, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state, eventPtr)) { > return 1; > } > break; > case OS.GDK_SCROLL_DOWN: >- if (!sendMouseEvent (SWT.MouseWheel, 0, -3, SWT.SCROLL_LINE, true, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, gdkEvent.state, eventPtr)) { >+ if (!sendMouseEvent (SWT.MouseWheel, 0, -3, SWT.SCROLL_LINE, true, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state, eventPtr)) { > return 1; > } > break; > case OS.GDK_SCROLL_LEFT: >- sendMouseEvent (SWT.MouseDown, 4, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, gdkEvent.state, eventPtr); >+ sendMouseEvent (SWT.MouseDown, 4, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state, eventPtr); > break; > case OS.GDK_SCROLL_RIGHT: >- sendMouseEvent (SWT.MouseDown, 5, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, gdkEvent.state, eventPtr); >+ sendMouseEvent (SWT.MouseDown, 5, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state, eventPtr); > break; > } > return 0; >@@ -2451,22 +2452,27 @@ > return false; > } > >-boolean sendMouseEvent (int type, int button, int time, double x_root, double y_root, int state, int /*long*/ eventPtr) { >- return sendMouseEvent (type, button, 0, 0, false, time, x_root, y_root, state, eventPtr); >+boolean sendMouseEvent (int type, int button, int time, double x, double y, boolean window_relative, int state, int /*long*/ eventPtr) { >+ return sendMouseEvent (type, button, 0, 0, false, time, x, y, window_relative, state, eventPtr); > } > >-boolean sendMouseEvent (int type, int button, int count, int detail, boolean send, int time, double x_root, double y_root, int state, int /*long*/ eventPtr) { >+boolean sendMouseEvent (int type, int button, int count, int detail, boolean send, int time, double x, double y, boolean window_relative, int state, int /*long*/ eventPtr) { > if(!hooks (type) && !filters (type)) return true; > Event event = new Event (); > event.time = time; > event.button = button; > event.detail = detail; > event.count = count; >- int /*long*/ window = OS.GTK_WIDGET_WINDOW (eventHandle ()); >- int [] origin_x = new int [1], origin_y = new int [1]; >- OS.gdk_window_get_origin (window, origin_x, origin_y); >- event.x = (int)x_root - origin_x [0]; >- event.y = (int)y_root - origin_y [0]; >+ if (window_relative) { >+ event.x = (int)x; >+ event.y = (int)y; >+ } else { >+ int /*long*/ window = OS.GTK_WIDGET_WINDOW (eventHandle ()); >+ int [] origin_x = new int [1], origin_y = new int [1]; >+ OS.gdk_window_get_origin (window, origin_x, origin_y); >+ event.x = (int)x - origin_x [0]; >+ event.y = (int)y - origin_y [0]; >+ } > setInputState (event, state); > if (send) { > sendEvent (type, event);
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 94502
: 20907