Author: MarkieB
Date: Mon Aug 31 12:54:20 2009
New Revision: 9528
URL:
http://source.netsurf-browser.org?rev=9528&view=rev
Log:
add alt-modifier handling
Modified:
branches/MarkieB/windows/windows/gui.c
Modified: branches/MarkieB/windows/windows/gui.c
URL:
http://source.netsurf-browser.org/branches/MarkieB/windows/windows/gui.c?...
==============================================================================
--- branches/MarkieB/windows/windows/gui.c (original)
+++ branches/MarkieB/windows/windows/gui.c Mon Aug 31 12:54:20 2009
@@ -620,6 +620,7 @@
int x,y;
bool shift = ((GetKeyState(VK_SHIFT) & 0x8000) == 0x8000);
bool ctrl = ((GetKeyState(VK_CONTROL) & 0x8000) == 0x8000);
+ bool alt = ((GetKeyState(VK_MENU) & 0x8000) == 0x8000);
x = GET_X_LPARAM(lparam);
y = GET_Y_LPARAM(lparam);
if ((w == NULL) || (w->mouse == NULL) || (w->bw == NULL)
@@ -646,7 +647,9 @@
w->mouse->state &= ~BROWSER_MOUSE_MOD_1;
if (((w->mouse->state & BROWSER_MOUSE_MOD_2) != 0) && !ctrl)
w->mouse->state &= ~BROWSER_MOUSE_MOD_2;
-
+ if (((w->mouse->state & BROWSER_MOUSE_MOD_3) != 0) && !alt)
+ w->mouse->state &= ~BROWSER_MOUSE_MOD_3;
+
browser_window_mouse_track(w->bw, w->mouse->state,
(x + w->scrollx) / w->bw->scale,
(y - w->voffset + w->scrolly) / w->bw->scale);
@@ -667,6 +670,8 @@
w->mouse->state |= BROWSER_MOUSE_MOD_1;
if ((GetKeyState(VK_CONTROL) & 0x8000) == 0x8000)
w->mouse->state |= BROWSER_MOUSE_MOD_2;
+ if ((GetKeyState(VK_MENU) & 0x8000) == 0x8000)
+ w->mouse->state |= BROWSER_MOUSE_MOD_3;
w->mouse->pressed_x = (x + w->scrollx) / w->bw->scale;
w->mouse->pressed_y = (y - w->voffset + w->scrolly)
/ w->bw->scale;
@@ -693,6 +698,8 @@
w->mouse->state |= BROWSER_MOUSE_MOD_1;
if ((GetKeyState(VK_CONTROL) & 0x8000) == 0x8000)
w->mouse->state |= BROWSER_MOUSE_MOD_2;
+ if ((GetKeyState(VK_MENU) & 0x8000) == 0x8000)
+ w->mouse->state |= BROWSER_MOUSE_MOD_3;
w->mouse->pressed_x = (x + w->scrollx) / w->bw->scale;
w->mouse->pressed_y = (y - w->voffset + w->scrolly)
/ w->bw->scale;
@@ -714,7 +721,8 @@
bool shift = ((GetKeyState(VK_SHIFT) & 0x8000) == 0x8000);
bool ctrl = ((GetKeyState(VK_CONTROL) & 0x8000) == 0x8000);
-
+ bool alt = ((GetKeyState(VK_MENU) & 0x8000) == 0x8000);
+
if ((w->mouse->state & BROWSER_MOUSE_PRESS_1) != 0) {
w->mouse->state &= ~BROWSER_MOUSE_PRESS_1;
w->mouse->state |= BROWSER_MOUSE_CLICK_1;
@@ -724,7 +732,9 @@
w->mouse->state &= ~BROWSER_MOUSE_MOD_1;
if (((w->mouse->state & BROWSER_MOUSE_MOD_2) != 0) && !ctrl)
w->mouse->state &= ~BROWSER_MOUSE_MOD_2;
-
+ if (((w->mouse->state & BROWSER_MOUSE_MOD_3) != 0) && !alt)
+ w->mouse->state &= ~BROWSER_MOUSE_MOD_3;
+
if ((w->mouse->state & BROWSER_MOUSE_CLICK_1) != 0)
browser_window_mouse_click(w->bw, w->mouse->state,
(x + w->scrollx) / w->bw->scale,
@@ -749,7 +759,8 @@
return DefWindowProc(hwnd, msg, wparam, lparam);
bool shift = ((GetKeyState(VK_SHIFT) & 0x8000) == 0x8000);
bool ctrl = ((GetKeyState(VK_CONTROL) & 0x8000) == 0x8000);
-
+ bool alt = ((GetKeyState(VK_MENU) & 0x8000) == 0x8000);
+
if ((w->mouse->state & BROWSER_MOUSE_PRESS_2) != 0) {
w->mouse->state &= ~BROWSER_MOUSE_PRESS_2;
w->mouse->state |= BROWSER_MOUSE_CLICK_2;
@@ -759,7 +770,9 @@
w->mouse->state &= ~BROWSER_MOUSE_MOD_1;
if (((w->mouse->state & BROWSER_MOUSE_MOD_2) != 0) && !ctrl)
w->mouse->state &= ~BROWSER_MOUSE_MOD_2;
-
+ if (((w->mouse->state & BROWSER_MOUSE_MOD_3) != 0) && !alt)
+ w->mouse->state &= ~BROWSER_MOUSE_MOD_3;
+
if ((w->mouse->state & BROWSER_MOUSE_CLICK_2) != 0)
browser_window_mouse_click(w->bw, w->mouse->state,
(x + w->scrollx) / w->bw->scale,
@@ -1884,9 +1897,6 @@
void gui_window_update_box(struct gui_window *w,
const union content_msg_data *data)
{
- LOG(("redraw %p from %.1f,%.1f w=%.1f,h=%.1f", w, data->redraw.x,
- data->redraw.y, data->redraw.width,
- data->redraw.height));
if (w == NULL)
return;
w->redraw.left = (long)data->redraw.x;