diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-05-03 15:55:11 -0500 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2013-05-05 05:09:57 +0200 |
commit | 20180a433681e96f62b7fae29800b0cdd560e775 (patch) | |
tree | 29a9f64a00513891b29cc2d02098b177435b7e3c /kicker/applets | |
parent | 1f8bdc6151e34f22dbcf4c863a67636451f48dfb (diff) | |
download | tdebase-20180a433681e96f62b7fae29800b0cdd560e775.tar.gz tdebase-20180a433681e96f62b7fae29800b0cdd560e775.zip |
Properly fix task tray background glitches
Ensure session is fully locked before switching to new VT when lock is requested
(cherry picked from commit 3cce16c2543ebd7441477b466b35c89333eef28c)
Diffstat (limited to 'kicker/applets')
-rw-r--r-- | kicker/applets/systemtray/systemtrayapplet.cpp | 24 | ||||
-rw-r--r-- | kicker/applets/systemtray/systemtrayapplet.h | 2 |
2 files changed, 6 insertions, 20 deletions
diff --git a/kicker/applets/systemtray/systemtrayapplet.cpp b/kicker/applets/systemtray/systemtrayapplet.cpp index 1a96a9372..2042f65b9 100644 --- a/kicker/applets/systemtray/systemtrayapplet.cpp +++ b/kicker/applets/systemtray/systemtrayapplet.cpp @@ -1130,10 +1130,8 @@ void SystemTrayApplet::setBackground() TrayEmbed::TrayEmbed( bool kdeTray, TQWidget* parent ) - : QXEmbed( parent ), kde_tray( kdeTray ), m_ensureBackgroundSetTimerCount(0) + : QXEmbed( parent ), kde_tray( kdeTray ) { - m_ensureBackgroundSetTimer = new TQTimer(); - connect(m_ensureBackgroundSetTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(ensureBackgroundSet())); hide(); m_scaledWidget = new TQWidget(parent); m_scaledWidget->hide(); @@ -1141,7 +1139,7 @@ TrayEmbed::TrayEmbed( bool kdeTray, TQWidget* parent ) TrayEmbed::~TrayEmbed() { - delete m_ensureBackgroundSetTimer; + // } void TrayEmbed::getIconSize(int defaultIconSize) @@ -1164,20 +1162,19 @@ void TrayEmbed::setBackground() { const TQPixmap *pbg = parentWidget()->backgroundPixmap(); - if (pbg) - { + if (pbg) { TQPixmap bg(width(), height()); bg.fill(parentWidget(), pos()); setPaletteBackgroundPixmap(bg); setBackgroundOrigin(WidgetOrigin); } - else + else { unsetPalette(); + } if (!isHidden()) { XClearArea(x11Display(), embeddedWinId(), 0, 0, 0, 0, True); - m_ensureBackgroundSetTimerCount = 0; ensureBackgroundSet(); } } @@ -1211,8 +1208,7 @@ void TrayEmbed::ensureBackgroundSet() int g = int( tqGreen( l ) ); int b = int( tqBlue( l ) ); int a = int( tqAlpha( l ) ); - ls[x] = tqRgba( r, g, b, a ); - XSetForeground(x11Display(), gc, (r << 16) | (g << 8) | b ); + XSetForeground(x11Display(), gc, (a << 24) | (r << 16) | (g << 8) | b ); XDrawPoint(x11Display(), argbpixmap, gc, x, y); } } @@ -1223,13 +1219,5 @@ void TrayEmbed::ensureBackgroundSet() // Repaint XClearArea(x11Display(), embeddedWinId(), 0, 0, 0, 0, True); - - // HACK - // Clear background artifacts in first available timeslot after initial icon display - if (m_ensureBackgroundSetTimerCount < 1) { - m_ensureBackgroundSetTimerCount++; - m_ensureBackgroundSetTimer->stop(); - m_ensureBackgroundSetTimer->start(0, TRUE); - } } } diff --git a/kicker/applets/systemtray/systemtrayapplet.h b/kicker/applets/systemtray/systemtrayapplet.h index 84ee06ecb..d554a810e 100644 --- a/kicker/applets/systemtray/systemtrayapplet.h +++ b/kicker/applets/systemtray/systemtrayapplet.h @@ -135,8 +135,6 @@ public: private: bool kde_tray; TQWidget *m_scaledWidget; - TQTimer* m_ensureBackgroundSetTimer; - int m_ensureBackgroundSetTimerCount; private slots: void ensureBackgroundSet(); }; |