OSDN Git Service

・ブラウザでショートカットが効かなくなってしまったバグを修正。
authoryoffy <yoffy>
Sun, 11 Apr 2004 19:00:56 +0000 (19:00 +0000)
committeryoffy <yoffy>
Sun, 11 Apr 2004 19:00:56 +0000 (19:00 +0000)
Giko.pas
gikoNavi.res

index bc4aa18..325e77f 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·
-               procedure BrowserKeydown(Sender: TObject; Key: Word; State:TShiftState);
+               function BrowserKeydown(Sender: TObject; Key: Word; State:TShiftState) : Boolean;
 
        protected
                procedure CreateParams(var Params: TCreateParams); override;
@@ -9528,27 +9528,40 @@ 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·
-procedure TGikoForm.BrowserKeydown(Sender: TObject; Key: Word; State:TShiftState);
+function TGikoForm.BrowserKeydown(Sender: TObject; Key: Word; State:TShiftState) : Boolean;
 begin
 
-       if Key = VK_BACK then
+       if Key = VK_BACK then begin
                UpBoardAction.Execute;
+               Result := True;
+       end else begin
+               Result := (Key in [VK_ESCAPE..VK_HELP]);
+       end;
 
 end;
 
 // \83M\83R\83i\83r\82Ì\83\81\83b\83Z\81[\83W\83\8b\81[\83v\82ð\89¡\8eæ\82è\82µ\82Ü\82·
 procedure TGikoForm.HandleAppMessage(var Msg: TMsg; var Handled: Boolean);
 var
-       key : Word;
+       key                             : Word;
+       iOIPAO          : IOleInPlaceActiveObject;
+       Dispatch        : IDispatch;
 begin
 
        case Msg.message of
-       WM_KEYFIRST..WM_KEYLAST:
+       WM_KEYDOWN:
                if IsDialogMessage( Browser.Handle, Msg ) then begin
-                       Handled := True;
                        key := Msg.wParam;
-                       BrowserKeyDown( nil, key, KeyDataToShiftState( Msg.lParam ) );
+                       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;
                end;
        WM_XBUTTONDOWN:
                case Msg.wParam shr 16 of
index b5ded60..415fb2f 100644 (file)
Binary files a/gikoNavi.res and b/gikoNavi.res differ