Skip to content
This repository was archived by the owner on Oct 18, 2021. It is now read-only.

Commit da1252f

Browse files
committed
Fixed #8
1 parent 20c9970 commit da1252f

File tree

6 files changed

+67
-3
lines changed

6 files changed

+67
-3
lines changed

SublimeOverlay/App.config

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@
3131
<setting name="windowControlsOnTheRight" serializeAs="String">
3232
<value>False</value>
3333
</setting>
34+
<setting name="lastWindowSize" serializeAs="String">
35+
<value>400, 300</value>
36+
</setting>
37+
<setting name="lastWindowPosition" serializeAs="String">
38+
<value>20, 20</value>
39+
</setting>
3440
</SublimeOverlay.Properties.Settings>
3541
</userSettings>
3642
</configuration>

SublimeOverlay/MainForm.cs

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public MainForm()
3232
Region = RoundRegion(Width, Height, radius);
3333
settingsWindow = new Settings(this);
3434
this.GotFocus += MainForm_GotFocus;
35-
this.MaximumSize = Screen.PrimaryScreen.WorkingArea.Size;
35+
this.MaximumSize = Screen.FromControl(this).WorkingArea.Size;
3636
}
3737

3838
private bool isWindowActive(IntPtr hWnd)
@@ -115,6 +115,7 @@ private void DockWindow()
115115
ChildTracker.RestoreWindow(pDocked.MainWindowHandle);
116116
HideTitleBar(pDocked.MainWindowHandle);
117117
NativeMethods.SetWindowLong(pDocked.MainWindowHandle, -8 /* OWNER */, (int)container.Handle);
118+
RestorePreviousSize();
118119
FitToWindow();
119120
InvalidateWindow(pDocked.MainWindowHandle);
120121
NativeMethods.SendMessage(pDocked.MainWindowHandle, (uint)0x000F /* WMPAINT */, UIntPtr.Zero, IntPtr.Zero);
@@ -172,6 +173,7 @@ private void MainForm_Load(object sender, EventArgs e)
172173
}
173174
private void editor_Exited(object sender, EventArgs e)
174175
{
176+
MainForm_FormClosed(null, null); // fire the formclosed event
175177
Environment.Exit(0);
176178
}
177179
private void ParseArgs()
@@ -327,14 +329,21 @@ private void Maximize()
327329
}
328330
else
329331
{
330-
Region = RoundRegion(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, 0);
332+
Region = RoundRegion(Screen.FromControl(this).Bounds.Width, Screen.FromControl(this).Bounds.Height, 0);
331333
WindowState = FormWindowState.Maximized;
332334
}
333335
}
334336
private Region RoundRegion(int width, int height, int radius)
335337
{
336338
return System.Drawing.Region.FromHrgn(NativeMethods.CreateRoundRectRgn(0, 0, width, height, radius, radius));
337339
}
340+
private void RestorePreviousSize()
341+
{
342+
Size previousSize = Properties.Settings.Default.lastWindowSize;
343+
Point previousPosition = Properties.Settings.Default.lastWindowPosition;
344+
this.Size = previousSize;
345+
this.Location = previousPosition;
346+
}
338347
private void minimizeButton_Click(object sender, EventArgs e)
339348
{
340349
if (ReverseWindowControls)
@@ -501,11 +510,18 @@ private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
501510
{
502511
try
503512
{
513+
SetRestoreSize();
504514
ChildTracker.Unhook();
505-
pDocked.CloseMainWindow();
506515
}
507516
catch { }
508517
}
518+
519+
private void SetRestoreSize()
520+
{
521+
Properties.Settings.Default.lastWindowSize = Size;
522+
Properties.Settings.Default.lastWindowPosition = Location;
523+
Properties.Settings.Default.Save();
524+
}
509525
private void MainForm_Move(object sender, EventArgs e)
510526
{
511527
if (pDocked != null)

SublimeOverlay/Properties/Settings.Designer.cs

Lines changed: 24 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

SublimeOverlay/Properties/Settings.settings

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,11 @@
2323
<Setting Name="windowControlsOnTheRight" Type="System.Boolean" Scope="User">
2424
<Value Profile="(Default)">False</Value>
2525
</Setting>
26+
<Setting Name="lastWindowSize" Type="System.Drawing.Size" Scope="User">
27+
<Value Profile="(Default)">400, 300</Value>
28+
</Setting>
29+
<Setting Name="lastWindowPosition" Type="System.Drawing.Point" Scope="User">
30+
<Value Profile="(Default)">20, 20</Value>
31+
</Setting>
2632
</Settings>
2733
</SettingsFile>

SublimeOverlay/bin/Release/SublimeOverlay.exe.config

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@
3131
<setting name="windowControlsOnTheRight" serializeAs="String">
3232
<value>False</value>
3333
</setting>
34+
<setting name="lastWindowSize" serializeAs="String">
35+
<value>400, 300</value>
36+
</setting>
37+
<setting name="lastWindowPosition" serializeAs="String">
38+
<value>20, 20</value>
39+
</setting>
3440
</SublimeOverlay.Properties.Settings>
3541
</userSettings>
3642
</configuration>

SublimeOverlay/bin/Release/SublimeOverlay.vshost.exe.config

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,12 @@
3131
<setting name="windowControlsOnTheRight" serializeAs="String">
3232
<value>False</value>
3333
</setting>
34+
<setting name="lastWindowSize" serializeAs="String">
35+
<value>400, 300</value>
36+
</setting>
37+
<setting name="lastWindowPosition" serializeAs="String">
38+
<value>20, 20</value>
39+
</setting>
3440
</SublimeOverlay.Properties.Settings>
3541
</userSettings>
3642
</configuration>

0 commit comments

Comments
 (0)