OSDN Git Service

ウィンドウの位置を復元する条件を厳しくする
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Fri, 20 Oct 2017 14:16:33 +0000 (23:16 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Fri, 20 Oct 2017 14:16:33 +0000 (23:16 +0900)
今はウィンドウがほんの少しでも見えていれば復元してしまうが、それでは位置
を変えることすらできないので、タイトルバーが見えないときは復元しない

KancolleSniffer/ListForm.cs
KancolleSniffer/MainForm.cs

index 757ac1e..c27c6b8 100644 (file)
@@ -153,7 +153,7 @@ namespace KancolleSniffer
             if (config.Location.X == int.MinValue)\r
                 return;\r
             var bounds = new Rectangle(config.Location, config.Size);\r
-            if (MainForm.IsVisibleOnAnyScreen(bounds))\r
+            if (MainForm.IsTitleBarOnAnyScreen(bounds.Location))\r
                 Location = bounds.Location;\r
             Height = bounds.Height;\r
         }\r
index 2b74045..ebf9e61 100644 (file)
@@ -253,9 +253,7 @@ namespace KancolleSniffer
         {\r
             if (_config.Location.X == int.MinValue)\r
                 return;\r
-            var newBounds = Bounds;\r
-            newBounds.Location = _config.Location;\r
-            if (IsVisibleOnAnyScreen(newBounds))\r
+            if (IsTitleBarOnAnyScreen(_config.Location))\r
                 Location = _config.Location;\r
         }\r
 \r
@@ -290,9 +288,12 @@ namespace KancolleSniffer
             _sniffer.LogOutputDir = _config.Log.OutputDir;\r
         }\r
 \r
-        public static bool IsVisibleOnAnyScreen(Rectangle rect)\r
+        public static bool IsTitleBarOnAnyScreen(Point location)\r
         {\r
-            return Screen.AllScreens.Any(screen => screen.WorkingArea.IntersectsWith(rect));\r
+            var rect = new Rectangle(\r
+                new Point(location.X + SystemInformation.IconSize.Width + SystemInformation.HorizontalFocusThickness,\r
+                    location.Y), new Size(60, SystemInformation.CaptionHeight));\r
+            return Screen.AllScreens.Any(screen => screen.WorkingArea.Contains(rect));\r
         }\r
 \r
         private void timerMain_Tick(object sender, EventArgs e)\r