Bug #7946
Default selection and current browse row color differs for different customers applications
100%
History
#2 Updated by Stanislav Lomany almost 3 years ago
- File colors.png added
We have differences in "selection color" which affects color of selection in fill-in, editor, drop-downs and selection lists, including the ones in browses and browse "row color" for the selected rows.

Systems used:app_A - Windows Server 2012 + OE 11.x app_C - Windows Server 2016 + OE 10.x (!) app_M - Windows Server 2016 + OE 11.x
Greg, I've previously reported 11.x for app_C but that is incorrect, I was testing it on 10.X. The machine has 11.X but the license for it is expired. Do you know on which version app_C itself is running?
Things to notice:
1. app_C has the row color the same as the selection color. There's a manual on how to change it using registry: #7583-30 I don't know why this works on the specific configurations, because normally the described registry change affects only the selection color.
2. app_A and FWD use blue selection color while app_C and app_M - dark blue.
3. Gray row color in FWD is slightly darker that in app_A and app_M.
I personally suggest to make the colors configurable in order to support this zoo. As a bonus we will support the case when a customer wants to change selection color thru the registry.
#3 Updated by Stanislav Lomany almost 3 years ago
- File registry.png added
While app_C and app_M have different row color, the HKEY_CURRENT_USER\Control Panel\Colors sections are the same, which is:
#4 Updated by Greg Shah almost 3 years ago
- Start date deleted (
10/20/2023)
app_A- Windows Server 2012 + OE 11.xapp_C- Windows Server 2016 + OE 10.x (!)app_M- Windows Server 2016 + OE 11.xGreg, I've previously reported 11.x for
app_Cbut that is incorrect, I was testing it on 10.X. The machine has 11.X but the license for it is expired. Do you know on which versionapp_Citself is running?
I think at least some (maybe most) of the production installations are 10.x but they may have a mix of 11.x in there.
I personally suggest to make the colors configurable in order to support this zoo. As a bonus we will support the case when a customer wants to change selection color thru the registry.
What is your suggested approach for this? It would need to be able to have defaults set for the entire system and then overrides for specific servers/groups/accounts, so this is probably something that fits in the "runtime" settings section. On the other hand, I think we can configure the 4GL color table in the directory too, right? It might be confusing to have this very separated from that stuff. I would want the structure to be simple and consistent.
We can move ahead with this idea BUT I really do want us to know the exact reasons why <app_C> has a difference in behavior from the other applications.
#5 Updated by Stanislav Lomany almost 3 years ago
- File 4gl.png added
I found the cause of the issue. This picture from my earlier investigations which illustrates the difference between the two drawing modes for the current row.
Starting with OpenEdge 11.5, the browse widget will paint a translucent selection bar (on the left).
Prior to OpenEdge 11.5, the browse widget paints selected rows as opaque using the highlight colors which are defined for the entire Windows session (on the right). This means that no matter what FGCOLOR or BGCOLOR are defined, the browse will always paint selected rows with a background color that is the same as the Windows COLOR_HIGHLIGHT and a foreground color that matches the Windows COLOR_HIGHLIGHTTEXT.
In OpenEdge 11.5 and later you can set OldBrowseSelectionBar parameter to revert the row coloring to the old mode.
Add OldBrowseSelectionBar=yes in the Startup section of the registry / INI file. For example in:"Computer\HKEY_CURRENT_USER\SOFTWARE\PSC\PROGRESS\11.6\Startup""Computer\HKEY_LOCAL_MACHINE\SOFTWARE\PSC\PROGRESS\11.6\Startup"
or in the INI file with:
[Startup] ... OldBrowseSelectionBar=yes
Sources:
https://community.progress.com/s/article/P22578
https://community.progress.com/s/article/000056499
#6 Updated by Stanislav Lomany almost 3 years ago
Should we add oldBrowseSelectionBar parameter to the directory? E.g. in server/default/theme/oldBrowseSelectionBar?
Regarding the light blue selection color in app_A - it's default COLOR_HIGHLIGHT for Windows Server 2012. While Windows Server 2016 and Windows 10 use dark blue.
Do you want to subclass Windows10Theme with WindowsServer2012Theme?
#7 Updated by Greg Shah over 2 years ago
Stanislav Lomany wrote:
Should we add
oldBrowseSelectionBarparameter to the directory? E.g. inserver/default/theme/oldBrowseSelectionBar?Regarding the light blue selection color in
app_A- it's defaultCOLOR_HIGHLIGHTfor Windows Server 2012. While Windows Server 2016 and Windows 10 use dark blue.Do you want to subclass
Windows10ThemewithWindowsServer2012Theme?
Yes, both ideas seem to be quite reasonable. Instead of /server/default/theme/oldBrowseSelectionBar, please make this a setting in the runtime area, just like we would set the decimal separator or other runtime values.
#8 Updated by Greg Shah over 2 years ago
Very nice work in figuring this out!
#9 Updated by Stanislav Lomany over 2 years ago
- Status changed from New to WIP
Created task branch 7946a from FWD trunk revision 14786.
#10 Updated by Stanislav Lomany over 2 years ago
Rebased task branch 7946a from FWD trunk revision 14824.
#11 Updated by Stanislav Lomany over 2 years ago
- Status changed from WIP to Review
- % Done changed from 0 to 100
The fix is in 7946a rev 14826. Please review.
#12 Updated by Greg Shah over 2 years ago
Hynek: Please review.
#13 Updated by Hynek Cihlar over 2 years ago
Code review 7946a.
The assignment of oldBrowseSelectionBar in EBCM.isOldBrowseSelectionBar should be double-locked: if (oldBrowseSelectionBar == null) { synchronized(...) { if (oldBrowseSelectionBar == null) ....
Otherwise the changes look good.
#14 Updated by Stanislav Lomany over 2 years ago
The assignment of
oldBrowseSelectionBarinEBCM.isOldBrowseSelectionBarshould be double-locked
Fixed in 7946a rev 14827.
Greg, should I commit?
#15 Updated by Stanislav Lomany over 2 years ago
Greg, I think that for app_A we should set the new Windows 2012 theme, and for app_C - enable the new oldBrowseSelectionBar parameter. Should I do the changes?
#16 Updated by Greg Shah over 2 years ago
should I commit?
Yes, you can merge to trunk now.
I think that for
app_Awe should set the new Windows 2012 theme, and forapp_C- enable the newoldBrowseSelectionBarparameter. Should I do the changes?
Yes, please commit these cfg changes at the same time you merge to trunk. Mention these cfg changes in your commit notice.
#17 Updated by Stanislav Lomany over 2 years ago
app_A actually uses Material theme and therefore it hasn't been regressed by the Windows 10 theme changes as I assumed. It doesn't need any changes.
#18 Updated by Stanislav Lomany over 2 years ago
7946a has been merged into the trunk as bzr revision 14825.
app_C changes to the directory.xml template have been merged as rev 359.
#19 Updated by Greg Shah over 2 years ago
- Status changed from Review to Test