Add a hack that somewhat improves screen repaint after X session
switch with drivers that have a problem with this. CCBUG: 154825 svn path=/trunk/KDE/kdebase/workspace/; revision=783860
This commit is contained in:
parent
97ecd7f796
commit
cda4477458
2 changed files with 7 additions and 2 deletions
|
@ -477,8 +477,13 @@ bool Workspace::workspaceEvent( XEvent * e )
|
|||
case VisibilityNotify:
|
||||
if( compositing() && overlay != None && e->xvisibility.window == overlay )
|
||||
{
|
||||
bool was_visible = overlay_visible;
|
||||
overlay_visible = ( e->xvisibility.state != VisibilityFullyObscured );
|
||||
addRepaintFull();
|
||||
if( !was_visible && overlay_visible )
|
||||
{ // hack for #154825
|
||||
addRepaintFull();
|
||||
QTimer::singleShot( 2000, this, SLOT( addRepaintFull()));
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -314,7 +314,6 @@ class Workspace : public QObject, public KDecorationDefines
|
|||
// either Toplevel::addRepaint() or Toplevel::addWorkspaceRepaint()
|
||||
void addRepaint( const QRect& r );
|
||||
void addRepaint( int x, int y, int w, int h );
|
||||
void addRepaintFull();
|
||||
// creates XComposite overlay window, call initOverlay() afterwards
|
||||
bool createOverlay();
|
||||
// init overlay and the destination window in it
|
||||
|
@ -324,6 +323,7 @@ class Workspace : public QObject, public KDecorationDefines
|
|||
Window overlayWindow();
|
||||
|
||||
public slots:
|
||||
void addRepaintFull();
|
||||
void refresh();
|
||||
// keybindings
|
||||
void slotSwitchDesktopNext();
|
||||
|
|
Loading…
Reference in a new issue