Bug #7946
Default selection and current browse row color differs for different customers applications
100%
History
#2 Updated by Stanislav Lomany 7 months 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 7 months 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 7 months 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_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 versionapp_C
itself 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 6 months 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 6 months 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 6 months ago
Stanislav Lomany wrote:
Should we add
oldBrowseSelectionBar
parameter to the directory? E.g. inserver/default/theme/oldBrowseSelectionBar
?Regarding the light blue selection color in
app_A
- it's defaultCOLOR_HIGHLIGHT
for Windows Server 2012. While Windows Server 2016 and Windows 10 use dark blue.Do you want to subclass
Windows10Theme
withWindowsServer2012Theme
?
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.
#9 Updated by Stanislav Lomany 6 months ago
- Status changed from New to WIP
Created task branch 7946a from FWD trunk revision 14786.
#10 Updated by Stanislav Lomany 6 months ago
Rebased task branch 7946a from FWD trunk revision 14824.
#11 Updated by Stanislav Lomany 6 months ago
- Status changed from WIP to Review
- % Done changed from 0 to 100
The fix is in 7946a rev 14826. Please review.
#13 Updated by Hynek Cihlar 6 months 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 6 months ago
The assignment of
oldBrowseSelectionBar
inEBCM.isOldBrowseSelectionBar
should be double-locked
Fixed in 7946a rev 14827.
Greg, should I commit?
#15 Updated by Stanislav Lomany 6 months 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 6 months ago
should I commit?
Yes, you can merge to trunk now.
I think that for
app_A
we should set the new Windows 2012 theme, and forapp_C
- enable the newoldBrowseSelectionBar
parameter. 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 6 months 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 6 months 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.