diff options
-rw-r--r-- | src/Ewmh.cc | 24 | ||||
-rw-r--r-- | src/FbTk/FbWindow.cc | 7 | ||||
-rw-r--r-- | src/FbTk/FbWindow.hh | 3 |
3 files changed, 18 insertions, 16 deletions
diff --git a/src/Ewmh.cc b/src/Ewmh.cc index c1f9adc..dcd9c18 100644 --- a/src/Ewmh.cc +++ b/src/Ewmh.cc | |||
@@ -977,14 +977,14 @@ bool Ewmh::checkClientMessage(const XClientMessageEvent &ce, | |||
977 | if (!screen) | 977 | if (!screen) |
978 | return true; | 978 | return true; |
979 | FbWinFrameTheme &theme = screen->winFrameTheme(); | 979 | FbWinFrameTheme &theme = screen->winFrameTheme(); |
980 | unsigned int bw = theme.border(true).width(); | ||
980 | long title_h = theme.titleHeight() || | 981 | long title_h = theme.titleHeight() || |
981 | theme.font().height() + 2*theme.bevelWidth() + 2; | 982 | theme.font().height() + 2*theme.bevelWidth() + 2 + 2*bw; |
982 | title_h += theme.border(true).width(); | 983 | long handle_h = theme.handleWidth() + 2*bw; |
983 | long handle_h = theme.handleWidth() + theme.border(true).width(); | ||
984 | long extents[4]; | 984 | long extents[4]; |
985 | // our frames currently don't protrude from left/right | 985 | // our frames currently don't protrude from left/right |
986 | extents[0] = 0; | 986 | extents[0] = bw; |
987 | extents[1] = 0; | 987 | extents[1] = bw; |
988 | extents[2] = title_h; | 988 | extents[2] = title_h; |
989 | extents[3] = handle_h; | 989 | extents[3] = handle_h; |
990 | 990 | ||
@@ -1281,16 +1281,18 @@ void Ewmh::updateFrameExtents(FluxboxWindow &win) { | |||
1281 | protrudes from the client window, on left, right, top, bottom | 1281 | protrudes from the client window, on left, right, top, bottom |
1282 | (it is independent of window position). | 1282 | (it is independent of window position). |
1283 | */ | 1283 | */ |
1284 | long extents[4]; | ||
1285 | // our frames currently don't protrude from left/right | ||
1286 | extents[0] = 0; | ||
1287 | extents[1] = 0; | ||
1288 | extents[2] = win.frame().titlebarHeight(); | ||
1289 | extents[3] = win.frame().handleHeight(); | ||
1290 | 1284 | ||
1291 | FluxboxWindow::ClientList::iterator it = win.clientList().begin(); | 1285 | FluxboxWindow::ClientList::iterator it = win.clientList().begin(); |
1292 | FluxboxWindow::ClientList::iterator it_end = win.clientList().end(); | 1286 | FluxboxWindow::ClientList::iterator it_end = win.clientList().end(); |
1293 | for (; it != it_end; ++it) { | 1287 | for (; it != it_end; ++it) { |
1288 | long extents[4]; | ||
1289 | // our frames currently don't protrude from left/right | ||
1290 | int bw = win.frame().window().borderWidth() - (*it)->old_bw; | ||
1291 | extents[0] = bw; | ||
1292 | extents[1] = bw; | ||
1293 | extents[2] = win.frame().titlebarHeight() + bw; | ||
1294 | extents[3] = win.frame().handleHeight() + bw; | ||
1295 | |||
1294 | (*it)->changeProperty(m_net->frame_extents, | 1296 | (*it)->changeProperty(m_net->frame_extents, |
1295 | XA_CARDINAL, 32, PropModeReplace, | 1297 | XA_CARDINAL, 32, PropModeReplace, |
1296 | (unsigned char *)extents, 4); | 1298 | (unsigned char *)extents, 4); |
diff --git a/src/FbTk/FbWindow.cc b/src/FbTk/FbWindow.cc index 12492d9..12b16d9 100644 --- a/src/FbTk/FbWindow.cc +++ b/src/FbTk/FbWindow.cc | |||
@@ -633,7 +633,8 @@ void FbWindow::create(Window parent, int x, int y, | |||
633 | 633 | ||
634 | 634 | ||
635 | void FbWindow::sendConfigureNotify(int x, int y, | 635 | void FbWindow::sendConfigureNotify(int x, int y, |
636 | unsigned int width, unsigned int height) { | 636 | unsigned int width, unsigned int height, |
637 | unsigned int bw) { | ||
637 | Display *disp = FbTk::App::instance()->display(); | 638 | Display *disp = FbTk::App::instance()->display(); |
638 | XEvent event; | 639 | XEvent event; |
639 | event.type = ConfigureNotify; | 640 | event.type = ConfigureNotify; |
@@ -645,9 +646,7 @@ void FbWindow::sendConfigureNotify(int x, int y, | |||
645 | event.xconfigure.y = y; | 646 | event.xconfigure.y = y; |
646 | event.xconfigure.width = width; | 647 | event.xconfigure.width = width; |
647 | event.xconfigure.height = height; | 648 | event.xconfigure.height = height; |
648 | //!! TODO | 649 | event.xconfigure.border_width = bw; |
649 | event.xconfigure.border_width = 1; | ||
650 | //!! TODO | ||
651 | event.xconfigure.above = None; | 650 | event.xconfigure.above = None; |
652 | event.xconfigure.override_redirect = false; | 651 | event.xconfigure.override_redirect = false; |
653 | 652 | ||
diff --git a/src/FbTk/FbWindow.hh b/src/FbTk/FbWindow.hh index b8de60e..e0c4e51 100644 --- a/src/FbTk/FbWindow.hh +++ b/src/FbTk/FbWindow.hh | |||
@@ -195,7 +195,8 @@ public: | |||
195 | void setOpaque(unsigned char alpha); | 195 | void setOpaque(unsigned char alpha); |
196 | 196 | ||
197 | void setRenderer(FbWindowRenderer &renderer) { m_renderer = &renderer; } | 197 | void setRenderer(FbWindowRenderer &renderer) { m_renderer = &renderer; } |
198 | void sendConfigureNotify(int x, int y, unsigned int width, unsigned int height); | 198 | void sendConfigureNotify(int x, int y, unsigned int width, |
199 | unsigned int height, unsigned int bw = 0); | ||
199 | 200 | ||
200 | /// forces full background change, recalcing of alpha values if necessary | 201 | /// forces full background change, recalcing of alpha values if necessary |
201 | void updateBackground(bool only_if_alpha); | 202 | void updateBackground(bool only_if_alpha); |