Issue 119325

Summary: Multiple SelectionChanged events with no reason in Calc
Product: Calc Reporter: j.tronel
Component: uiAssignee: AOO issues mailing list <issues>
Status: CONFIRMED --- QA Contact:
Severity: Major    
Priority: P3 CC: phoenix.wanglf
Version: OOo 3.3   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Issue Type: DEFECT Latest Confirmation in: ---
Developer Difficulty: ---
Attachments:
Description Flags
Select cells and click button to display number of events
none
click in any cell (ought to increment cell by one) none

Description j.tronel 2012-05-10 17:10:02 UTC
Created attachment 77522 [details]
Select cells and click button to display number of events

Hello,

A SelectionChanged event seems to be triggered several times at a single modification of cell selection in Calc. It even occurs four times (on my system) when I click on an already selected cell!!!

Here is a sample Calc file with macros:
***************************************
Global count As Integer

Sub SelectionChanged(evt)
     count = count+1
     SelectionChanged=true
End Sub

Sub Display
     Print count
     count = 0
End Sub
***************************************

count is incremented each time SelectionChanged is executed (on a SelectionChanged event in sheet 1).

Display is called by button on the same sheet and shows current value of count, then resets it for further trials.

Now, select any cell or cell range (using mouse or keyboard) then click on the button; strange isn't it?

If not wrong, I'd expect no event at all when the selection is not changed, and just one when changed.

Badly needing that feature, I use this workaround:
***************************************
Global ref As String

Sub SelectionChanged(evt)
     If evt.absoluteName = ref then Exit Sub
     ref = evt.absoluteName
     'commands............
End Sub
***************************************
(supposing one will only select cells or cell ranges)
Comment 1 j.tronel 2012-05-10 17:33:07 UTC
Bug related to bugs 108859, 111176
Comment 2 j.tronel 2012-05-14 00:14:37 UTC
An even more shocking and simpler demonstration of this behaviour is this short code:

Sub Main(evt)
	If evt.SupportsService("com.sun.star.sheet.SheetCell") Then
		evt.value = evt.value+1
	End If
End Sub

It supposedly increments by one the newly selected cell (not an already selected cell).
Comment 3 j.tronel 2012-05-18 08:28:04 UTC
Same behaviour using an XSelectionChangeListener
Comment 4 Li Feng Wang 2012-06-13 09:54:12 UTC
On AOO3.4 release version:
 1)when I click on an already selected cell many times, no more event to be triggered.
 2)when I selected cell changed more than 2 times, event count is wrong.
 3)when select cell range, the number is strange. But I don't know how to count the event number for this kind(select cell range via mouse)
Comment 5 j.tronel 2013-08-20 11:17:01 UTC
Created attachment 81363 [details]
click in any cell (ought to increment cell by one)
Comment 6 j.tronel 2013-08-20 11:22:13 UTC
Hi,

Bug still creeping as of version 4.0.0! (see previous attachment; being honest, I notice just two macro calls when selecting a single cell; go on, this will be solved in version 15!)