Issue 119325 - Multiple SelectionChanged events with no reason in Calc
Summary: Multiple SelectionChanged events with no reason in Calc
Status: CONFIRMED
Alias: None
Product: Calc
Classification: Application
Component: ui (show other issues)
Version: OOo 3.3
Hardware: PC Windows 7
: P3 Major with 3 votes (vote)
Target Milestone: ---
Assignee: AOO issues mailing list
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-05-10 17:10 UTC by j.tronel
Modified: 2013-08-20 11:22 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
Select cells and click button to display number of events (9.62 KB, application/vnd.oasis.opendocument.spreadsheet)
2012-05-10 17:10 UTC, j.tronel
no flags Details
click in any cell (ought to increment cell by one) (9.19 KB, application/vnd.oasis.opendocument.spreadsheet)
2013-08-20 11:17 UTC, j.tronel
no flags Details

Note You need to log in before you can comment on or make changes to this issue.
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!)