Skybound.Gecko.GeckoWebBrowser.WndProc C# (CSharp) Method

WndProc() protected method

protected WndProc ( Message &m ) : void
m Message
return void
        protected override void WndProc(ref Message m)
        {
            const int WM_GETDLGCODE = 0x87;
            const int DLGC_WANTALLKEYS = 0x4;
            const int WM_MOUSEACTIVATE = 0x21;
            const int MA_ACTIVATE = 0x1;
            const int WM_IME_SETCONTEXT = 0x0281;

            if (!DesignMode)
            {
                switch (m.Msg)
                {
                    case WM_GETDLGCODE:
                        m.Result = (IntPtr)DLGC_WANTALLKEYS;
                        return;
                    case WM_MOUSEACTIVATE:
                        // TODO FIXME: port for Linux
                        if (Xpcom.IsWindows)
                        {
                            m.Result = (IntPtr)MA_ACTIVATE;

                            if (!IsChild(Handle, GetFocus()))
                            {
                                this.Focus();
                            }
                            return;
                        }
                        return;
                    case WM_IME_SETCONTEXT:
                        //Console.WriteLine("WM_IME_SETCONTEXT {0} {1}", m.WParam, m.LParam.ToString("X8"));
                        if (m.WParam == IntPtr.Zero)
                        {
                            // zero
                            WebBrowserFocus.Deactivate();
                        }
                        else
                        {
                            // non-zero (1)
                            WebBrowserFocus.Activate();
                        }
                        return;
                }
            }

            base.WndProc(ref m);
        }