X-Git-Url: https://git.ucc.asn.au/?p=tpg%2Facess2.git;a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin4_src%2FServer%2Fcompositor.cpp;h=cf8192ec2b6beac1440071976cad3c9db7962d96;hp=da924e8db9d899e58b442dbc8254f485e78bc7b1;hb=6fbf6b93bec9b8b5bd6d7c683eefb0ebed8dff77;hpb=b5f8fa2dea9d6a67ac5c8a3a442ee4570deaa56c diff --git a/Usermode/Applications/axwin4_src/Server/compositor.cpp b/Usermode/Applications/axwin4_src/Server/compositor.cpp index da924e8d..cf8192ec 100644 --- a/Usermode/Applications/axwin4_src/Server/compositor.cpp +++ b/Usermode/Applications/axwin4_src/Server/compositor.cpp @@ -16,6 +16,7 @@ namespace AxWin { CCompositor::CCompositor(CVideo& video): // TODO: Support multiple screens m_video(video), + m_focussed_window(nullptr), m_windowIDBuffer(video.width(), video.height()) { // @@ -54,7 +55,7 @@ void CCompositor::Redraw() { // Redraw the screen and clear damage rects if( m_damageRects.empty() ) { - _SysDebug("- No damaged regions"); + //_SysDebug("- No damaged regions"); return ; } @@ -112,7 +113,8 @@ void CCompositor::MouseMove(unsigned int Cursor, unsigned int X, unsigned int Y, CWindow *dstwin = getWindowForCoord(X, Y); if( dstwin ) { - // TODO: Pass event on to window + // Pass event on to window + dstwin->MouseMove(X, Y); } } @@ -125,13 +127,17 @@ void CCompositor::MouseButton(unsigned int Cursor, unsigned int X, unsigned int { // 1. Give focus and bring to front // 2. Send event - // TODO: Pass event on to window + dstwin->MouseButton(Button, X, Y, Press); } } void CCompositor::KeyState(unsigned int KeyboardID, uint32_t KeySym, bool Press, uint32_t Codepoint) { _SysDebug("KeyState(%i, 0x%x, %b, 0x%x)", KeyboardID, KeySym, Press, Codepoint); + if( m_focussed_window ) + { + m_focussed_window->KeyEvent(KeySym, "", Press); + } } CWindow* CCompositor::getWindowForCoord(unsigned int X, unsigned int Y)