aboutsummaryrefslogtreecommitdiff
path: root/src/Window.cc
diff options
context:
space:
mode:
authorsimonb <simonb>2005-04-10 18:18:14 (GMT)
committersimonb <simonb>2005-04-10 18:18:14 (GMT)
commit88c66f0687d2a9e2018f22407b2587dc4d87d012 (patch)
tree197308ad2426783058f479d12329548c6a8a4374 /src/Window.cc
parent6cf66c66554a20a1c98eddf26af9e35b7c90cbd5 (diff)
downloadfluxbox-88c66f0687d2a9e2018f22407b2587dc4d87d012.zip
fluxbox-88c66f0687d2a9e2018f22407b2587dc4d87d012.tar.bz2
Big changes to how transparency works
Consequently rearrange lots of rendering ops, and strip calls to updateTransparent
Diffstat (limited to 'src/Window.cc')
-rw-r--r--src/Window.cc18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/Window.cc b/src/Window.cc
index e1fea07..1914195 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -1194,7 +1194,6 @@ void FluxboxWindow::reconfigure() {
1194 grabButtons(); 1194 grabButtons();
1195 1195
1196 frame().setDoubleClickTime(Fluxbox::instance()->getDoubleClickInterval()); 1196 frame().setDoubleClickTime(Fluxbox::instance()->getDoubleClickInterval());
1197 frame().setUpdateDelayTime(Fluxbox::instance()->getUpdateDelayTime());
1198 1197
1199 frame().reconfigure(); 1198 frame().reconfigure();
1200 1199
@@ -1210,7 +1209,7 @@ void FluxboxWindow::updateTitleFromClient(WinClient &client) {
1210 if (m_labelbuttons[&client]->text() != client.title()) { 1209 if (m_labelbuttons[&client]->text() != client.title()) {
1211 m_labelbuttons[&client]->setText(client.title()); 1210 m_labelbuttons[&client]->setText(client.title());
1212 m_labelbuttons[&client]->clear(); // redraw text 1211 m_labelbuttons[&client]->clear(); // redraw text
1213 m_labelbuttons[&client]->updateTransparent(); 1212 //m_labelbuttons[&client]->updateTransparent();
1214 } 1213 }
1215} 1214}
1216 1215
@@ -1341,8 +1340,9 @@ void FluxboxWindow::resize(unsigned int width, unsigned int height) {
1341 moveResize(frame().x(), frame().y(), width, height); 1340 moveResize(frame().x(), frame().y(), width, height);
1342} 1341}
1343 1342
1343// send_event is just an override
1344void FluxboxWindow::moveResize(int new_x, int new_y, 1344void FluxboxWindow::moveResize(int new_x, int new_y,
1345 unsigned int new_width, unsigned int new_height, int gravity) { 1345 unsigned int new_width, unsigned int new_height, int gravity, bool send_event) {
1346 1346
1347 // magic to detect if moved during initialisation 1347 // magic to detect if moved during initialisation
1348 if (!isInitialized()) 1348 if (!isInitialized())
@@ -1352,7 +1352,7 @@ void FluxboxWindow::moveResize(int new_x, int new_y,
1352 frame().gravityTranslate(new_x, new_y, gravity, false); 1352 frame().gravityTranslate(new_x, new_y, gravity, false);
1353 } 1353 }
1354 1354
1355 bool send_event = (frame().x() != new_x || frame().y() != new_y); 1355 send_event = send_event || (frame().x() != new_x || frame().y() != new_y);
1356 1356
1357 if (new_width != frame().width() || new_height != frame().height()) { 1357 if (new_width != frame().width() || new_height != frame().height()) {
1358 if ((((signed) frame().width()) + new_x) < 0) 1358 if ((((signed) frame().width()) + new_x) < 0)
@@ -1368,7 +1368,6 @@ void FluxboxWindow::moveResize(int new_x, int new_y,
1368 frame().moveResize(new_x, new_y, new_width, new_height); 1368 frame().moveResize(new_x, new_y, new_width, new_height);
1369 setFocusFlag(focused); 1369 setFocusFlag(focused);
1370 1370
1371
1372 shaded = false; 1371 shaded = false;
1373 send_event = true; 1372 send_event = true;
1374 } else if (send_event) 1373 } else if (send_event)
@@ -2848,7 +2847,9 @@ void FluxboxWindow::motionNotifyEvent(XMotionEvent &me) {
2848 m_last_move_x = dx; 2847 m_last_move_x = dx;
2849 m_last_move_y = dy; 2848 m_last_move_y = dy;
2850 } else { 2849 } else {
2851 moveResize(dx, dy, frame().width(), frame().height()); 2850 //moveResize(dx, dy, frame().width(), frame().height());
2851 // need to move the base window without interfering with transparency
2852 frame().window().moveResize(dx, dy, frame().width(), frame().height());
2852 } 2853 }
2853 2854
2854 screen().showPosition(dx, dy); 2855 screen().showPosition(dx, dy);
@@ -3216,7 +3217,6 @@ void FluxboxWindow::stopMoving(bool interrupted) {
3216 3217
3217 fluxbox->maskWindowEvents(0, 0); 3218 fluxbox->maskWindowEvents(0, 0);
3218 3219
3219
3220 if (! screen().doOpaqueMove()) { 3220 if (! screen().doOpaqueMove()) {
3221 parent().drawRectangle(screen().rootTheme().opGC(), 3221 parent().drawRectangle(screen().rootTheme().opGC(),
3222 m_last_move_x, m_last_move_y, 3222 m_last_move_x, m_last_move_y,
@@ -3231,8 +3231,8 @@ void FluxboxWindow::stopMoving(bool interrupted) {
3231 } 3231 }
3232 fluxbox->ungrab(); 3232 fluxbox->ungrab();
3233 } else if (!interrupted) { 3233 } else if (!interrupted) {
3234 moveResize(frame().x(), frame().y(), frame().width(), frame().height()); 3234 moveResize(frame().x(), frame().y(), frame().width(), frame().height(), ForgetGravity, true);
3235 sendConfigureNotify(); 3235 frame().notifyMoved(true);
3236 } 3236 }
3237 3237
3238 3238