View Issue Details

IDProjectCategoryView StatusLast Update
0001651JEDI VCL00 JVCL Componentspublic2004-05-23 11:06
ReporterMarkus SpoettlAssigned Tomarcelb 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0001651: JvInspector: Value List does not disappear correctly
DescriptionThe value list of an item's editor (eg. the list of colors, the list of enum values, ...) does not hide correctly when the focus changes. In all following cases, 2x, the list will not disappear, there might be more of them:

1) open a item value list (like Color item)


2a) click the value caption of the item
    or into the editor of the item

2b) (assuming the scrollbar is visible)
    click the scrollbar tracker of the
    inspector

2c) using the mouse set the focus to another
    control (like a button)

2d) move the window the inspector is contained
    in, the list will stay open+not change it's
    location, that leave a strange effect...

I would suggest to hide the list anytime the user clicks anywhere outside the control, no matter where.

TagsNo tags attached.

Activities

marcelb

2004-04-16 03:11

manager   ~0003905

I could have sworn these problems where fixed a long time ago. Quite possibly I accidently removed them trying to fix something else.

marcelb

2004-04-16 03:26

manager   ~0003906

Hmm, these are not the same issues.

  2a: can do that.
  2b: that's not really a problem. As soon as the clicking above/below the tracker (i.e. the inspector view scrolls) the list does vanish.
  2c: unexpected: I assumed the Listbox's OnExit even would fire, but apparently it doesn't.
  2d: ouch. That's an old issue I just never was able to solve.

How to detect if the user clicks somewhere out of the list? If clicked on the inspector it's easy. How to detect if it is outside of the inspector? It clearly doesn't lose focus when you move the containing form so focus loss detection is not going to solve all issues.

user72

2004-04-16 04:27

  ~0003910

If you'd used a form, you could checked the WM_ACTIVE message:
procedure TSomeForm.WMActivate(var Msg: TWMActivate);
begin
  inherited;
  if Msg.Active = WA_INACTIVE then
    Hide; // or whatever
end;

With a control, I'm not so sure (well, it won't get the WM_ACTIVATE message because that is only sent to top-level windows, like forms) but there are several examples in JVCL you could look at (drop down calendars, calculators, DBLookupControls etc) and maybe get some ideas.

Markus Spoettl

2004-04-17 03:00

reporter   ~0003920

Addtional note for case 2b:

If you use the thumb (the square piece that you can move around on a scrollbar) you will see the behaviour. THis is what I was referring to as tracker, sorry for the confusion.

marcelb

2004-05-23 11:06

manager   ~0004318

CVS rev 1.105.

Issue History

Date Modified Username Field Change
2004-04-16 03:02 Markus Spoettl New Issue
2004-04-16 03:11 marcelb Note Added: 0003905
2004-04-16 03:11 marcelb Assigned To => marcelb
2004-04-16 03:11 marcelb Status new => confirmed
2004-04-16 03:26 marcelb Note Added: 0003906
2004-04-16 04:27 user72 Note Added: 0003910
2004-04-17 03:00 Markus Spoettl Note Added: 0003920
2004-05-23 11:06 marcelb Status confirmed => resolved
2004-05-23 11:06 marcelb Resolution open => fixed
2004-05-23 11:06 marcelb Note Added: 0004318