summaryrefslogtreecommitdiffstats
path: root/src/kernel/qwidget_x11.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/qwidget_x11.cpp')
-rw-r--r--src/kernel/qwidget_x11.cpp55
1 files changed, 30 insertions, 25 deletions
diff --git a/src/kernel/qwidget_x11.cpp b/src/kernel/qwidget_x11.cpp
index ddad9cd..54c37e6 100644
--- a/src/kernel/qwidget_x11.cpp
+++ b/src/kernel/qwidget_x11.cpp
@@ -794,7 +794,7 @@ void QWidget::destroy( bool destroyWindow, bool destroySubWindows )
clearWState( WState_Created );
if ( children() ) {
QObjectListIt it(*children());
- register QObject *obj;
+ QObject *obj;
while ( (obj=it.current()) ) { // destroy all widget children
++it;
if ( obj->isWidgetType() )
@@ -1487,28 +1487,31 @@ void QWidget::grabMouse()
void QWidget::grabMouse( const QCursor &cursor )
{
if ( !qt_nograb() ) {
- if ( mouseGrb )
- mouseGrb->releaseMouse();
+ if ( mouseGrb != this ) {
+ if ( mouseGrb ) {
+ mouseGrb->releaseMouse();
+ }
#if defined(QT_CHECK_STATE)
- int status =
+ int status =
#endif
- XGrabPointer( x11Display(), winId(), False,
- (uint)(ButtonPressMask | ButtonReleaseMask |
- PointerMotionMask | EnterWindowMask | LeaveWindowMask),
- GrabModeAsync, GrabModeAsync,
- None, cursor.handle(), qt_x_time );
+ XGrabPointer( x11Display(), winId(), False,
+ (uint)(ButtonPressMask | ButtonReleaseMask |
+ PointerMotionMask | EnterWindowMask | LeaveWindowMask),
+ GrabModeAsync, GrabModeAsync,
+ None, cursor.handle(), qt_x_time );
#if defined(QT_CHECK_STATE)
- if ( status ) {
- const char *s =
- status == GrabNotViewable ? "\"GrabNotViewable\"" :
- status == AlreadyGrabbed ? "\"AlreadyGrabbed\"" :
- status == GrabFrozen ? "\"GrabFrozen\"" :
- status == GrabInvalidTime ? "\"GrabInvalidTime\"" :
- "<?>";
- qWarning( "Grabbing the mouse failed with %s", s );
- }
+ if ( status ) {
+ const char *s =
+ status == GrabNotViewable ? "\"GrabNotViewable\"" :
+ status == AlreadyGrabbed ? "\"AlreadyGrabbed\"" :
+ status == GrabFrozen ? "\"GrabFrozen\"" :
+ status == GrabInvalidTime ? "\"GrabInvalidTime\"" :
+ "<?>";
+ qWarning( "Grabbing the mouse failed with %s", s );
+ }
#endif
- mouseGrb = this;
+ mouseGrb = this;
+ }
}
}
@@ -1548,11 +1551,13 @@ void QWidget::releaseMouse()
void QWidget::grabKeyboard()
{
if ( !qt_nograb() ) {
- if ( keyboardGrb )
- keyboardGrb->releaseKeyboard();
- XGrabKeyboard( x11Display(), winid, False, GrabModeAsync, GrabModeAsync,
- qt_x_time );
- keyboardGrb = this;
+ if ( keyboardGrb != this ) {
+ if ( keyboardGrb ) {
+ keyboardGrb->releaseKeyboard();
+ }
+ XGrabKeyboard( x11Display(), winid, False, GrabModeAsync, GrabModeAsync, qt_x_time );
+ keyboardGrb = this;
+ }
}
}
@@ -2476,7 +2481,7 @@ void QWidget::scroll( int dx, int dy, const QRect& r )
if ( !valid_rect && children() ) { // scroll children
QPoint pd( dx, dy );
QObjectListIt it(*children());
- register QObject *object;
+ QObject *object;
while ( it ) { // move all children
object = it.current();
if ( object->isWidgetType() ) {