new browser tab has two variants : ^t and ^T

This commit is contained in:
Kang Yu 2024-03-17 21:57:57 -07:00
parent dcc6e7950a
commit e8748f3b39
2 changed files with 65 additions and 8 deletions

View file

@ -57,37 +57,54 @@ namespace PersistentWindows.SystrayShell
private void FormMouseDown(object sender, MouseEventArgs e) private void FormMouseDown(object sender, MouseEventArgs e)
{ {
IntPtr fgwnd = GetForegroundWindow();
User32.SetForegroundWindow(fgwnd);
if (e.Button == MouseButtons.Left) if (e.Button == MouseButtons.Left)
{ {
//page down //page down
SendKeys.Send("{PGDN}");
} }
else if (e.Button == MouseButtons.Right) else if (e.Button == MouseButtons.Right)
{ {
//page up //page up
SendKeys.Send("{PGUP}");
} }
else if (e.Button == MouseButtons.Middle) else if (e.Button == MouseButtons.Middle)
{ {
} }
User32.SetForegroundWindow(Handle);
} }
void FormKeyDown(object sender, KeyEventArgs e) void FormKeyDown(object sender, KeyEventArgs e)
{ {
IntPtr fgwnd = GetForegroundWindow();
User32.SetForegroundWindow(fgwnd);
if (e.KeyCode == Keys.Q) if (e.KeyCode == Keys.Q)
{ {
//kill tab, ctrl + w //kill tab, ctrl + w
SendKeys.Send("^w");
} }
else if (e.KeyCode == Keys.W) else if (e.KeyCode == Keys.W)
{ {
//new tab, ctrl + t //new tab, ctrl + t
if (e.Shift)
SendKeys.Send("^T"); //open last closed tab
else
SendKeys.Send("^t"); //new tab
} }
else if (e.KeyCode == Keys.A) else if (e.KeyCode == Keys.A)
{ {
//prev url //prev url
SendKeys.Send("%{LEFT}");
} }
else if (e.KeyCode == Keys.S) else if (e.KeyCode == Keys.S)
{ {
//next url //next url
SendKeys.Send("%{RIGHT}");
} }
else if (e.KeyCode == Keys.Tab) else if (e.KeyCode == Keys.Tab)
{ {
@ -96,6 +113,8 @@ namespace PersistentWindows.SystrayShell
if (!stay) if (!stay)
User32.ShowWindow(Handle, (int)ShowWindowCommands.Hide); User32.ShowWindow(Handle, (int)ShowWindowCommands.Hide);
} }
User32.SetForegroundWindow(Handle);
} }
public void HotKeyPressed() public void HotKeyPressed()
@ -155,47 +174,80 @@ namespace PersistentWindows.SystrayShell
private void buttonPrevTab_Click(object sender, EventArgs e) private void buttonPrevTab_Click(object sender, EventArgs e)
{ {
IntPtr fgwnd = GetForegroundWindow();
User32.SetForegroundWindow(fgwnd);
SendKeys.Send("^+{TAB}");
User32.SetForegroundWindow(Handle);
} }
private void buttonNextTab_Click(object sender, EventArgs e) private void buttonNextTab_Click(object sender, EventArgs e)
{ {
IntPtr fgwnd = GetForegroundWindow();
User32.SetForegroundWindow(fgwnd);
SendKeys.Send("^{TAB}");
User32.SetForegroundWindow(Handle);
} }
private void buttonPrevUrl_Click(object sender, EventArgs e) private void buttonPrevUrl_Click(object sender, EventArgs e)
{ {
IntPtr fgwnd = GetForegroundWindow();
User32.SetForegroundWindow(fgwnd);
SendKeys.Send("%{LEFT}");
User32.SetForegroundWindow(Handle);
} }
private void buttonNextUrl_Click(object sender, EventArgs e) private void buttonNextUrl_Click(object sender, EventArgs e)
{ {
IntPtr fgwnd = GetForegroundWindow();
User32.SetForegroundWindow(fgwnd);
SendKeys.Send("%{RIGHT}");
User32.SetForegroundWindow(Handle);
} }
private void buttonCloseTab_Click(object sender, EventArgs e) private void buttonCloseTab_Click(object sender, EventArgs e)
{ {
IntPtr fgwnd = GetForegroundWindow();
User32.SetForegroundWindow(fgwnd);
SendKeys.Send("^w");
User32.SetForegroundWindow(Handle);
} }
private void buttonNewTab_Click(object sender, EventArgs e) private void buttonNewTab_Click(object sender, EventArgs e)
{ {
IntPtr fgwnd = GetForegroundWindow();
User32.SetForegroundWindow(fgwnd);
bool shift_key_pressed = (User32.GetKeyState(0x10) & 0x8000) != 0;
if (shift_key_pressed)
SendKeys.Send("^T");
else
SendKeys.Send("^t");
User32.SetForegroundWindow(Handle);
} }
private void buttonHome_Click(object sender, EventArgs e) private void buttonHome_Click(object sender, EventArgs e)
{ {
IntPtr fgwnd = GetForegroundWindow();
User32.SetForegroundWindow(fgwnd);
SendKeys.Send("{HOME}");
User32.SetForegroundWindow(Handle);
} }
private void buttonEnd_Click(object sender, EventArgs e) private void buttonEnd_Click(object sender, EventArgs e)
{ {
IntPtr fgwnd = GetForegroundWindow();
User32.SetForegroundWindow(fgwnd);
SendKeys.Send("{END}");
User32.SetForegroundWindow(Handle);
} }
private void HotKeyWindow_Load(object sender, EventArgs e) private void HotKeyWindow_Load(object sender, EventArgs e)
{ {
Icon = Program.IdleIcon; Icon = Program.IdleIcon;
} }
static IntPtr GetForegroundWindow()
{
return Program.GetForegroundWindow();
}
} }
} }

View file

@ -728,5 +728,10 @@ namespace PersistentWindows.SystrayShell
{ {
Log.Error(format, args); Log.Error(format, args);
} }
public static IntPtr GetForegroundWindow()
{
return pwp.GetForegroundWindow();
}
} }
} }