| Summary: | Applications invisible on taskbar | ||
|---|---|---|---|
| Product: | TDE | Reporter: | Slávek Banko <slavek.banko> |
| Component: | tdebase | Assignee: | 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
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.
(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 (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.
Fixed in GIT hash 42f6f23d and also in v3.5.13-sru branch. |