Fix #69721. Also, set the move cursor before input grabs, so the grab
uses the new cursor. svn path=/trunk/kdebase/kwin/; revision=271904
This commit is contained in:
parent
7a3e77449d
commit
c151780247
1 changed files with 4 additions and 4 deletions
|
@ -1496,6 +1496,8 @@ bool Client::startMoveResize()
|
||||||
if( QApplication::activePopupWidget() != NULL )
|
if( QApplication::activePopupWidget() != NULL )
|
||||||
return false; // popups have grab
|
return false; // popups have grab
|
||||||
bool has_grab = false;
|
bool has_grab = false;
|
||||||
|
if( mode == Center )
|
||||||
|
setCursor( sizeAllCursor ); // change from arrow cursor if moving
|
||||||
if( XGrabPointer( qt_xdisplay(), frameId(), False, ButtonPressMask | ButtonReleaseMask | PointerMotionMask,
|
if( XGrabPointer( qt_xdisplay(), frameId(), False, ButtonPressMask | ButtonReleaseMask | PointerMotionMask,
|
||||||
GrabModeAsync, GrabModeAsync, None, cursor.handle(), qt_x_time ) == Success )
|
GrabModeAsync, GrabModeAsync, None, cursor.handle(), qt_x_time ) == Success )
|
||||||
has_grab = true;
|
has_grab = true;
|
||||||
|
@ -1503,8 +1505,6 @@ bool Client::startMoveResize()
|
||||||
has_grab = true;
|
has_grab = true;
|
||||||
if( !has_grab ) // at least one grab is necessary in order to be able to finish move/resize
|
if( !has_grab ) // at least one grab is necessary in order to be able to finish move/resize
|
||||||
return false;
|
return false;
|
||||||
if( mode == Center )
|
|
||||||
setCursor( sizeAllCursor ); // change from arrow cursor if moving
|
|
||||||
if ( maximizeMode() != MaximizeRestore )
|
if ( maximizeMode() != MaximizeRestore )
|
||||||
resetMaximize();
|
resetMaximize();
|
||||||
moveResizeMode = true;
|
moveResizeMode = true;
|
||||||
|
@ -1729,12 +1729,12 @@ void Client::handleMoveResize( int x, int y, int x_root, int y_root )
|
||||||
|
|
||||||
if( update )
|
if( update )
|
||||||
{
|
{
|
||||||
if (options->resizeMode == Options::Opaque )
|
if(( isResize() ? options->resizeMode : options->moveMode ) == Options::Opaque )
|
||||||
{
|
{
|
||||||
setGeometry( moveResizeGeom );
|
setGeometry( moveResizeGeom );
|
||||||
positionGeometryTip();
|
positionGeometryTip();
|
||||||
}
|
}
|
||||||
else if ( options->resizeMode == Options::Transparent )
|
else if(( isResize() ? options->resizeMode : options->moveMode ) == Options::Transparent )
|
||||||
{
|
{
|
||||||
clearbound(); // it's necessary to move the geometry tip when there's no outline
|
clearbound(); // it's necessary to move the geometry tip when there's no outline
|
||||||
positionGeometryTip(); // shown, otherwise it would cause repaint problems in case
|
positionGeometryTip(); // shown, otherwise it would cause repaint problems in case
|
||||||
|
|
Loading…
Reference in a new issue