Esempio n. 1
0
 void _OnGotLostFocus(bool got, _SciTextBox tb)
 {
     if (!_cRegex.Checked)
     {
         return;
     }
     if (got)
     {
         //use timer to avoid temporary focus problems, for example when tabbing quickly or closing active Regex window
         ATimer.After(70, _ => { if (tb.Focused)
                                 {
                                     _ShowRegexInfo(tb, false);
                                 }
                      });
     }
     else
     {
         if (_regexWindow.Window.Visible)
         {
             var c = AWnd.ThisThread.FocusedControl;
             if (c == null || (c != _tFind && c != _tReplace && c != _regexWindow.Window && c.TopLevelControl != _regexWindow.Window))
             {
                 _regexWindow.Hide();
             }
         }
     }
 }
Esempio n. 2
0
    void _ShowRegexInfo(_SciTextBox tb, bool F1)
    {
        if (_regexWindow == null || !_cRegex.Checked)
        {
            return;
        }
        if (_regexWindow.UserClosed)
        {
            if (!F1)
            {
                return;
            }
            _regexWindow.UserClosed = false;
        }

        if (!_regexWindow.Window.IsHandleCreated)
        {
            var r = ((AWnd)this).Rect;
            r.Offset(0, -20);
            _regexWindow.Show(Program.MainForm, r, true);
        }
        else
        {
            _regexWindow.Window.Show();
        }

        _regexWindow.InsertInControl = tb;

        bool replace = tb == _tReplace;
        var  s       = _regexWindow.CurrentTopic;

        if (s == "replace")
        {
            if (!replace)
            {
                _regexWindow.CurrentTopic = _regexTopic;
            }
        }
        else if (replace)
        {
            _regexTopic = s;
            _regexWindow.CurrentTopic = "replace";
        }
    }