diff options
Diffstat (limited to 'src/Ewmh.cc')
-rw-r--r-- | src/Ewmh.cc | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/Ewmh.cc b/src/Ewmh.cc index 257b432..067b445 100644 --- a/src/Ewmh.cc +++ b/src/Ewmh.cc | |||
@@ -810,14 +810,14 @@ bool Ewmh::checkClientMessage(const XClientMessageEvent &ce, | |||
810 | if (!screen) | 810 | if (!screen) |
811 | return true; | 811 | return true; |
812 | FbWinFrameTheme &theme = screen->winFrameTheme(); | 812 | FbWinFrameTheme &theme = screen->winFrameTheme(); |
813 | unsigned int bw = theme.border(true).width(); | ||
813 | long title_h = theme.titleHeight() || | 814 | long title_h = theme.titleHeight() || |
814 | theme.font().height() + 2*theme.bevelWidth() + 2; | 815 | theme.font().height() + 2*theme.bevelWidth() + 2 + 2*bw; |
815 | title_h += theme.border(true).width(); | 816 | long handle_h = theme.handleWidth() + 2*bw; |
816 | long handle_h = theme.handleWidth() + theme.border(true).width(); | ||
817 | long extents[4]; | 817 | long extents[4]; |
818 | // our frames currently don't protrude from left/right | 818 | // our frames currently don't protrude from left/right |
819 | extents[0] = 0; | 819 | extents[0] = bw; |
820 | extents[1] = 0; | 820 | extents[1] = bw; |
821 | extents[2] = title_h; | 821 | extents[2] = title_h; |
822 | extents[3] = handle_h; | 822 | extents[3] = handle_h; |
823 | 823 | ||
@@ -1195,16 +1195,18 @@ void Ewmh::updateFrameExtents(FluxboxWindow &win) { | |||
1195 | protrudes from the client window, on left, right, top, bottom | 1195 | protrudes from the client window, on left, right, top, bottom |
1196 | (it is independent of window position). | 1196 | (it is independent of window position). |
1197 | */ | 1197 | */ |
1198 | long extents[4]; | ||
1199 | // our frames currently don't protrude from left/right | ||
1200 | extents[0] = 0; | ||
1201 | extents[1] = 0; | ||
1202 | extents[2] = win.frame().titlebarHeight(); | ||
1203 | extents[3] = win.frame().handleHeight(); | ||
1204 | 1198 | ||
1205 | FluxboxWindow::ClientList::iterator it = win.clientList().begin(); | 1199 | FluxboxWindow::ClientList::iterator it = win.clientList().begin(); |
1206 | FluxboxWindow::ClientList::iterator it_end = win.clientList().end(); | 1200 | FluxboxWindow::ClientList::iterator it_end = win.clientList().end(); |
1207 | for (; it != it_end; ++it) { | 1201 | for (; it != it_end; ++it) { |
1202 | long extents[4]; | ||
1203 | // our frames currently don't protrude from left/right | ||
1204 | int bw = win.frame().window().borderWidth() - (*it)->old_bw; | ||
1205 | extents[0] = bw; | ||
1206 | extents[1] = bw; | ||
1207 | extents[2] = win.frame().titlebarHeight() + bw; | ||
1208 | extents[3] = win.frame().handleHeight() + bw; | ||
1209 | |||
1208 | (*it)->changeProperty(m_net_frame_extents, | 1210 | (*it)->changeProperty(m_net_frame_extents, |
1209 | XA_CARDINAL, 32, PropModeReplace, | 1211 | XA_CARDINAL, 32, PropModeReplace, |
1210 | (unsigned char *)extents, 4); | 1212 | (unsigned char *)extents, 4); |