Date: prev next · Thread: first prev next last
2016 Archives by date, by thread · List index


On 05/25/2016 09:01 AM, Tor Lillqvist wrote:

        --- a/vcl/opengl/win/gdiimpl.cxx
        +++ b/vcl/opengl/win/gdiimpl.cxx
        @@ -166,6 +166,7 @@ static LRESULT CALLBACK WndProc(HWND hwnd,
        UINT message, WPARAM wParam, LPARAM l
                 case VK_SPACE:
                     break;
                 }
        +        SAL_FALLTHROUGH; //TODO ???
             default:
                 return DefWindowProc(hwnd, message, wParam, lParam);
             }


I did not write this code, but looking at it, it seems fairly obvious
that the fall-through is intentional here. But it is beyond my
understanding why such a temporary window, that is used only for some
milliseconds, and never even displayed, would need to handle the Escape
and Space keys specially.

But it does not handle VK_SPACE specially:

static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)
    {
    case WM_CREATE:
        return 0;
    case WM_CLOSE:
        PostQuitMessage(0);
        return 0;
    case WM_DESTROY:
        return 0;
    case WM_KEYDOWN:
        switch(wParam)
        {
        case VK_ESCAPE:
            PostQuitMessage(0);
            return 0;

        case VK_SPACE:
            break;
        }
        SAL_FALLTHROUGH; //TODO ???
    default:
        return DefWindowProc(hwnd, message, wParam, lParam);
    }
}

In the inner switch (in case WM_KEYDOWN), VK_SPACE and the (implicit) default both fall through to the outer switch's default case, which looks rather dubious to me (why mention VK_SPACE explicitly, then?). The code is like that ever since <https://cgit.freedesktop.org/libreoffice/core/commit/?id=0f6fca34909535b48bad41e73e5d3d0e86c744b9> "add anti-aliasing init"; whose author is in CC now.


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.