diff options
author | Yaniv Kamay <ykamay@redhat.com> | 2009-11-16 17:50:16 +0200 |
---|---|---|
committer | Yaniv Kamay <ykamay@redhat.com> | 2009-11-30 18:03:35 +0200 |
commit | 3b51087b3656b111886c7397d0ddd499a96f9e2d (patch) | |
tree | 21cdb7b0dc282062bd811f65ee295a7074b58275 /client/x11/red_window.cpp | |
parent | a70110c4e50aad99de7a844bb78eb868768e7841 (diff) | |
download | spice-3b51087b3656b111886c7397d0ddd499a96f9e2d.tar.gz spice-3b51087b3656b111886c7397d0ddd499a96f9e2d.tar.xz spice-3b51087b3656b111886c7397d0ddd499a96f9e2d.zip |
client: interactive screen layer
Diffstat (limited to 'client/x11/red_window.cpp')
-rw-r--r-- | client/x11/red_window.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/client/x11/red_window.cpp b/client/x11/red_window.cpp index 2b4228a2..1d989b7c 100644 --- a/client/x11/red_window.cpp +++ b/client/x11/red_window.cpp @@ -726,9 +726,9 @@ void RedWindow_p::win_proc(XEvent& event) if (event.xmotion.x >= 0 && event.xmotion.y >= 0 && event.xmotion.x < size.x && event.xmotion.y < size.y) { Point origin = red_window->get_origin(); - red_window->get_listener().on_mouse_motion(event.xmotion.x - origin.x, - event.xmotion.y - origin.y, - to_red_buttons_state(event.xmotion.state)); + red_window->get_listener().on_pointer_motion(event.xmotion.x - origin.x, + event.xmotion.y - origin.y, + to_red_buttons_state(event.xmotion.state)); } break; } @@ -758,7 +758,7 @@ void RedWindow_p::win_proc(XEvent& event) DBG(0, "ButtonPress: invalid button %u", event.xbutton.button); break; } - red_window->get_listener().on_button_press(button, state); + red_window->get_listener().on_mouse_button_press(button, state); break; } case ButtonRelease: { @@ -768,7 +768,7 @@ void RedWindow_p::win_proc(XEvent& event) DBG(0, "ButtonRelease: invalid button %u", event.xbutton.button); break; } - red_window->get_listener().on_button_release(button, state); + red_window->get_listener().on_mouse_button_release(button, state); break; } case Expose: { @@ -843,7 +843,9 @@ void RedWindow_p::win_proc(XEvent& event) break; case EnterNotify: if (!red_window->_ignore_pointer) { - red_window->on_pointer_enter(); + Point origin = red_window->get_origin(); + red_window->on_pointer_enter(event.xcrossing.x - origin.x, event.xcrossing.y - origin.y, + to_red_buttons_state(event.xmotion.state)); } else { red_window->_shadow_pointer_state = true; memcpy(&red_window->_shadow_pointer_event, &event, sizeof(XEvent)); @@ -1943,13 +1945,13 @@ void RedWindow::on_focus_out() XPlatform::on_focus_out(); } -void RedWindow::on_pointer_enter() +void RedWindow::on_pointer_enter(int x, int y, unsigned int buttons_state) { if (_pointer_in_window) { return; } _pointer_in_window = true; - _listener.on_pointer_enter(); + _listener.on_pointer_enter(x, y, buttons_state); if (_focused && _trace_key_interception) { do_start_key_interception(); } |