From 5cf8a3c9fd5c5e68d44b0a5bc526586009f224a0 Mon Sep 17 00:00:00 2001 From: Matthias Ettrich Date: Mon, 26 Mar 2001 08:10:31 +0000 Subject: [PATCH] some attempts to fix Sun's latest Java, no success so far. Giving up. svn path=/trunk/kdebase/kwin/; revision=88713 --- client.cpp | 27 +++++++++++++++------------ client.h | 6 +++--- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/client.cpp b/client.cpp index cf1b554b5f..9a06a45ad2 100644 --- a/client.cpp +++ b/client.cpp @@ -290,7 +290,7 @@ void WindowWrapper::deferredResize() { XMoveResizeWindow( qt_xdisplay(), win, 0, 0, width(), height() ); - ((Client*)parentWidget())->sendSynteticConfigureNotify(); + ((Client*)parentWidget())->sendSyntheticConfigureNotify(); if ( ((Client*)parentWidget())->shape() ) ((Client*)parentWidget())->updateShape(); QApplication::syncX(); // process our own configure events synchronously. @@ -602,8 +602,6 @@ bool Client::manage( bool isMapped, bool doNotShow, bool isInitial ) if ( ( (xSizeHint.flags & PPosition) && !ignorePPosition ) || (xSizeHint.flags & USPosition) ) { placementDone = TRUE; - if ( resource_name == "AWTapp" ) - geom.moveTopLeft( QPoint(xSizeHint.x, xSizeHint.y) ); if ( windowType() == NET::Normal && !area.contains( geom.topLeft() ) && may_move ) { int tx = geom.x(); int ty = geom.y(); @@ -1007,7 +1005,8 @@ bool Client::configureRequest( XConfigureRequestEvent& e ) if ( isShade() ) setShade( FALSE ); - // compress configure requests + /* + // compress configure requests XEvent otherEvent; while (XCheckTypedWindowEvent (qt_xdisplay(), win, ConfigureRequest, &otherEvent) ) { @@ -1018,10 +1017,11 @@ bool Client::configureRequest( XConfigureRequestEvent& e ) break; } } + */ bool stacking = e.value_mask & CWStackMode; int stack_mode = e.detail; - + if ( e.value_mask & CWBorderWidth ) { // first, get rid of a window border XWindowChanges wc; @@ -1082,7 +1082,7 @@ bool Client::configureRequest( XConfigureRequestEvent& e ) if ( isMaximized() ) { geom_restore.moveTopLeft( np ); } else { - move( np ); + move( np ); } } @@ -1125,7 +1125,8 @@ bool Client::configureRequest( XConfigureRequestEvent& e ) } } - sendSynteticConfigureNotify(); + if ( e.value_mask & (CWX | CWY | CWWidth | CWHeight ) ) + sendSyntheticConfigureNotify(); return TRUE; } @@ -1203,7 +1204,7 @@ bool Client::clientMessage( XClientMessageEvent& e ) configuration. */ -void Client::sendSynteticConfigureNotify() +void Client::sendSyntheticConfigureNotify() { XConfigureEvent c; c.type = ConfigureNotify; @@ -1214,6 +1215,8 @@ void Client::sendSynteticConfigureNotify() c.width = windowWrapper()->width(); c.height = windowWrapper()->height(); c.border_width = 0; + c.above = None; + c.override_redirect = 0; XSendEvent( qt_xdisplay(), c.event, TRUE, StructureNotifyMask, (XEvent*)&c ); } @@ -1571,8 +1574,8 @@ void Client::leaveEvent( QEvent * ) void Client::setGeometry( int x, int y, int w, int h ) { QWidget::setGeometry(x, y, w, h); - if ( !isResize() && !isMove() ) - sendSynteticConfigureNotify(); + if ( !isResize() && !isMove() && isVisible() ) + sendSyntheticConfigureNotify(); } /*! @@ -1581,8 +1584,8 @@ void Client::setGeometry( int x, int y, int w, int h ) void Client::move( int x, int y ) { QWidget::move( x, y ); - if ( !isMove() ) - sendSynteticConfigureNotify(); + if ( !isMove() && isVisible() ) + sendSyntheticConfigureNotify(); } diff --git a/client.h b/client.h index af3c208b10..0899a38a4f 100644 --- a/client.h +++ b/client.h @@ -137,7 +137,7 @@ public: bool skipTaskbar() const; void setSkipTaskbar( bool ); - + bool storeSettings() const; void setStoreSettings( bool ); @@ -283,7 +283,7 @@ private: QPoint invertedMoveOffset; QSize clientSize; XSizeHints xSizeHint; - void sendSynteticConfigureNotify(); + void sendSyntheticConfigureNotify(); int state; QRect original_geometry; QRect geom; //### TODO @@ -328,7 +328,7 @@ private: static QCString staticWmCommand(WId); static QCString staticWmClientMachine(WId); static Window staticWmClientLeader(WId); - + }; inline WId Client::window() const