View | Details | Raw Unified | Return to issue 75416
Collapse All | Expand All

(-)sw-Orig/source/ui/inc/view.hxx (-1 / +2 lines)
Lines 512-520 Link Here
512
512
513
	static USHORT	GetMoveType();
513
	static USHORT	GetMoveType();
514
	static void		SetMoveType(USHORT nSet);
514
	static void		SetMoveType(USHORT nSet);
515
	void 			MoveNavigation(BOOL bNext);
516
	static void		SetActMark(BYTE nSet);
515
	static void		SetActMark(BYTE nSet);
517
516
517
	DECL_STATIC_LINK( SwView, MoveNavigationHdl, BOOL* ); // #i75416#
518
518
	BOOL 			HandleWheelCommands( const CommandEvent& );
519
	BOOL 			HandleWheelCommands( const CommandEvent& );
519
520
520
	// Rahmen einfuegen
521
	// Rahmen einfuegen
(-)sw-Orig/source/ui/uiview/view2.cxx (-2 / +3 lines)
Lines 1118-1125 Link Here
1118
			if(pArgs && pArgs->GetItemState(FN_SCROLL_NEXT_PREV, FALSE, &pItem))
1118
			if(pArgs && pArgs->GetItemState(FN_SCROLL_NEXT_PREV, FALSE, &pItem))
1119
			{
1119
			{
1120
				// hier sollen nur die Handler der PageUp/DownButtons gerufen werden
1120
				// hier sollen nur die Handler der PageUp/DownButtons gerufen werden
1121
				BOOL bNext = ((const SfxBoolItem*)pItem)->GetValue();
1121
				BOOL* pbNext = new BOOL ( ((const SfxBoolItem*)pItem)->GetValue() );
1122
				MoveNavigation(bNext);
1122
				// #i75416# move the execution of the search to an asynchronously called static link
1123
				Application::PostUserEvent( STATIC_LINK(this, SwView, MoveNavigationHdl), pbNext );
1123
			}
1124
			}
1124
			break;
1125
			break;
1125
		case SID_JUMPTOMARK:
1126
		case SID_JUMPTOMARK:
(-)sw-Orig/source/ui/uiview/viewmdi.cxx (-22 / +34 lines)
Lines 42-47 Link Here
42
42
43
#include "hintids.hxx"
43
#include "hintids.hxx"
44
44
45
#ifndef _SV_SVAPP_HXX
46
#include <vcl/svapp.hxx>
47
#endif
45
#ifndef _SFXDISPATCH_HXX //autogen
48
#ifndef _SFXDISPATCH_HXX //autogen
46
#include <sfx2/dispatch.hxx>
49
#include <sfx2/dispatch.hxx>
47
#endif
50
#endif
Lines 324-346 Link Here
324
 */
327
 */
