From 52340160a6cbbfea2c28d7890fc633f733761e6e Mon Sep 17 00:00:00 2001 From: Kimura Youichi Date: Fri, 6 Mar 2015 21:00:45 +0900 Subject: [PATCH] =?utf8?q?PostBrowser=E3=81=AE=E6=A8=99=E6=BA=96=E3=81=AE?= =?utf8?q?=E3=82=B7=E3=83=A7=E3=83=BC=E3=83=88=E3=82=AB=E3=83=83=E3=83=88?= =?utf8?q?=E3=82=AD=E3=83=BC=E3=81=AE=E5=8B=95=E4=BD=9C=E3=82=92=E4=B8=80?= =?utf8?q?=E9=83=A8=E6=9C=89=E5=8A=B9=E3=81=AB=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 従来 WebBrowserShortcutsEnabled を false にした上で Ctrl+C など一部のショートカットキーの動作を CommonKeyDown メソッドで再現していたが、 WebBrowserShortcutsEnabled を true にしたまま特定のショートカットキー以外の入力を無効にすることで標準の挙動を生かした。 これにより絵文字を含むテキストが正常にコピーされない問題が回避できる。 --- OpenTween/Tween.Designer.cs | 1 - OpenTween/Tween.cs | 36 ++++++++++++++++++------------------ 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/OpenTween/Tween.Designer.cs b/OpenTween/Tween.Designer.cs index 2b0aa993..5ede193d 100644 --- a/OpenTween/Tween.Designer.cs +++ b/OpenTween/Tween.Designer.cs @@ -830,7 +830,6 @@ this.PostBrowser.IsWebBrowserContextMenuEnabled = false; this.PostBrowser.Name = "PostBrowser"; this.PostBrowser.TabStop = false; - this.PostBrowser.WebBrowserShortcutsEnabled = false; this.PostBrowser.Navigated += new System.Windows.Forms.WebBrowserNavigatedEventHandler(this.PostBrowser_Navigated); this.PostBrowser.Navigating += new System.Windows.Forms.WebBrowserNavigatingEventHandler(this.PostBrowser_Navigating); this.PostBrowser.StatusTextChanged += new System.EventHandler(this.PostBrowser_StatusTextChanged); diff --git a/OpenTween/Tween.cs b/OpenTween/Tween.cs index 572cafc6..1e06c6cf 100644 --- a/OpenTween/Tween.cs +++ b/OpenTween/Tween.cs @@ -6847,24 +6847,6 @@ namespace OpenTween //フォーカスPostBrowserもしくは関係なし switch (KeyCode) { - case Keys.A: - PostBrowser.Document.ExecCommand("SelectAll", false, null); - return true; - case Keys.C: - case Keys.Insert: - string _selText = WebBrowser_GetSelectionText(ref PostBrowser); - if (!string.IsNullOrEmpty(_selText)) - { - try - { - Clipboard.SetDataObject(_selText, false, 5, 100); - } - catch (Exception ex) - { - MessageBox.Show(ex.Message); - } - } - return true; case Keys.Y: MultiLineMenuItem.Checked = !MultiLineMenuItem.Checked; MultiLineMenuItem_Click(null, null); @@ -8218,6 +8200,24 @@ namespace OpenTween if (KeyRes) { e.IsInputKey = true; + return; + } + + if (Enum.IsDefined(typeof(Shortcut), (Shortcut)e.KeyData)) + { + var shortcut = (Shortcut)e.KeyData; + switch (shortcut) + { + case Shortcut.CtrlA: + case Shortcut.CtrlC: + case Shortcut.CtrlIns: + // 既定の動作を有効にする + return; + default: + // その他のショートカットキーは無効にする + e.IsInputKey = true; + return; + } } } public bool TabRename(ref string tabName) -- 2.11.0