Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.1:kernel-2.6.32
kdepim4
r893453.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File r893453.diff of Package kdepim4
Subject: korganizer: potential setNoActionCursor crash fix From: wstephenson@suse.de Bug: Patch-upstream: 893453 --- korganizer/koagenda.cpp (revision 893452) +++ korganizer/koagenda.cpp (revision 893453) @@ -364,8 +364,6 @@ void KOAgenda::changeColumns( int column */ bool KOAgenda::eventFilter ( QObject *object, QEvent *event ) { -// kDebug() << int( event->type() ); - switch( event->type() ) { case QEvent::MouseButtonPress: case QEvent::MouseButtonDblClick: @@ -590,32 +588,31 @@ bool KOAgenda::eventFilter_wheel ( QObje bool KOAgenda::eventFilter_mouse( QObject *object, QMouseEvent *me ) { QPoint viewportPos; - if ( object != viewport() ) { - viewportPos = ( (QWidget *)object )->mapToParent( me->pos() ); + if ( object != viewport() && object != this ) { + viewportPos = static_cast<QWidget *>( object )->mapToParent( me->pos() ); } else { viewportPos = me->pos(); } switch ( me->type() ) { case QEvent::MouseButtonPress: -// kDebug() << "filtered button press"; if ( object != viewport() ) { if ( me->button() == Qt::RightButton ) { mClickedItem = dynamic_cast<KOAgendaItem *>( object ); if ( mClickedItem ) { - selectItem(mClickedItem); + selectItem( mClickedItem ); emit showIncidencePopupSignal( mClickedItem->incidence(), mClickedItem->itemDate() ); } } else { - KOAgendaItem* item = dynamic_cast<KOAgendaItem *>(object); + KOAgendaItem *item = dynamic_cast<KOAgendaItem *>(object); if (item) { Incidence *incidence = item->incidence(); if ( incidence->isReadOnly() ) { mActionItem = 0; } else { mActionItem = item; - startItemAction(viewportPos); + startItemAction( viewportPos ); } // Warning: do selectItem() as late as possible, since all // sorts of things happen during this call. Some can lead to @@ -668,7 +665,7 @@ bool KOAgenda::eventFilter_mouse( QObjec QPoint indicatorPos = gridToContents( contentsToGrid( viewportToContents( viewportPos ) ) ); if ( object != viewport() ) { KOAgendaItem *moveItem = dynamic_cast<KOAgendaItem *>( object ); - if ( moveItem && !moveItem->incidence()->isReadOnly() ) { + if ( moveItem && moveItem->incidence() && !moveItem->incidence()->isReadOnly() ) { if ( !mActionItem ) { setNoActionCursor( moveItem, viewportPos ); } else { --- korganizer/koagenda.h (revision 893452) +++ korganizer/koagenda.h (revision 893453) @@ -92,7 +92,7 @@ class KOAgenda : public Q3ScrollView * reappears, it can be reselected. */ const QString lastSelectedUid() const; - virtual bool eventFilter ( QObject *, QEvent * ); + bool eventFilter ( QObject *, QEvent * ); QPoint contentsToGrid ( const QPoint &pos ) const; QPoint gridToContents ( const QPoint &gpos ) const; Index: korganizer/koagenda.cpp =================================================================== Index: korganizer/koagenda.h ===================================================================
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor