* BWindow::SendBehind(NULL) will now send the window to back.
* Added shortcuts ctrl-alt-F to get a window to front, and ctrl-alt-b to move it to the back. * Updated the user guide with these shortcuts, and also explained the missing "single click to bring window to front" behaviour. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34108 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -64,6 +64,8 @@
|
||||
|
||||
#define _MINIMIZE_ '_WMZ'
|
||||
#define _ZOOM_ '_WZO'
|
||||
#define _SEND_BEHIND_ '_WSB'
|
||||
#define _SEND_TO_FRONT_ '_WSF'
|
||||
#define _SWITCH_WORKSPACE_ '_SWS'
|
||||
|
||||
|
||||
@@ -594,11 +596,11 @@ BWindow::Minimize(bool minimize)
|
||||
status_t
|
||||
BWindow::SendBehind(const BWindow* window)
|
||||
{
|
||||
if (!window || !Lock())
|
||||
if (!Lock())
|
||||
return B_ERROR;
|
||||
|
||||
fLink->StartMessage(AS_SEND_BEHIND);
|
||||
fLink->Attach<int32>(_get_object_token_(window));
|
||||
fLink->Attach<int32>(window != NULL ? _get_object_token_(window) : -1);
|
||||
fLink->Attach<team_id>(Team());
|
||||
|
||||
status_t status = B_ERROR;
|
||||
@@ -884,6 +886,14 @@ BWindow::DispatchMessage(BMessage* msg, BHandler* target)
|
||||
Zoom();
|
||||
break;
|
||||
|
||||
case _SEND_BEHIND_:
|
||||
SendBehind(NULL);
|
||||
break;
|
||||
|
||||
case _SEND_TO_FRONT_:
|
||||
Activate();
|
||||
break;
|
||||
|
||||
case _SWITCH_WORKSPACE_:
|
||||
{
|
||||
int32 deltaX = 0;
|
||||
@@ -2708,6 +2718,10 @@ BWindow::_InitData(BRect frame, const char* title, window_look look,
|
||||
new BMessage(_ZOOM_), NULL);
|
||||
AddShortcut('H', B_COMMAND_KEY | B_CONTROL_KEY,
|
||||
new BMessage(B_HIDE_APPLICATION), NULL);
|
||||
AddShortcut('F', B_COMMAND_KEY | B_CONTROL_KEY,
|
||||
new BMessage(_SEND_TO_FRONT_), NULL);
|
||||
AddShortcut('B', B_COMMAND_KEY | B_CONTROL_KEY,
|
||||
new BMessage(_SEND_BEHIND_), NULL);
|
||||
|
||||
// Workspace modifier keys
|
||||
BMessage* message;
|
||||
|
||||
@@ -665,13 +665,13 @@ ServerWindow::_DispatchMessage(int32 code, BPrivate::LinkReceiver& link)
|
||||
|
||||
link.Read<int32>(&token);
|
||||
if (link.Read<team_id>(&teamID) == B_OK) {
|
||||
::Window *behindOf = fDesktop->FindWindowByClientToken(token,
|
||||
::Window* behindOf = fDesktop->FindWindowByClientToken(token,
|
||||
teamID);
|
||||
|
||||
DTRACE(("ServerWindow %s: Message AS_SEND_BEHIND %s\n",
|
||||
Title(), behindOf ? behindOf->Title() : "NULL"));
|
||||
Title(), behindOf != NULL ? behindOf->Title() : "NULL"));
|
||||
|
||||
if (behindOf != NULL) {
|
||||
if (behindOf != NULL || token == -1) {
|
||||
fDesktop->SendWindowBehind(fWindow, behindOf);
|
||||
status = B_OK;
|
||||
} else
|
||||
|
||||
Reference in New Issue
Block a user