|
Lines 1798-1804
Link Here
|
| 1798 |
display.dragging = false; |
1798 |
display.dragging = false; |
| 1799 |
int button = gdkEvent.button; |
1799 |
int button = gdkEvent.button; |
| 1800 |
int type = gdkEvent.type != OS.GDK_2BUTTON_PRESS ? SWT.MouseDown : SWT.MouseDoubleClick; |
1800 |
int type = gdkEvent.type != OS.GDK_2BUTTON_PRESS ? SWT.MouseDown : SWT.MouseDoubleClick; |
| 1801 |
sendMouseEvent (type, button, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, gdkEvent.state, event); |
1801 |
sendMouseEvent (type, button, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state, event); |
| 1802 |
int result = 0; |
1802 |
int result = 0; |
| 1803 |
if ((state & MENU) != 0) { |
1803 |
if ((state & MENU) != 0) { |
| 1804 |
if (gdkEvent.button == 3 && gdkEvent.type == OS.GDK_BUTTON_PRESS) { |
1804 |
if (gdkEvent.button == 3 && gdkEvent.type == OS.GDK_BUTTON_PRESS) { |
|
Lines 1835-1841
Link Here
|
| 1835 |
int button = gdkEvent.button; |
1835 |
int button = gdkEvent.button; |
| 1836 |
if (button == -6) button = 4; |
1836 |
if (button == -6) button = 4; |
| 1837 |
if (button == -7) button = 5; |
1837 |
if (button == -7) button = 5; |
| 1838 |
sendMouseEvent (SWT.MouseUp, button, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, gdkEvent.state, event); |
1838 |
sendMouseEvent (SWT.MouseUp, button, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state, event); |
| 1839 |
return 0; |
1839 |
return 0; |
| 1840 |
} |
1840 |
} |
| 1841 |
|
1841 |
|
|
Lines 1855-1861
Link Here
|
| 1855 |
OS.memmove (gdkEvent, event, GdkEventCrossing.sizeof); |
1855 |
OS.memmove (gdkEvent, event, GdkEventCrossing.sizeof); |
| 1856 |
if (gdkEvent.mode != OS.GDK_CROSSING_NORMAL) return 0; |
1856 |
if (gdkEvent.mode != OS.GDK_CROSSING_NORMAL) return 0; |
| 1857 |
if (gdkEvent.subwindow != 0) return 0; |
1857 |
if (gdkEvent.subwindow != 0) return 0; |
| 1858 |
sendMouseEvent (SWT.MouseEnter, 0, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, gdkEvent.state, event); |
1858 |
sendMouseEvent (SWT.MouseEnter, 0, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state, event); |
| 1859 |
return 0; |
1859 |
return 0; |
| 1860 |
} |
1860 |
} |
| 1861 |
|
1861 |
|
|
Lines 1976-1982
Link Here
|
| 1976 |
OS.memmove (gdkEvent, event, GdkEventCrossing.sizeof); |
1976 |
OS.memmove (gdkEvent, event, GdkEventCrossing.sizeof); |
| 1977 |
if (gdkEvent.mode != OS.GDK_CROSSING_NORMAL) return 0; |
1977 |
if (gdkEvent.mode != OS.GDK_CROSSING_NORMAL) return 0; |
| 1978 |
if (gdkEvent.subwindow != 0) return 0; |
1978 |
if (gdkEvent.subwindow != 0) return 0; |
| 1979 |
sendMouseEvent (SWT.MouseExit, 0, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, gdkEvent.state, event); |
1979 |
sendMouseEvent (SWT.MouseExit, 0, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state, event); |
| 1980 |
return 0; |
1980 |
return 0; |
| 1981 |
} |
1981 |
} |
| 1982 |
|
1982 |
|
|
Lines 2020-2035
Link Here
|
| 2020 |
if (hooks (SWT.MouseHover) || filters (SWT.MouseHover)) { |
2020 |
if (hooks (SWT.MouseHover) || filters (SWT.MouseHover)) { |
| 2021 |
display.addMouseHoverTimeout (handle); |
2021 |
display.addMouseHoverTimeout (handle); |
| 2022 |
} |
2022 |
} |
| 2023 |
double x_root = gdkEvent.x_root, y_root = gdkEvent.y_root; |
2023 |
double x = gdkEvent.x_root, y = gdkEvent.y_root; |
| 2024 |
int state = gdkEvent.state; |
2024 |
int state = gdkEvent.state; |
| 2025 |
if (gdkEvent.is_hint != 0) { |
2025 |
if (gdkEvent.is_hint != 0) { |
| 2026 |
int [] pointer_x = new int [1], pointer_y = new int [1], mask = new int [1]; |
2026 |
int [] pointer_x = new int [1], pointer_y = new int [1], mask = new int [1]; |
| 2027 |
OS.gdk_window_get_pointer (0, pointer_x, pointer_y, mask); |
2027 |
int /*long*/ window = OS.GTK_WIDGET_WINDOW (eventHandle ()); |
| 2028 |
x_root = pointer_x [0]; |
2028 |
OS.gdk_window_get_pointer (window, pointer_x, pointer_y, mask); |
| 2029 |
y_root = pointer_y [0]; |
2029 |
x = pointer_x [0]; |
|
|
2030 |
y = pointer_y [0]; |
| 2030 |
state = mask [0]; |
2031 |
state = mask [0]; |
| 2031 |
} |
2032 |
} |
| 2032 |
sendMouseEvent (SWT.MouseMove, 0, gdkEvent.time, x_root, y_root, state, event); |
2033 |
sendMouseEvent (SWT.MouseMove, 0, gdkEvent.time, x, y, gdkEvent.is_hint != 0, state, event); |
| 2033 |
return 0; |
2034 |
return 0; |
| 2034 |
} |
2035 |
} |
| 2035 |
|
2036 |
|
|
Lines 2060-2079
Link Here
|
| 2060 |
OS.memmove (gdkEvent, eventPtr, GdkEventScroll.sizeof); |
2061 |
OS.memmove (gdkEvent, eventPtr, GdkEventScroll.sizeof); |
| 2061 |
switch (gdkEvent.direction) { |
2062 |
switch (gdkEvent.direction) { |
| 2062 |
case OS.GDK_SCROLL_UP: |
2063 |
case OS.GDK_SCROLL_UP: |
| 2063 |
if (!sendMouseEvent (SWT.MouseWheel, 0, 3, SWT.SCROLL_LINE, true, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, gdkEvent.state, eventPtr)) { |
2064 |
if (!sendMouseEvent (SWT.MouseWheel, 0, 3, SWT.SCROLL_LINE, true, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state, eventPtr)) { |
| 2064 |
return 1; |
2065 |
return 1; |
| 2065 |
} |
2066 |
} |
| 2066 |
break; |
2067 |
break; |
| 2067 |
case OS.GDK_SCROLL_DOWN: |
2068 |
case OS.GDK_SCROLL_DOWN: |
| 2068 |
if (!sendMouseEvent (SWT.MouseWheel, 0, -3, SWT.SCROLL_LINE, true, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, gdkEvent.state, eventPtr)) { |
2069 |
if (!sendMouseEvent (SWT.MouseWheel, 0, -3, SWT.SCROLL_LINE, true, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state, eventPtr)) { |
| 2069 |
return 1; |
2070 |
return 1; |
| 2070 |
} |
2071 |
} |
| 2071 |
break; |
2072 |
break; |
| 2072 |
case OS.GDK_SCROLL_LEFT: |
2073 |
case OS.GDK_SCROLL_LEFT: |
| 2073 |
sendMouseEvent (SWT.MouseDown, 4, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, gdkEvent.state, eventPtr); |
2074 |
sendMouseEvent (SWT.MouseDown, 4, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state, eventPtr); |
| 2074 |
break; |
2075 |
break; |
| 2075 |
case OS.GDK_SCROLL_RIGHT: |
2076 |
case OS.GDK_SCROLL_RIGHT: |
| 2076 |
sendMouseEvent (SWT.MouseDown, 5, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, gdkEvent.state, eventPtr); |
2077 |
sendMouseEvent (SWT.MouseDown, 5, gdkEvent.time, gdkEvent.x_root, gdkEvent.y_root, false, gdkEvent.state, eventPtr); |
| 2077 |
break; |
2078 |
break; |
| 2078 |
} |
2079 |
} |
| 2079 |
return 0; |
2080 |
return 0; |
|
Lines 2451-2472
Link Here
|
| 2451 |
return false; |
2452 |
return false; |
| 2452 |
} |
2453 |
} |
| 2453 |
|
2454 |
|
| 2454 |
boolean sendMouseEvent (int type, int button, int time, double x_root, double y_root, int state, int /*long*/ eventPtr) { |
2455 |
boolean sendMouseEvent (int type, int button, int time, double x, double y, boolean window_relative, int state, int /*long*/ eventPtr) { |
| 2455 |
return sendMouseEvent (type, button, 0, 0, false, time, x_root, y_root, state, eventPtr); |
2456 |
return sendMouseEvent (type, button, 0, 0, false, time, x, y, window_relative, state, eventPtr); |
| 2456 |
} |
2457 |
} |
| 2457 |
|
2458 |
|
| 2458 |
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) { |
2459 |
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) { |
| 2459 |
if(!hooks (type) && !filters (type)) return true; |
2460 |
if(!hooks (type) && !filters (type)) return true; |
| 2460 |
Event event = new Event (); |
2461 |
Event event = new Event (); |
| 2461 |
event.time = time; |
2462 |
event.time = time; |
| 2462 |
event.button = button; |
2463 |
event.button = button; |
| 2463 |
event.detail = detail; |
2464 |
event.detail = detail; |
| 2464 |
event.count = count; |
2465 |
event.count = count; |
| 2465 |
int /*long*/ window = OS.GTK_WIDGET_WINDOW (eventHandle ()); |
2466 |
if (window_relative) { |
| 2466 |
int [] origin_x = new int [1], origin_y = new int [1]; |
2467 |
event.x = (int)x; |
| 2467 |
OS.gdk_window_get_origin (window, origin_x, origin_y); |
2468 |
event.y = (int)y; |
| 2468 |
event.x = (int)x_root - origin_x [0]; |
2469 |
} else { |
| 2469 |
event.y = (int)y_root - origin_y [0]; |
2470 |
int /*long*/ window = OS.GTK_WIDGET_WINDOW (eventHandle ()); |
|
|
2471 |
int [] origin_x = new int [1], origin_y = new int [1]; |
| 2472 |
OS.gdk_window_get_origin (window, origin_x, origin_y); |
| 2473 |
event.x = (int)x - origin_x [0]; |
| 2474 |
event.y = (int)y - origin_y [0]; |
| 2475 |
} |
| 2470 |
setInputState (event, state); |
2476 |
setInputState (event, state); |
| 2471 |
if (send) { |
2477 |
if (send) { |
| 2472 |
sendEvent (type, event); |
2478 |
sendEvent (type, event); |