From: yoffy Date: Mon, 12 Apr 2004 04:46:41 +0000 (+0000) Subject: ・ブラウザにフォーカスがあるとギコナビのショートカットが使えなくなってしまうバグを修正。 X-Git-Tag: v1_64_1_820~1271 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=4d919da8514aed9789d71d55194ecd490111f97d;p=gikonavigoeson%2Fgikonavi.git ・ブラウザにフォーカスがあるとギコナビのショートカットが使えなくなってしまうバグを修正。 --- diff --git a/Giko.pas b/Giko.pas index 45f047b..229b6a8 100644 --- a/Giko.pas +++ b/Giko.pas @@ -987,7 +987,7 @@ type procedure HandleAppMessage(var Msg: TMsg; var Handled: Boolean); // ƒuƒ‰ƒEƒU‚̃L[ƒ_ƒEƒ“ƒCƒxƒ“ƒg // ƒCƒxƒ“ƒg‚ðŽæ‚舵‚Á‚½ê‡‚Í True ‚ð•Ô‚· - function BrowserKeydown(Sender: TObject; Key: Word; State:TShiftState) : Boolean; + function BrowserKeydown(var Msg: TMsg; Key: Word; State:TShiftState) : Boolean; protected procedure CreateParams(var Params: TCreateParams); override; @@ -9529,14 +9529,28 @@ end; // ƒuƒ‰ƒEƒU‚̃L[ƒ_ƒEƒ“ƒCƒxƒ“ƒg // ƒCƒxƒ“ƒg‚ðŽæ‚舵‚Á‚½ê‡‚Í True ‚ð•Ô‚· -function TGikoForm.BrowserKeydown(Sender: TObject; Key: Word; State:TShiftState) : Boolean; +function TGikoForm.BrowserKeydown(var Msg: TMsg; Key: Word; State:TShiftState) : Boolean; +var + iOIPAO : IOleInPlaceActiveObject; + Dispatch : IDispatch; begin if Key = VK_BACK then begin UpBoardAction.Execute; Result := True; + end else if Key in [VK_ESCAPE..VK_HELP] then begin + // \ŽšAPage UpAPage Down “™‚Í Browser ‚ªŸŽè‚Ɏ󂯎æ‚é‚̂ŃCƒxƒ“ƒg‚ðƒJƒbƒg + Result := True; end else begin - Result := (Key in [VK_ESCAPE..VK_HELP]); + // ‚»‚êˆÈŠO‚̃Cƒxƒ“ƒg‚Í Browser ‚É—¬‚· + Dispatch := Browser.Application; + if Dispatch <> nil then + Dispatch.QueryInterface( IOleInPlaceActiveObject, iOIPAO ); + if iOIPAO <> nil then + iOIPAO.TranslateAccelerator( Msg ); + + // ƒMƒRƒiƒr‚ÅŽg‚¤ƒVƒ‡[ƒgƒJƒbƒg‚͎󂯎æ‚肽‚¢‚̂ŃCƒxƒ“ƒg‚̓Jƒbƒg‚µ‚È‚¢ + Result := False; end; end; @@ -9545,24 +9559,13 @@ end; procedure TGikoForm.HandleAppMessage(var Msg: TMsg; var Handled: Boolean); var key : Word; - iOIPAO : IOleInPlaceActiveObject; - Dispatch : IDispatch; begin case Msg.message of WM_KEYDOWN: if IsDialogMessage( Browser.Handle, Msg ) then begin key := Msg.wParam; - Handled := BrowserKeyDown( nil, key, KeyDataToShiftState( Msg.lParam ) ); - if not Handled then begin - Dispatch := Browser.Application; - if Dispatch <> nil then - Dispatch.QueryInterface( IOleInPlaceActiveObject, iOIPAO ); - if iOIPAO <> nil then - iOIPAO.TranslateAccelerator( Msg ); - end; - Msg.wParam := key; - Handled := True; + Handled := BrowserKeyDown( Msg, key, KeyDataToShiftState( Msg.lParam ) ); end; WM_XBUTTONDOWN: case Msg.wParam shr 16 of