StartupId::StartupId( QWidget* parent, const char* name ) : QWidget( parent ), startup_info( KStartupInfo::CleanOnCantDetect ), startup_window( None ), blinking( true ), bouncing( false ), selection_watcher( new KSelectionWatcher( "_KDE_STARTUP_FEEDBACK", -1, this )) { setObjectName( QLatin1String( name ) ); hide(); // is QWidget only because of x11Event() if( kde_startup_status == StartupPre ) { kde_splash_progress = XInternAtom( QX11Info::display(), "_KDE_SPLASH_PROGRESS", False ); XWindowAttributes attrs; XGetWindowAttributes( QX11Info::display(), QX11Info::appRootWindow(), &attrs); XSelectInput( QX11Info::display(), QX11Info::appRootWindow(), attrs.your_event_mask | SubstructureNotifyMask); kapp->installX11EventFilter( this ); } update_timer.setSingleShot( true ); connect( &update_timer, SIGNAL(timeout()), SLOT(update_startupid())); connect( &startup_info, SIGNAL(gotNewStartup(KStartupInfoId,KStartupInfoData)), SLOT(gotNewStartup(KStartupInfoId,KStartupInfoData))); connect( &startup_info, SIGNAL(gotStartupChange(KStartupInfoId,KStartupInfoData)), SLOT(gotStartupChange(KStartupInfoId,KStartupInfoData))); connect( &startup_info, SIGNAL(gotRemoveStartup(KStartupInfoId,KStartupInfoData)), SLOT(gotRemoveStartup(KStartupInfoId))); connect( selection_watcher, SIGNAL(newOwner(Window)), SLOT(newOwner())); connect( selection_watcher, SIGNAL(lostOwner()), SLOT(lostOwner())); active_selection = ( selection_watcher->owner() != None ); }
StartupFeedbackEffect::StartupFeedbackEffect() : m_startupInfo(new KStartupInfo(KStartupInfo::CleanOnCantDetect, this)) , m_selection(new KSelectionOwner("_KDE_STARTUP_FEEDBACK", -1, this)) , m_active(false) , m_frame(0) , m_progress(0) , m_texture(0) , m_type(BouncingFeedback) , m_blinkingShader(0) { for (int i = 0; i < 5; ++i) { m_bouncingTextures[i] = 0; } m_selection->claim(true); connect(m_startupInfo, SIGNAL(gotNewStartup(KStartupInfoId,KStartupInfoData)), SLOT(gotNewStartup(KStartupInfoId,KStartupInfoData))); connect(m_startupInfo, SIGNAL(gotRemoveStartup(KStartupInfoId,KStartupInfoData)), SLOT(gotRemoveStartup(KStartupInfoId,KStartupInfoData))); connect(m_startupInfo, SIGNAL(gotStartupChange(KStartupInfoId,KStartupInfoData)), SLOT(gotStartupChange(KStartupInfoId,KStartupInfoData))); connect(effects, SIGNAL(mouseChanged(QPoint,QPoint,Qt::MouseButtons,Qt::MouseButtons,Qt::KeyboardModifiers,Qt::KeyboardModifiers)), this, SLOT(slotMouseChanged(QPoint,QPoint,Qt::MouseButtons,Qt::MouseButtons,Qt::KeyboardModifiers,Qt::KeyboardModifiers))); reconfigure(ReconfigureAll); }