From 043cb2ef441b4ee46961ed837fedab082db14ceb Mon Sep 17 00:00:00 2001 From: Ken Moore Date: Tue, 15 Sep 2015 19:02:00 -0400 Subject: Finally fix up the system tray updates: Found out that (at least on FreeBSD 10.2 right now), the xcb_damage_create() routine does absolutely nothing (no damage events ever sent out when the window changes). Switching this back to the Xlib XDamageCreate() routine makes it work perfectly again. Need to ask about this upstream and see if this is a known bug/regression in the XCB libraries. --- lumina-desktop/panel-plugins/systemtray/LSysTray.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'lumina-desktop/panel-plugins/systemtray/LSysTray.cpp') diff --git a/lumina-desktop/panel-plugins/systemtray/LSysTray.cpp b/lumina-desktop/panel-plugins/systemtray/LSysTray.cpp index 220c7858..05c601e1 100644 --- a/lumina-desktop/panel-plugins/systemtray/LSysTray.cpp +++ b/lumina-desktop/panel-plugins/systemtray/LSysTray.cpp @@ -150,8 +150,9 @@ void LSysTray::UpdateTrayWindow(WId win){ for(int i=0; iappID()==win){ qDebug() << "System Tray: Update Window " << win; - trayIcons[i]->update(); - QTimer::singleShot(1000, trayIcons[i], SLOT(update()) ); + trayIcons[i]->repaint(); //don't use update() because we need an instant repaint (not a cached version) + //QTimer::singleShot(10, trayIcons[i], SLOT(repaint()) ); //re-paint in 10ms (give it a moment to settle) + //QTimer::singleShot(1000, trayIcons[i], SLOT(update()) ); return; //finished now } } -- cgit