blob: fc8abd4b2aefa9e36dada0202f81a030f5bab558 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
--- sd/source/ui/func/fuslsel.cxx 2003-03-27 16:27:51.000000000 +0530
+++ sd/source/ui/func/fuslsel.cxx 2004-12-10 11:33:40.395794208 +0530
@@ -165,9 +165,34 @@
{
bPageHit = TRUE; // Seite getroffen, merken fuer MouseMove
- if (rMEvt.IsShift())
+ if( rMEvt.IsMod1() )
pSlView->Select( ( pHitPage->GetPageNum() - 1 ) / 2, !pHitPage->IsSelected() );
- else if( !pHitPage->IsSelected() )
+ else if( rMEvt.IsShift() )
+ {
+ USHORT nCurrentPage = ( pHitPage->GetPageNum() - 1 ) / 2;
+ USHORT nPageRange;
+ BOOL bFound = FALSE;
+ for (nPageRange = 0; nPageRange < nNoOfPages; nPageRange++)
+ {
+ SdPage* pTestPage = pDoc->GetSdPage(nPageRange, PK_STANDARD);
+ if( pTestPage->IsSelected() )
+ {
+ bFound = TRUE;
+ break;
+ }
+ }
+ if( !bFound )
+ pSlView->Select( nCurrentPage, TRUE );
+ else if( nCurrentPage != nPageRange )
+ {
+ for (nPage = ((nCurrentPage > nPageRange) ? nPageRange : nCurrentPage);
+ nPage <= ((nCurrentPage > nPageRange) ? nCurrentPage : nPageRange);
+ nPage++)
+ pSlView->Select( nPage, TRUE );
+ }
+
+ }
+ else
{
// einfache Selektion, alle selektierten deselektieren, getroffene Seite selektieren
pSlView->SelectAll( FALSE );
@@ -207,7 +232,7 @@
if( !pHitPage && !bReturn )
{
// keine erweiterte Selektion: alle Seiten deselektieren
- if( !rMEvt.IsShift() )
+ if( !rMEvt.IsShift() && !rMEvt.IsMod1() )
pSlView->SelectAll( FALSE );
bDragSelection = TRUE;
|