@gneeot:
The problem is that obvious things often get very complicated inside the code ;) and we have
to be very careful to not introduce regressions...
A ton of other functions calls PrivateWindow::addWindowSizeChanges (...) where this bug
happens - th real responsibility for this behaviour is to be found in src/screen.cpp, where
this code can be found:
/* Returns default viewport for some window geometry. If the window spans
* more than one viewport the most appropriate viewport is returned. How the
* most appropriate viewport is computed can be made optional if necessary. It
* is currently computed as the viewport where the center of the window is
* located.
*
* XXX: It is possible for this function to return a negative viewport, which
* definitely feels wrong, however it seems that some plugins depend on this behaviour
* so they need to be fixed first
*/
void
compiz::private_screen::viewports::viewportForGeometry (const CompWindow::Geometry &gm,
CompPoint &viewport, ViewportRetrievalInterface *viewports,
const CompSize & screenSize)
^^ this function is then responsible for returning the wrong workspace, wrong in the sense that
it can be offscreen also...
I see multiple possible solutions, but maybe someone else has some input as well, ideas are welcome...
One thing is clear: This needs to finally get fixed ;)
@gneeot: :addWindowSizeC hanges (...) where this bug :private_ screen: :viewports: :viewportForGeo metry (const CompWindow: :Geometry &gm,
ViewportRetriev alInterface *viewports,
The problem is that obvious things often get very complicated inside the code ;) and we have
to be very careful to not introduce regressions...
A ton of other functions calls PrivateWindow:
happens - th real responsibility for this behaviour is to be found in src/screen.cpp, where
this code can be found:
/* Returns default viewport for some window geometry. If the window spans
* more than one viewport the most appropriate viewport is returned. How the
* most appropriate viewport is computed can be made optional if necessary. It
* is currently computed as the viewport where the center of the window is
* located.
*
* XXX: It is possible for this function to return a negative viewport, which
* definitely feels wrong, however it seems that some plugins depend on this behaviour
* so they need to be fixed first
*/
void
compiz:
CompPoint &viewport,
const CompSize & screenSize)
^^ this function is then responsible for returning the wrong workspace, wrong in the sense that
it can be offscreen also...
I see multiple possible solutions, but maybe someone else has some input as well, ideas are welcome...
One thing is clear: This needs to finally get fixed ;)