mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 09:58:01 +00:00
Jacob's patch to make full-screen mode available even when Alt-Enter
isn't configured to do it: we now have a sysmenu option for it. In addition, there's a special case such that clicking the top left pixel on the screen in full-screen mode brings up the sysmenu (so you can still get at the sysmenu in FS mode without Alt-anything configured to bring it up and without ghastly fiddling with the Windows key). Also Change Settings while in full-screen mode now adds/removes the scrollbar in response to scrollbar_in_fullscreen rather than scrollbar (oops). [originally from svn r1410]
This commit is contained in:
parent
774a173451
commit
92eb0710e3
34
window.c
34
window.c
@ -582,7 +582,8 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show)
|
|||||||
AppendMenu(m, MF_ENABLED, IDM_CLRSB, "C&lear Scrollback");
|
AppendMenu(m, MF_ENABLED, IDM_CLRSB, "C&lear Scrollback");
|
||||||
AppendMenu(m, MF_ENABLED, IDM_RESET, "Rese&t Terminal");
|
AppendMenu(m, MF_ENABLED, IDM_RESET, "Rese&t Terminal");
|
||||||
AppendMenu(m, MF_SEPARATOR, 0, 0);
|
AppendMenu(m, MF_SEPARATOR, 0, 0);
|
||||||
AppendMenu(m, MF_ENABLED, IDM_FULLSCREEN, "&Full Screen");
|
AppendMenu(m, (cfg.resize_action == RESIZE_DISABLED) ?
|
||||||
|
MF_GRAYED : MF_ENABLED, IDM_FULLSCREEN, "&Full Screen");
|
||||||
AppendMenu(m, MF_SEPARATOR, 0, 0);
|
AppendMenu(m, MF_SEPARATOR, 0, 0);
|
||||||
AppendMenu(m, MF_ENABLED, IDM_ABOUT, "&About PuTTY");
|
AppendMenu(m, MF_ENABLED, IDM_ABOUT, "&About PuTTY");
|
||||||
}
|
}
|
||||||
@ -1531,9 +1532,17 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message,
|
|||||||
if (!do_reconfig(hwnd))
|
if (!do_reconfig(hwnd))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* If user forcibly disables full-screen, gracefully unzoom */
|
{
|
||||||
if (full_screen && !cfg.fullscreenonaltenter) {
|
/* Disable full-screen if resizing forbidden */
|
||||||
flip_full_screen();
|
HMENU m = GetSystemMenu (hwnd, FALSE);
|
||||||
|
EnableMenuItem(m, IDM_FULLSCREEN, MF_BYCOMMAND |
|
||||||
|
(cfg.resize_action == RESIZE_DISABLED)
|
||||||
|
? MF_GRAYED : MF_ENABLED);
|
||||||
|
/* Gracefully unzoom if necessary */
|
||||||
|
if (full_screen &&
|
||||||
|
(cfg.resize_action == RESIZE_DISABLED)) {
|
||||||
|
flip_full_screen();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strcmp(prev_cfg.logfilename, cfg.logfilename) ||
|
if (strcmp(prev_cfg.logfilename, cfg.logfilename) ||
|
||||||
@ -1586,7 +1595,8 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message,
|
|||||||
nexflag &= ~(WS_EX_CLIENTEDGE);
|
nexflag &= ~(WS_EX_CLIENTEDGE);
|
||||||
|
|
||||||
nflg = flag;
|
nflg = flag;
|
||||||
if (cfg.scrollbar)
|
if (full_screen ?
|
||||||
|
cfg.scrollbar_in_fullscreen : cfg.scrollbar)
|
||||||
nflg |= WS_VSCROLL;
|
nflg |= WS_VSCROLL;
|
||||||
else
|
else
|
||||||
nflg &= ~WS_VSCROLL;
|
nflg &= ~WS_VSCROLL;
|
||||||
@ -1815,6 +1825,17 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message,
|
|||||||
button = press = 0; /* shouldn't happen */
|
button = press = 0; /* shouldn't happen */
|
||||||
}
|
}
|
||||||
show_mouseptr(1);
|
show_mouseptr(1);
|
||||||
|
/*
|
||||||
|
* Special case: in full-screen mode, if the left
|
||||||
|
* button is clicked in the very top left corner of the
|
||||||
|
* window, we put up the System menu instead of doing
|
||||||
|
* selection.
|
||||||
|
*/
|
||||||
|
if (full_screen && press && button == MBT_LEFT &&
|
||||||
|
X_POS(lParam) == 0 && Y_POS(lParam) == 0) {
|
||||||
|
SendMessage(hwnd, WM_SYSCOMMAND, SC_MOUSEMENU, 0);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if (press) {
|
if (press) {
|
||||||
click(button,
|
click(button,
|
||||||
TO_CHR_X(X_POS(lParam)), TO_CHR_Y(Y_POS(lParam)),
|
TO_CHR_X(X_POS(lParam)), TO_CHR_Y(Y_POS(lParam)),
|
||||||
@ -2987,7 +3008,8 @@ static int TranslateKey(UINT message, WPARAM wParam, LPARAM lParam,
|
|||||||
SendMessage(hwnd, WM_SYSCOMMAND, SC_KEYMENU, 0);
|
SendMessage(hwnd, WM_SYSCOMMAND, SC_KEYMENU, 0);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if (left_alt && wParam == VK_RETURN && cfg.fullscreenonaltenter) {
|
if (left_alt && wParam == VK_RETURN && cfg.fullscreenonaltenter &&
|
||||||
|
(cfg.resize_action != RESIZE_DISABLED)) {
|
||||||
flip_full_screen();
|
flip_full_screen();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user