- reenabled (fixed) splitter proxy by default

- only resize proxy widget on mouse press
- do not clear splitter in leave event if mouseGrabber is still set
- do not disable/enable updates while resizeing the splitter handle
wilder-pre-rebase
Hugo Pereira Da Costa 12 years ago
parent d62fe0bfcf
commit 6b1c45fc7d
  1. 2
      kstyle/breeze.kcfg
  2. 27
      kstyle/breezesplitterproxy.cpp

@ -100,7 +100,7 @@
<!-- splitter proxy -->
<entry name="SplitterProxyEnabled" type="Bool">
<default>false</default>
<default>true</default>
</entry>
<entry name="SplitterProxyWidth" type="Int">

@ -220,11 +220,11 @@ namespace Breeze
event->accept();
// grab on mouse press
if( event->type() == QEvent::MouseButtonPress) grabMouse();
parentWidget()->setUpdatesEnabled(false);
resize(1,1);
parentWidget()->setUpdatesEnabled(true);
if( event->type() == QEvent::MouseButtonPress)
{
grabMouse();
resize(1,1);
}
// cast to mouse event
QMouseEvent *mouseEvent( static_cast<QMouseEvent*>( event ) );
@ -270,18 +270,18 @@ namespace Breeze
if( static_cast<QTimerEvent*>( event )->timerId() != _timerId )
{ return QWidget::event( event ); }
if( mouseGrabber() == this )
{ return true; }
/*
Fall through is intended.
We somehow lost a QEvent::Leave and gonna fix that from here
We somehow lost a QEvent::Leave before timeout. We fix it from here
*/
case QEvent::HoverLeave:
case QEvent::Leave:
{
if( mouseGrabber() == this )
{ return true; }
// reset splitter
if( isVisible() && !rect().contains( mapFromGlobal( QCursor::pos() ) ) )
{ clearSplitter(); }
@ -308,17 +308,14 @@ namespace Breeze
//
QRect r( 0, 0, 2*StyleConfigData::splitterProxyWidth(), 2*StyleConfigData::splitterProxyWidth() );
r.moveCenter( parentWidget()->mapFromGlobal( QCursor::pos() ) );
r.moveCenter( _hook );
setGeometry(r);
setCursor( _splitter.data()->cursor().shape() );
raise();
show();
/*
timer used to automatically hide proxy
in case leave events are lost
*/
// timer used to automatically hide proxy in case leave events are lost
if( !_timerId ) _timerId = startTimer(150);
}
@ -338,7 +335,7 @@ namespace Breeze
hide();
parentWidget()->setUpdatesEnabled(true);
// set hover event
// send hover event
if( _splitter )
{
QHoverEvent hoverEvent(

Loading…
Cancel
Save