By default, Bugzilla does not search the list of RESOLVED bugs.
You can force it to do so by putting the upper-case word ALL in front of your search query, e.g.: ALL tdelibs
We recommend searching for bugs this way, as you may discover that your bug has already been resolved and fixed in a later release.

Bug 1429

Summary: Applications invisible on taskbar
Product: TDE Reporter: Slávek Banko <slavek.banko>
Component: tdebaseAssignee: Slávek Banko <slavek.banko>
Status: RESOLVED FIXED    
Severity: normal CC: bugwatch, kb9vqf, slavek.banko
Priority: P5    
Version: 3.5.13.2 [Trinity]   
Hardware: All   
OS: All   
Compiler Version: TDE Version String:
Application Version: Application Name:
Attachments: Fix applications invisible on taskbar with xinerama

Description Slávek Banko 2013-03-31 08:48:30 CDT
I login on the laptop with one screen. Run some applications. Then connect the second screen and using xrandr turn on the second screen. Kicker moves to the right screen. But applications that remained on the left screen, then are on the taskbar invisible - regardless of whether is on the left or right screen. Although I set the taskbar to show windows from all screens.

Newly started applications are on taskbar displayed correctly.
Minipager applet displays everything in order.
Task switcher is also without problem.
Comment 1 Slávek Banko 2013-04-03 21:42:30 CDT
Created attachment 1130 [details]
Fix applications invisible on taskbar with xinerama

I found two issues:

1) Once activated showCurrentScreenOnly, windowChangedGeometry signal is connected, but it is never disconnected.

2) m_showOnlyCurrentScreen is set to true, if is active multiple screens and turned on showCurrentScreenOnly, but also in the case that there is active only single screen. I do not understand why?

Combination of both leads to the fact that for single screen is signal windowChangedGeometry always connected. But it is mentioned in method windowChangedGeometry:

    //TODO: this gets called every time a window's geom changes
    //      when we are in "show only on the same Xinerama screen"
    //      mode it would be Good(tm) to compress these events so this
    //      gets run less often, but always when needed

I believe that due to a combination of the above issues, in the case of a single screen is windowChangedGeometry method called, but completely unnecessary. And thus also causes unnecessary overhead.

Please check the attached patch. For me solves this bug. And I not observe any regression.
Comment 2 Timothy Pearson 2013-04-03 22:09:35 CDT
(In reply to comment #1)
> Created attachment 1130 [details]
> Fix applications invisible on taskbar with xinerama
> 
> I found two issues:
> 
> 1) Once activated showCurrentScreenOnly, windowChangedGeometry signal is
> connected, but it is never disconnected.
> 
> 2) m_showOnlyCurrentScreen is set to true, if is active multiple screens and
> turned on showCurrentScreenOnly, but also in the case that there is active only
> single screen. I do not understand why?
> 
> Combination of both leads to the fact that for single screen is signal
> windowChangedGeometry always connected. But it is mentioned in method
> windowChangedGeometry:
> 
>     //TODO: this gets called every time a window's geom changes
>     //      when we are in "show only on the same Xinerama screen"
>     //      mode it would be Good(tm) to compress these events so this
>     //      gets run less often, but always when needed
> 
> I believe that due to a combination of the above issues, in the case of a
> single screen is windowChangedGeometry method called, but completely
> unnecessary. And thus also causes unnecessary overhead.
> 
> Please check the attached patch. For me solves this bug. And I not observe any
> regression.

Have you tried the patch with more than one screen?  I have not had a chance to at this time, just curious if you had done this already.

If no regressions have been noted with this patch, then I say push it to GIT.  I also think that this is might be an old bug that was inherited from KDE 3.5.10, as the GIT log on the taskbar applet does not show any recent (within the past 2 years) changes to this file.

Tim
Comment 3 Slávek Banko 2013-04-04 07:55:27 CDT
(Odpověď na komentář #2)
> Have you tried the patch with more than one screen?  I have not had a chance to
> at this time, just curious if you had done this already.
> 
> If no regressions have been noted with this patch, then I say push it to GIT. 
> I also think that this is might be an old bug that was inherited from KDE
> 3.5.10, as the GIT log on the taskbar applet does not show any recent (within
> the past 2 years) changes to this file.
> 
> Tim

I tested using the procedure mentioned above in bug report: start with single screen => attach external monitor and switch to two screens.

I watched the first part of the problem comes from 3.5.10 (is already in the initial commit). And the second part of the problem came with commit 10e41144: Initial import of Trinity 3.5.11 to kdebase.

I will proceed to push a patch to GIT.
Comment 4 Slávek Banko 2013-04-04 10:14:20 CDT
Fixed in GIT hash 42f6f23d and also in v3.5.13-sru branch.