One change that was supposed to go with r603295.
svn path=/trunk/KDE/kdebase/workspace/; revision=603296
This commit is contained in:
parent
3a0e22ebe3
commit
3f0d6b97c1
1 changed files with 9 additions and 22 deletions
31
manage.cpp
31
manage.cpp
|
@ -38,25 +38,17 @@ bool Client::manage( Window w, bool isMapped )
|
||||||
{
|
{
|
||||||
StackingUpdatesBlocker stacking_blocker( workspace());
|
StackingUpdatesBlocker stacking_blocker( workspace());
|
||||||
|
|
||||||
grabXServer();
|
|
||||||
|
|
||||||
XWindowAttributes attr;
|
XWindowAttributes attr;
|
||||||
if( !XGetWindowAttributes(display(), w, &attr))
|
if( !XGetWindowAttributes(display(), w, &attr))
|
||||||
{
|
|
||||||
ungrabXServer();
|
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
grabXServer();
|
||||||
|
|
||||||
// from this place on, manage() mustn't return false
|
// from this place on, manage() mustn't return false
|
||||||
postpone_geometry_updates = 1;
|
postpone_geometry_updates = 1;
|
||||||
pending_geometry_update = true; // force update when finishing with geometry changes
|
pending_geometry_update = true; // force update when finishing with geometry changes
|
||||||
|
|
||||||
embedClient( w, attr );
|
embedClient( w, attr );
|
||||||
|
|
||||||
vis = attr.visual;
|
|
||||||
bit_depth = attr.depth;
|
|
||||||
|
|
||||||
setupCompositing();
|
|
||||||
|
|
||||||
// SELI order all these things in some sane manner
|
// SELI order all these things in some sane manner
|
||||||
|
|
||||||
|
@ -85,7 +77,6 @@ bool Client::manage( Window w, bool isMapped )
|
||||||
NET::WM2UserTime |
|
NET::WM2UserTime |
|
||||||
NET::WM2StartupId |
|
NET::WM2StartupId |
|
||||||
NET::WM2ExtendedStrut |
|
NET::WM2ExtendedStrut |
|
||||||
NET::WM2Opacity |
|
|
||||||
0;
|
0;
|
||||||
|
|
||||||
info = new WinInfo( this, display(), client, rootWindow(), properties, 2 );
|
info = new WinInfo( this, display(), client, rootWindow(), properties, 2 );
|
||||||
|
@ -114,9 +105,6 @@ bool Client::manage( Window w, bool isMapped )
|
||||||
setupWindowRules( false );
|
setupWindowRules( false );
|
||||||
setCaption( cap_normal, true );
|
setCaption( cap_normal, true );
|
||||||
|
|
||||||
if( Extensions::shapeAvailable())
|
|
||||||
XShapeSelectInput( display(), window(), ShapeNotifyMask );
|
|
||||||
detectShape( window());
|
|
||||||
detectNoBorder();
|
detectNoBorder();
|
||||||
fetchIconicName();
|
fetchIconicName();
|
||||||
getWMHints(); // needs to be done before readTransient() because of reading the group
|
getWMHints(); // needs to be done before readTransient() because of reading the group
|
||||||
|
@ -325,8 +313,9 @@ bool Client::manage( Window w, bool isMapped )
|
||||||
if(( !isSpecialWindow() || isToolbar()) && isMovable())
|
if(( !isSpecialWindow() || isToolbar()) && isMovable())
|
||||||
keepInArea( area, partial_keep_in_area );
|
keepInArea( area, partial_keep_in_area );
|
||||||
|
|
||||||
if( shape())
|
XShapeSelectInput( display(), window(), ShapeNotifyMask );
|
||||||
updateShape();
|
is_shape = Shape::hasShape( window());
|
||||||
|
updateShape();
|
||||||
|
|
||||||
//CT extra check for stupid jdk 1.3.1. But should make sense in general
|
//CT extra check for stupid jdk 1.3.1. But should make sense in general
|
||||||
// if client has initial state set to Iconic and is transient with a parent
|
// if client has initial state set to Iconic and is transient with a parent
|
||||||
|
@ -521,7 +510,7 @@ bool Client::manage( Window w, bool isMapped )
|
||||||
// sendSyntheticConfigureNotify(); done when setting mapping state
|
// sendSyntheticConfigureNotify(); done when setting mapping state
|
||||||
|
|
||||||
delete session;
|
delete session;
|
||||||
|
|
||||||
ungrabXServer();
|
ungrabXServer();
|
||||||
|
|
||||||
client_rules.discardTemporary();
|
client_rules.discardTemporary();
|
||||||
|
@ -539,7 +528,7 @@ bool Client::manage( Window w, bool isMapped )
|
||||||
void Client::embedClient( Window w, const XWindowAttributes &attr )
|
void Client::embedClient( Window w, const XWindowAttributes &attr )
|
||||||
{
|
{
|
||||||
assert( client == None );
|
assert( client == None );
|
||||||
assert( frameId() == None );
|
assert( frame == None );
|
||||||
assert( wrapper == None );
|
assert( wrapper == None );
|
||||||
client = w;
|
client = w;
|
||||||
// we don't want the window to be destroyed when we are destroyed
|
// we don't want the window to be destroyed when we are destroyed
|
||||||
|
@ -555,10 +544,9 @@ void Client::embedClient( Window w, const XWindowAttributes &attr )
|
||||||
swa.background_pixmap = None;
|
swa.background_pixmap = None;
|
||||||
swa.border_pixel = 0;
|
swa.border_pixel = 0;
|
||||||
|
|
||||||
Window frame = XCreateWindow( display(), rootWindow(), 0, 0, 1, 1, 0,
|
frame = XCreateWindow( display(), rootWindow(), 0, 0, 1, 1, 0,
|
||||||
attr.depth, InputOutput, attr.visual,
|
attr.depth, InputOutput, attr.visual,
|
||||||
CWColormap | CWBackPixmap | CWBorderPixel, &swa );
|
CWColormap | CWBackPixmap | CWBorderPixel, &swa );
|
||||||
setHandle( frame );
|
|
||||||
wrapper = XCreateWindow( display(), frame, 0, 0, 1, 1, 0,
|
wrapper = XCreateWindow( display(), frame, 0, 0, 1, 1, 0,
|
||||||
attr.depth, InputOutput, attr.visual,
|
attr.depth, InputOutput, attr.visual,
|
||||||
CWColormap | CWBackPixmap | CWBorderPixel, &swa );
|
CWColormap | CWBackPixmap | CWBorderPixel, &swa );
|
||||||
|
@ -577,8 +565,7 @@ void Client::embedClient( Window w, const XWindowAttributes &attr )
|
||||||
FocusChangeMask |
|
FocusChangeMask |
|
||||||
ExposureMask |
|
ExposureMask |
|
||||||
PropertyChangeMask |
|
PropertyChangeMask |
|
||||||
StructureNotifyMask | SubstructureRedirectMask |
|
StructureNotifyMask | SubstructureRedirectMask );
|
||||||
VisibilityChangeMask );
|
|
||||||
XSelectInput( display(), wrapper, ClientWinMask | SubstructureNotifyMask );
|
XSelectInput( display(), wrapper, ClientWinMask | SubstructureNotifyMask );
|
||||||
XSelectInput( display(), client,
|
XSelectInput( display(), client,
|
||||||
FocusChangeMask |
|
FocusChangeMask |
|
||||||
|
|
Loading…
Reference in a new issue