make reported frame extents include border width

This commit is contained in:
Mark Tiefenbruck 2008-01-01 17:32:10 -08:00
parent 7588fc10a6
commit 2f9f29df22

View file

@ -810,14 +810,14 @@ bool Ewmh::checkClientMessage(const XClientMessageEvent &ce,
if (!screen) if (!screen)
return true; return true;
FbWinFrameTheme &theme = screen->winFrameTheme(); FbWinFrameTheme &theme = screen->winFrameTheme();
unsigned int bw = theme.border(true).width();
long title_h = theme.titleHeight() || long title_h = theme.titleHeight() ||
theme.font().height() + 2*theme.bevelWidth() + 2; theme.font().height() + 2*theme.bevelWidth() + 2 + 2*bw;
title_h += theme.border(true).width(); long handle_h = theme.handleWidth() + 2*bw;
long handle_h = theme.handleWidth() + theme.border(true).width();
long extents[4]; long extents[4];
// our frames currently don't protrude from left/right // our frames currently don't protrude from left/right
extents[0] = 0; extents[0] = bw;
extents[1] = 0; extents[1] = bw;
extents[2] = title_h; extents[2] = title_h;
extents[3] = handle_h; extents[3] = handle_h;
@ -1195,16 +1195,18 @@ void Ewmh::updateFrameExtents(FluxboxWindow &win) {
protrudes from the client window, on left, right, top, bottom protrudes from the client window, on left, right, top, bottom
(it is independent of window position). (it is independent of window position).
*/ */
long extents[4];
// our frames currently don't protrude from left/right
extents[0] = 0;
extents[1] = 0;
extents[2] = win.frame().titlebarHeight();
extents[3] = win.frame().handleHeight();
FluxboxWindow::ClientList::iterator it = win.clientList().begin(); FluxboxWindow::ClientList::iterator it = win.clientList().begin();
FluxboxWindow::ClientList::iterator it_end = win.clientList().end(); FluxboxWindow::ClientList::iterator it_end = win.clientList().end();
for (; it != it_end; ++it) { for (; it != it_end; ++it) {
long extents[4];
// our frames currently don't protrude from left/right
int bw = win.frame().window().borderWidth() - (*it)->old_bw;
extents[0] = bw;
extents[1] = bw;
extents[2] = win.frame().titlebarHeight() + bw;
extents[3] = win.frame().handleHeight() + bw;
(*it)->changeProperty(m_net_frame_extents, (*it)->changeProperty(m_net_frame_extents,
XA_CARDINAL, 32, PropModeReplace, XA_CARDINAL, 32, PropModeReplace,
(unsigned char *)extents, 4); (unsigned char *)extents, 4);