325
IMPL_LINK( SwView, BtnPage, Button *, pButton )
328
IMPL_LINK( SwView, BtnPage, Button *, pButton )
326
{
329
{
327
	MoveNavigation(pButton == pPageDownBtn);
330
	// #i75416# move the execution of the search to an asynchronously called static link 
331
	BOOL* pbNext = new BOOL( FALSE );
332
	if (pButton == pPageDownBtn) *pbNext = TRUE;
333
	Application::PostUserEvent( STATIC_LINK(this, SwView, MoveNavigationHdl), pbNext );
328
	return 0;
334
	return 0;
329
}
335
}
330
/*-----------------20.06.97 10:46-------------------
336
/*-----------------20.06.97 10:46-------------------
331
337
332
--------------------------------------------------*/
338
--------------------------------------------------*/
333
void SwView::MoveNavigation(BOOL bNext)
339
IMPL_STATIC_LINK( SwView, MoveNavigationHdl, BOOL *, pbNext )
334
{
340
{
335
	SwWrtShell& rSh = GetWrtShell();
341
	if ( !pbNext )
342
		return 0;
343
       SwWrtShell& rSh = pThis->GetWrtShell();
336
	switch( nMoveType )
344
	switch( nMoveType )
337
	{
345
	{
338
		case NID_PGE:
346
		case NID_PGE:
339
			bNext ? PhyPageDown() : PhyPageUp();
347
			*pbNext ? pThis->PhyPageDown() : pThis->PhyPageUp();
340
		break;
348
		break;
341
		case NID_TBL :
349
		case NID_TBL :
342
			rSh.EnterStdMode();
350
			rSh.EnterStdMode();
343
			if(bNext)
351
			if(*pbNext)
344
				rSh.MoveTable(fnTableNext, fnTableStart);
352
				rSh.MoveTable(fnTableNext, fnTableStart);
345
			else
353
			else
346
				rSh.MoveTable(fnTablePrev, fnTableStart);
354
				rSh.MoveTable(fnTablePrev, fnTableStart);
Lines 354-360 Link Here
354
                eType = FLY_GRF;
362
                eType = FLY_GRF;
355
			else if(nMoveType == NID_OLE)
363
			else if(nMoveType == NID_OLE)
356
                eType = FLY_OLE;
364
                eType = FLY_OLE;
357
			BOOL bSuccess = bNext ?
365
			BOOL bSuccess = *pbNext ?
358
					rSh.GotoNextFly(eType) :
366
					rSh.GotoNextFly(eType) :
359
						rSh.GotoPrevFly(eType);
367
						rSh.GotoPrevFly(eType);
360
			if(bSuccess)
368
			if(bSuccess)
Lines 366-379 Link Here
366
		break;
374
		break;
367
		case NID_DRW :
375
		case NID_DRW :
368
		case NID_CTRL:
376
		case NID_CTRL:
369
			rSh.GotoObj(bNext,
377
			rSh.GotoObj(*pbNext,
370
					nMoveType == NID_DRW ?
378
					nMoveType == NID_DRW ?
371
						DRAW_SIMPLE :
379
						DRAW_SIMPLE :
372
							DRAW_CONTROL);
380
							DRAW_CONTROL);
373
		break;
381
		break;
374
		case NID_REG :
382
		case NID_REG :
375
			rSh.EnterStdMode();
383
			rSh.EnterStdMode();
376
			if(bNext)
384
			if(*pbNext)
377
				rSh.MoveRegion(fnRegionNext, fnRegionStart);
385
				rSh.MoveRegion(fnRegionNext, fnRegionStart);
378
			else
386
			else
379
				rSh.MoveRegion(fnRegionPrev, fnRegionStart);
387
				rSh.MoveRegion(fnRegionPrev, fnRegionStart);
Lines 381-400 Link Here
381
		break;
389
		break;
382
		case NID_BKM :
390
		case NID_BKM :
383
			rSh.EnterStdMode();
391
			rSh.EnterStdMode();
384
			GetViewFrame()->GetDispatcher()->Execute(bNext ?
392
			pThis->GetViewFrame()->GetDispatcher()->Execute(*pbNext ?
385
										FN_NEXT_BOOKMARK :
393
										FN_NEXT_BOOKMARK :
386
											FN_PREV_BOOKMARK);
394
											FN_PREV_BOOKMARK);
387
		break;
395
		break;
388
		case NID_OUTL:
396
		case NID_OUTL:
389
			rSh.EnterStdMode();
397
			rSh.EnterStdMode();
390
			bNext ? rSh.GotoNextOutline() : rSh.GotoPrevOutline();
398
			*pbNext ? rSh.GotoNextOutline() : rSh.GotoPrevOutline();
391
		break;
399
		break;
392
		case NID_SEL :
400
		case NID_SEL :
393
			bNext ? rSh.GoNextCrsr() : rSh.GoPrevCrsr();
401
			*pbNext ? rSh.GoNextCrsr() : rSh.GoPrevCrsr();
394
		break;
402
		break;
395
		case NID_FTN:
403
		case NID_FTN:
396
			rSh.EnterStdMode();
404
			rSh.EnterStdMode();
397
			bNext ?
405
			*pbNext ?
398
				rSh.GotoNextFtnAnchor() :
406
				rSh.GotoNextFtnAnchor() :
399
					rSh.GotoPrevFtnAnchor();
407
					rSh.GotoPrevFtnAnchor();
400
		break;
408
		break;
Lines 416-422 Link Here
416
			}
424
			}
417
			if (nMarkCount)
425
			if (nMarkCount)
418
			{
426
			{
419
				if(!bNext)
427
				if(!(*pbNext))
420
				{
428
				{
421
					if (nActMark > 1)
429
					if (nActMark > 1)
422
						--nActMark;
430
						--nActMark;
Lines 438-471 Link Here
438
		{
446
		{
439
447
440
			SwFieldType* pFldType = rSh.GetFldType(0, RES_POSTITFLD);
448
			SwFieldType* pFldType = rSh.GetFldType(0, RES_POSTITFLD);
441
			rSh.MoveFldType( pFldType, bNext );
449
			rSh.MoveFldType( pFldType, *pbNext );
442
		}
450
		}
443
		break;
451
		break;
444
		case NID_SRCH_REP:
452
		case NID_SRCH_REP:
445
		if(pSrchItem)
453
		if(pSrchItem)
446
		{
454
		{
447
			BOOL bBackward = pSrchItem->GetBackward();
455
			BOOL bBackward = pSrchItem->GetBackward();
448
			if(rSh.HasSelection() && !bNext == rSh.IsCrsrPtAtEnd())
456
			if(rSh.HasSelection() && !(*pbNext) == rSh.IsCrsrPtAtEnd())
449
				rSh.SwapPam();
457
				rSh.SwapPam();
450
			pSrchItem->SetBackward(!bNext);
458
			pSrchItem->SetBackward(!(*pbNext));
451
			SfxRequest aReq(FN_REPEAT_SEARCH, SFX_CALLMODE_SLOT, GetPool());
459
			SfxRequest aReq(FN_REPEAT_SEARCH, SFX_CALLMODE_SLOT, pThis->GetPool());
452
			ExecSearch(aReq);
460
			pThis->ExecSearch(aReq);
453
			pSrchItem->SetBackward(bBackward);
461
			pSrchItem->SetBackward(bBackward);
454
		}
462
		}
455
		break;
463
		break;
456
		case NID_INDEX_ENTRY:
464
		case NID_INDEX_ENTRY:
457
			rSh.GotoNxtPrvTOXMark(bNext);
465
			rSh.GotoNxtPrvTOXMark(*pbNext);
458
		break;
466
		break;
459
467
460
		case NID_TABLE_FORMULA:
468
		case NID_TABLE_FORMULA:
461
			rSh.GotoNxtPrvTblFormula( bNext );
469
			rSh.GotoNxtPrvTblFormula( *pbNext );
462
			break;
470
			break;
463
471
464
		case NID_TABLE_FORMULA_ERROR:
472
		case NID_TABLE_FORMULA_ERROR:
465
			rSh.GotoNxtPrvTblFormula( bNext, TRUE );
473
			rSh.GotoNxtPrvTblFormula( *pbNext, TRUE );
466
			break;
474
			break;
467
	}
475
	}
468
	pEditWin->GrabFocus();
476
	pThis->pEditWin->GrabFocus();
477
478
	delete pbNext;
479
480
	return 0;
469
}
481
}
470
482
471
/*************************************************************************
483
/*************************************************************************
(-)sw-Orig/source/ui/utlui/navipi.cxx (-1 / +6 lines)
Lines 371-377 Link Here
371
	{
371
	{
372
		case FN_UP:
372
		case FN_UP:
373
		case FN_DOWN:
373
		case FN_DOWN:
374
			pView->MoveNavigation(FN_DOWN == nId);
374
		{
375
			// #i75416# move the execution of the search to an asynchronously called static link
376
			BOOL* pbNext = new BOOL( FALSE );
377
			if (FN_DOWN == nId) *pbNext = TRUE;
378
			Application::PostUserEvent( STATIC_LINK(pView, SwView, MoveNavigationHdl), pbNext );
379
		}
375
		break;
380
		break;
376
		case FN_SHOW_ROOT:
381
		case FN_SHOW_ROOT:
377
		{
382
		{

Return to issue 75416