OSDN Git Service

・ブラウザにフォーカスがあるとギコナビのショートカットが使えなくなってしまうバグを修正。
authoryoffy <yoffy>
Mon, 12 Apr 2004 04:46:41 +0000 (04:46 +0000)
committeryoffy <yoffy>
Mon, 12 Apr 2004 04:46:41 +0000 (04:46 +0000)
Giko.pas

index 45f047b..229b6a8 100644 (file)
--- a/Giko.pas
+++ b/Giko.pas
@@ -987,7 +987,7 @@ type
                procedure HandleAppMessage(var Msg: TMsg; var Handled: Boolean);
                // \83u\83\89\83E\83U\82Ì\83L\81[\83_\83E\83\93\83C\83x\83\93\83g
                // \83C\83x\83\93\83g\82ð\8eæ\82è\88µ\82Á\82½\8fê\8d\87\82Í True \82ð\95Ô\82·
-               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;
 
 // \83u\83\89\83E\83U\82Ì\83L\81[\83_\83E\83\93\83C\83x\83\93\83g
 // \83C\83x\83\93\83g\82ð\8eæ\82è\88µ\82Á\82½\8fê\8d\87\82Í True \82ð\95Ô\82·
-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
+               // \8f\\8e\9a\81APage Up\81APage Down \93\99\82Í Browser \82ª\8f\9f\8eè\82É\8eó\82¯\8eæ\82é\82Ì\82Å\83C\83x\83\93\83g\82ð\83J\83b\83g
+               Result := True;
        end else begin
-               Result := (Key in [VK_ESCAPE..VK_HELP]);
+               // \82»\82ê\88È\8aO\82Ì\83C\83x\83\93\83g\82Í Browser \82É\97¬\82·
+               Dispatch := Browser.Application;
+               if Dispatch <> nil then
+                       Dispatch.QueryInterface( IOleInPlaceActiveObject, iOIPAO );
+               if iOIPAO <> nil then
+                       iOIPAO.TranslateAccelerator( Msg );
+
+               // \83M\83R\83i\83r\82Å\8eg\82¤\83V\83\87\81[\83g\83J\83b\83g\82Í\8eó\82¯\8eæ\82è\82½\82¢\82Ì\82Å\83C\83x\83\93\83g\82Í\83J\83b\83g\82µ\82È\82¢
+               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