OSDN Git Service

外部からのD&DをListViewだけが受け取るように修正。
[gikonavigoeson/gikonavi.git] / ResPopupBrowser.pas
index 11fd7ad..f42e50d 100644 (file)
@@ -29,6 +29,7 @@ type
         function GetTitle(OnlyTitle: Boolean): string;
                function CalcRect(WorkArea: TRect; Scroll: Boolean): TRect;
         function ResPopupBrowserClick(Sender: TObject): WordBool;
+        function ResPopupBrowserDbClick(Sender: TObject): WordBool;
         function GetThread: TThreadItem;
        protected
                procedure CreateParams(var Params: TCreateParams); override;
@@ -150,7 +151,16 @@ begin
 end;
 procedure TResPopupBrowser.Popup;
 begin
-    Write(Self.RawDocument, false);
+    if (GetAsyncKeyState(VK_SHIFT) = Smallint($8001)) then begin
+        // \83V\83t\83g\89\9f\82µ\82Ä\82é\8fê\8d\87\82Í\82»\82Ì\82Ü\82Ü\8fo\82·
+        Write(Self.RawDocument, false);
+    end else begin
+        // éx\82µ\8aG\82ª\8c©\82¦\82é\82æ\82¤\82É\94¼\8ap\83X\83y\81[\83X*2\82ð *2\82É\92u\8a·\82·\82é
+        Write(
+            MojuUtils.CustomStringReplace(
+                Self.RawDocument, '  ', '  '),
+            false);
+    end;
 end;
 procedure TResPopupBrowser.Write(ADocument: String; OnlyTitle: Boolean = False);
 var
@@ -185,7 +195,7 @@ begin
         FDispHtmlDocument := Idispatch(OleVariant(Self.ControlInterface).Document) as DispHTMLDocument;
         FEvent := THTMLDocumentEventSink.Create(Self, FDispHtmlDocument, HTMLDocumentEvents2);
         FEvent.OnClick := ResPopupBrowserClick;
-
+        FEvent.OnDoubleClick := ResPopupBrowserDbClick;
         Self.Visible := True;
         SetWindowPos(Self.Handle, HWND_TOPMOST,
             ARect.Left, ARect.Top,
@@ -443,7 +453,14 @@ begin
     FOleInPlaceActiveObject := Self.ControlInterface as IOleInPlaceActiveObject;
     FOleInPlaceActiveObject.OnFrameWindowActivate(False);
 end;
-
+function TResPopupBrowser.ResPopupBrowserDbClick(Sender: TObject): WordBool;
+begin
+    // \83M\83R\83i\83r\82Ì\83t\83H\81[\83J\83X\82ð\92D\82Á\82Ä\82é\82Ì\82Å\83t\83H\81[\83\80\82É\96³\97\9d\82â\82è\95Ô\82·
+    Blur;
+    // \8e©\95ª\82Å\8e©\95ª\82Í\8fÁ\82¹\82È\82¢\82Ì\82Å\81A\83\81\83b\83Z\81[\83W\8co\97R\82Å\8fÁ\82µ\82Ä\82à\82ç\82¤
+    PostMessage( GikoForm.Handle , USER_RESPOPUPCLEAR, Integer( Self ), 0 );
+    Result := True;
+end;
 initialization
     OleInitialize(nil);