* extend Haiku specific client window info to include the tab height and border size
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29064 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -34,6 +34,8 @@ struct window_info {
|
|||||||
} _PACKED;
|
} _PACKED;
|
||||||
|
|
||||||
struct client_window_info : window_info {
|
struct client_window_info : window_info {
|
||||||
|
float tab_height;
|
||||||
|
float border_size;
|
||||||
char name[1];
|
char name[1];
|
||||||
} _PACKED;
|
} _PACKED;
|
||||||
|
|
||||||
|
|||||||
@@ -2614,15 +2614,33 @@ Desktop::WriteWindowInfo(int32 serverToken, BPrivate::LinkSender& sender)
|
|||||||
window_info info;
|
window_info info;
|
||||||
window->GetInfo(info);
|
window->GetInfo(info);
|
||||||
|
|
||||||
|
float tabSize = 0.0;
|
||||||
|
float borderSize = 0.0;
|
||||||
|
::Window* tmp = window->Window();
|
||||||
|
if (tmp) {
|
||||||
|
BMessage message;
|
||||||
|
if (tmp->GetDecoratorSettings(&message)) {
|
||||||
|
BRect tabFrame;
|
||||||
|
message.FindRect("tab frame", &tabFrame);
|
||||||
|
tabSize = tabFrame.bottom - tabFrame.top;
|
||||||
|
message.FindFloat("border width", &borderSize);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int32 decoratorInfo = 2 * sizeof(float);
|
||||||
int32 length = window->Title() ? strlen(window->Title()) : 0;
|
int32 length = window->Title() ? strlen(window->Title()) : 0;
|
||||||
|
|
||||||
sender.StartMessage(B_OK);
|
sender.StartMessage(B_OK);
|
||||||
sender.Attach<int32>(sizeof(window_info) + length + 1);
|
sender.Attach<int32>(sizeof(window_info) + decoratorInfo + length + 1);
|
||||||
sender.Attach(&info, sizeof(window_info));
|
sender.Attach(&info, sizeof(window_info));
|
||||||
|
sender.Attach<float>(tabSize);
|
||||||
|
sender.Attach<float>(borderSize);
|
||||||
|
|
||||||
if (length > 0)
|
if (length > 0)
|
||||||
sender.Attach(window->Title(), length + 1);
|
sender.Attach(window->Title(), length + 1);
|
||||||
else
|
else
|
||||||
sender.Attach<char>('\0');
|
sender.Attach<char>('\0');
|
||||||
|
|
||||||
sender.Flush();
|
sender.Flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user