To comment on the following update, log in, then open the issue: http://www.openoffice.org/issues/show_bug.cgi?id=10931
------- Additional comments from [EMAIL PROTECTED] Thu Apr 10 11:46:44 +0000 2008 ------- Hi all, I can't believe this has been around for so long, and wasn't fixed - it was my primary obstacle to switching from powerpoint :) Well, in the end my old powerpoint came to crash every 20 min or so, and it was time to switch - but the lack of middle click flip slides was just so irritating, so I managed to make a fix.. (noob note - I thought it would go quick, but compiling ooo from source takes about 4hrs on my PC, and the folder grows from hundreds of megs to about 4 GB and more :) ) Anyways, I managed to make some sort of a fix, inspired by the wiese mention here. The fix adds a checkbox to Tools/Options/OpenOffice.org Impress/General, called "Flip slides with mousewheel". If it is checked, when doing mouse wheel, the old zoom is remembered, zoom is set to 1 (minimum view), wheel proceeds and flips the page by default, and zoom is afterwards set back to the old value (I'd much rather use _ExecPgUpAndPgDown, but I don't know how to get a reference to it)... Note that the checkbox doesn't work properly (as I don't know how to make it work :) ) - at start of simpress it is set, and pages flip with mouse wheel - if you decide to uncheck it, then the pages don't flip with wheel anymore (as expected), but if you go back to options again, you will see the checkbox checked again, and it will not go back to true anymore (which doesn't matter to me, since I don't intend to change it anyways :) ) I've made a diff patches for the files individually, and then merged it into a single patch by hand - hope I didn't make many mistakes. The patch is in reference to the 2.4.0 sources (OOo_2.4.0_src_core.tar.bz2). Since I'm not familiar with "upstream" and the like, the patch is included below. For the impatient, I've put the compiled files here: http://www.mediafire.com/?9xigky9iizg download sd.wntmsci10.pro.bin.zip, and copy all dll files in it into [your OOo install dir]/program (overwriting the previous versions), and the sd680en-US.res file in [your OOo install dir]/program/resource (again, overwrite - this file shows the checkbox, I believe). Well, hope this helps - and I really hope to see this (or other similar solution) in the default open office impress soon :) {although, possibly the best eventually, would be to have the option to customize all these events in a config file, and have corresponding functions available, so one could do, say: MouseWheelUp: GoPrevPage(); MouseWheelDown: GoNextPage(); Ctrl_MouseWheelUp: Etcetera(); } ------------- patch file: diff -Naur OOH680_m12\officecfg\registry\schema\org\openoffice\Office\Impress.xcs OOH680_m12fix\officecfg\registry\schema\org\openoffice\Office\Impress.xcs --- OOH680_m12\officecfg\registry\schema\org\openoffice\Office\Impress.xcs 2008-01-18 13:59:24.000000000 +0100 +++ OOH680_m12fix\officecfg\registry\schema\org\openoffice\Office\Impress.xcs 2008-04-09 15:51:13.785328800 +0200 @@ -305,6 +305,16 @@ <info> <desc>Contains a collection of configuration items for the Impress application that do not fit into another category.</desc> </info> + <prop oor:name="WheelFlipSlides" oor:type="xs:boolean"> + <!-- OldPath: --> + <!-- OldLocation: --> + <!-- UIHints: Tools - Options - Presentation Other [Section] Other --> + <info> + <desc>When active, mouse wheel should flip slides.</desc> + <label>Flip slides with mousewheel</label> + </info> + <value>true</value> + </prop> <prop oor:name="BackgroundCache" oor:type="xs:boolean"> <!-- OldPath: Impress/Other --> <!-- OldLocation: Soffice.cfg --> diff -Naur OOH680_m12\sd\source\ui\app\optsitem.cxx OOH680_m12fix\sd\source\ui\app\optsitem.cxx --- OOH680_m12\sd\source\ui\app\optsitem.cxx 2007-11-26 15:33:57.000000000 +0100 +++ OOH680_m12fix\sd\source\ui\app\optsitem.cxx 2008-04-09 15:56:17.712354400 +0200 @@ -547,6 +547,7 @@ bPreviewChangedEffects( FALSE ), bPreviewTransitions( TRUE ), mnDisplay( 0 ), + bWheelFlipSlides( TRUE ), // The default for 6.1-and-above documents is to use printer-independent // formatting. mnPrinterIndependentLayout (1) @@ -585,6 +586,7 @@ SetPreviewChangedEffects(false); SetPreviewTransitions(true); SetDisplay(0); + SetWheelFlipSlides( TRUE ); } // ----------------------------------------------------------------------------- @@ -617,7 +619,9 @@ IsPreviewNewEffects() == rOpt.IsPreviewNewEffects() && IsPreviewChangedEffects() == rOpt.IsPreviewChangedEffects() && IsPreviewTransitions() == rOpt.IsPreviewTransitions() && - GetDisplay() == rOpt.GetDisplay() + GetDisplay() == rOpt.GetDisplay() && + IsWheelFlipSlides() == rOpt.IsWheelFlipSlides() + ); } @@ -658,12 +662,13 @@ "PreviewChangedEffects", "PreviewTransitions", - "Display" + "Display", + "Misc/WheelFlipSlides" }; // #90356# rCount = ( ( GetConfigId() == SDCFG_IMPRESS ) ? 15 : 12 ); // #97016# rCount = ( ( GetConfigId() == SDCFG_IMPRESS ) ? 16 : 12 ); - rCount = ( ( GetConfigId() == SDCFG_IMPRESS ) ? 24 : 15 ); + rCount = ( ( GetConfigId() == SDCFG_IMPRESS ) ? 25 : 15 ); ppNames = aPropNames; } @@ -715,6 +720,8 @@ if( pValues[23].hasValue() ) SetDisplay(*(sal_Int32*) pValues[ 23 ].getValue()); + + if( pValues[24].hasValue() ) SetWheelFlipSlides( *(sal_Bool*) pValues[ 24 ].getValue() ); //for Misc/WheelFlipSlides } return TRUE; @@ -757,6 +764,7 @@ pValues[ 22 ] <<= IsPreviewTransitions(); pValues[ 23 ] <<= GetDisplay(); + pValues[ 24 ] <<= IsWheelFlipSlides(); } return TRUE; @@ -831,6 +839,7 @@ maOptionsMisc.SetClickChangeRotation( pOpts->IsClickChangeRotation() ); maOptionsMisc.SetSolidDragging( pOpts->IsSolidDragging() ); maOptionsMisc.SetSolidMarkHdl( pOpts->IsSolidMarkHdl() ); + maOptionsMisc.SetWheelFlipSlides( pOpts->IsWheelFlipSlides() ); } } @@ -884,6 +893,8 @@ pOpts->SetPreviewTransitions( maOptionsMisc.IsPreviewTransitions() ); pOpts->SetDisplay( maOptionsMisc.GetDisplay() ); + + pOpts->SetWheelFlipSlides( maOptionsMisc.IsWheelFlipSlides() ); } } diff -Naur OOH680_m12\sd\source\ui\inc\optsitem.hxx OOH680_m12fix\sd\source\ui\inc\optsitem.hxx --- OOH680_m12\sd\source\ui\inc\optsitem.hxx 2007-11-26 15:36:06.000000000 +0100 +++ OOH680_m12fix\sd\source\ui\inc\optsitem.hxx 2008-04-09 10:14:47.879421600 +0200 @@ -303,6 +303,7 @@ sal_Int32 mnDisplay; + BOOL bWheelFlipSlides : 1; // Misc/WheelFlipSlides /** This value controls the device to use for formatting documents. The currently supported values are 0 for the current printer or 1 for the printer independent virtual device the can be retrieved from @@ -331,6 +332,7 @@ BOOL IsCrookNoContortion() const { Init(); return (BOOL) bCrookNoContortion; } BOOL IsQuickEdit() const { Init(); return (BOOL) bQuickEdit; } BOOL IsMasterPagePaintCaching() const { Init(); return (BOOL) bMasterPageCache; } + BOOL IsWheelFlipSlides() const { Init(); return (BOOL) bWheelFlipSlides; } BOOL IsDragWithCopy() const { Init(); return (BOOL) bDragWithCopy; } BOOL IsPickThrough() const { Init(); return (BOOL) bPickThrough; } BOOL IsBigHandles() const { Init(); return (BOOL) bBigHandles; } @@ -366,6 +368,7 @@ void SetCrookNoContortion( BOOL bOn = TRUE ) { if( bCrookNoContortion != bOn ) { OptionsChanged(); bCrookNoContortion = bOn; } } void SetQuickEdit( BOOL bOn = TRUE ) { if( bQuickEdit != bOn ) { OptionsChanged(); bQuickEdit = bOn; } } void SetMasterPagePaintCaching( BOOL bOn = TRUE ) { if( bMasterPageCache != bOn ) { OptionsChanged(); bMasterPageCache = bOn; } } + void SetWheelFlipSlides( BOOL bOn = TRUE ) { if( bWheelFlipSlides != bOn ) { OptionsChanged(); bWheelFlipSlides = bOn; } } void SetDragWithCopy( BOOL bOn = TRUE ) { if( bDragWithCopy != bOn ) { OptionsChanged(); bDragWithCopy = bOn; } } void SetPickThrough( BOOL bOn = TRUE ) { if( bPickThrough != bOn ) { OptionsChanged(); bPickThrough = bOn; } } void SetBigHandles( BOOL bOn = TRUE ) { if( bBigHandles != bOn ) { OptionsChanged(); bBigHandles = bOn; } } diff -Naur OOH680_m12\sd\source\ui\view\viewshel.cxx OOH680_m12fix\sd\source\ui\view\viewshel.cxx --- OOH680_m12\sd\source\ui\view\viewshel.cxx 2007-07-06 15:15:12.000000000 +0200 +++ OOH680_m12fix\sd\source\ui\view\viewshel.cxx 2008-04-09 19:30:48.459580000 +0200 @@ -94,6 +94,9 @@ #ifndef _SFX_CHILDWIN_HXX #include <sfx2/childwin.hxx> #endif +#ifndef _MSGBOX_HXX //not autogen +#include <vcl/msgbox.hxx> +#endif #include "app.hrc" #include "helpids.h" @@ -146,6 +149,11 @@ SO2_DECL_REF(SvInPlaceObject) #endif +/*#ifndef _PVIEW_HXX +//#include <../../../../sw/source/ui/inc/pview.hxx> //added path in makefile +#include <pview.hxx> +#endif*/ + using namespace ::com::sun::star; using namespace ::com::sun::star::uno; @@ -720,7 +728,12 @@ BOOL ViewShell::HandleScrollCommand(const CommandEvent& rCEvt, ::sd::Window* pWin) { BOOL bDone = FALSE; - + String str1 (RTL_CONSTASCII_STRINGPARAM( " test " )); + String str2 (RTL_CONSTASCII_STRINGPARAM( " - " )); + + str1 += UniString::CreateFromInt32( rCEvt.GetCommand() ); + str1.Append( str2 ); + switch( rCEvt.GetCommand() ) { case COMMAND_WHEEL: @@ -728,14 +741,31 @@ case COMMAND_AUTOSCROLL: { const CommandWheelData* pData = rCEvt.GetWheelData(); - + + SdOptions* pOptions = SD_MOD()->GetSdOptions(DOCUMENT_TYPE_IMPRESS); + SdPage* pActualPage = GetActualPage(); + str1 += UniString::CreateFromInt32( pData->IsMod1() ); + str1.Append( str2 ); + str1 += UniString::CreateFromInt32( IsPageFlipMode() ); + str1.Append( str2 ); + str1 += UniString::CreateFromInt32( pOptions->IsWheelFlipSlides() ); + str1.Append( str2 ); + str1 += UniString::CreateFromInt32( pActualPage->GetPageNum() ); + str1.Append( str2 ); + str1 += UniString::CreateFromInt32( COMMAND_WHEEL_PAGESCROLL ); + str1.Append( str2 ); + str1 += UniString::CreateFromInt32( GetActiveWindow()->GetZoom() ); + + InfoBox( 0, str1 ).Execute(); + const long nOldZoom = GetActiveWindow()->GetZoom(); + if (pData != NULL) { if (pData->IsMod1()) { if( !GetDocSh()->IsUIActive() ) { - const long nOldZoom = GetActiveWindow()->GetZoom(); + //const long nOldZoom = GetActiveWindow()->GetZoom(); //moved upstairs long nNewZoom; if( pData->GetDelta() < 0L ) @@ -753,8 +783,15 @@ if( mpContentWindow.get() == pWin ) { ULONG nScrollLines = pData->GetScrollLines(); - if(IsPageFlipMode()) + //if(IsPageFlipMode()) // main change + if(IsPageFlipMode() || pOptions->IsWheelFlipSlides()) + { nScrollLines = COMMAND_WHEEL_PAGESCROLL; + //pView->_ExecPgUpAndPgDown(true); //would use this, but don't know how - so zoom trick, before and after + SetZoom( 1 ); + Invalidate( SID_ATTR_ZOOM ); + } + CommandWheelData aWheelData( pData->GetDelta(),pData->GetNotchDelta(), nScrollLines,pData->GetMode(),pData->GetModifier(),pData->IsHorz() ); CommandEvent aReWrite( rCEvt.GetMousePosPixel(),rCEvt.GetCommand(), @@ -762,6 +799,12 @@ bDone = pWin->HandleScrollCommand( aReWrite, mpHorizontalScrollBar.get(), mpVerticalScrollBar.get()); + + if(IsPageFlipMode() || pOptions->IsWheelFlipSlides()) + { + SetZoom( nOldZoom ); + Invalidate( SID_ATTR_ZOOM ); + } } } } diff -Naur OOH680_m12\sd\source\ui\dlg\tpoption.src OOH680_m12fix\sd\source\ui\dlg\tpoption.src --- OOH680_m12\sd\source\ui\dlg\tpoption.src 2007-11-26 15:35:12.000000000 +0100 +++ OOH680_m12fix\sd\source\ui\dlg\tpoption.src 2008-04-09 15:28:43.073100000 +0200 @@ -129,16 +129,23 @@ CheckBox CBX_MASTERPAGE_CACHE { Pos = MAP_APPFONT ( 12 , 80 ) ; - Size = MAP_APPFONT ( 242 , 10 ) ; + Size = MAP_APPFONT ( 110 , 10 ) ; TabStop = TRUE ; Text [ en-US ] = "Use background cache" ; }; + CheckBox CBX_WHEELFLIP_SLIDES + { + Pos = MAP_APPFONT ( 150 , 80 ) ; + Size = MAP_APPFONT ( 110 , 10 ) ; + TabStop = TRUE ; + Text [ en-US ] = "Flip slides with mousewheel" ; + }; CheckBox CBX_COPY { Pos = MAP_APPFONT ( 12 , 93 ) ; Size = MAP_APPFONT ( 242 , 10 ) ; TabStop = TRUE ; - Text [ en-US ] = "Copy when moving" ; + Text [ en-US ] = "Copy when moving.." ; }; CheckBox CBX_MARKED_HIT_MOVES_ALWAYS { diff -Naur OOH680_m12\sd\source\ui\inc\tpoption.hxx OOH680_m12fix\sd\source\ui\inc\tpoption.hxx --- OOH680_m12\sd\source\ui\inc\tpoption.hxx 2007-11-26 15:36:41.000000000 +0100 +++ OOH680_m12fix\sd\source\ui\inc\tpoption.hxx 2008-04-09 15:00:53.762749600 +0200 @@ -125,6 +125,7 @@ FixedLine aGrpSettings; CheckBox aCbxMasterPageCache; + CheckBox aCbxWheelFlipSlides; CheckBox aCbxCopy; CheckBox aCbxMarkedHitMovesAlways; CheckBox aCbxCrookNoContortion; diff -Naur OOH680_m12\sd\source\ui\inc\tpoption.hrc OOH680_m12fix\sd\source\ui\inc\tpoption.hrc --- OOH680_m12\sd\source\ui\inc\tpoption.hrc 2007-11-26 15:36:23.000000000 +0100 +++ OOH680_m12fix\sd\source\ui\inc\tpoption.hrc 2008-04-09 11:17:46.693088800 +0200 @@ -101,3 +101,4 @@ #define FT_SCALE 39 #define CB_USE_PRINTER_METRICS 40 +#define CBX_WHEELFLIP_SLIDES 41 diff OOH680_m12\sd\source\ui\dlg\tpoption.cxx OOH680_m12fix\sd\source\ui\dlg\tpoption.cxx --- OOH680_m12\sd\source\ui\dlg\tpoption.cxx 2007-11-26 15:34:57.000000000 +0100 +++ OOH680_m12fix\sd\source\ui\dlg\tpoption.cxx 2008-04-09 15:06:42.594344800 +0200 @@ -285,6 +285,7 @@ aGrpSettings ( this, SdResId( GRP_SETTINGS ) ), aCbxMasterPageCache ( this, SdResId( CBX_MASTERPAGE_CACHE ) ), + aCbxWheelFlipSlides ( this, SdResId( CBX_WHEELFLIP_SLIDES ) ), aCbxCopy ( this, SdResId( CBX_COPY ) ), aCbxMarkedHitMovesAlways ( this, SdResId( CBX_MARKED_HIT_MOVES_ALWAYS ) ), aCbxCrookNoContortion ( this, SdResId( CBX_CROOK_NO_CONTORTION ) ), @@ -459,6 +460,7 @@ aCbxQuickEdit.GetSavedValue() != aCbxQuickEdit.IsChecked() || aCbxPickThrough.GetSavedValue() != aCbxPickThrough.IsChecked() || aCbxMasterPageCache.GetSavedValue() != aCbxMasterPageCache.IsChecked() || + aCbxWheelFlipSlides.GetSavedValue() != aCbxWheelFlipSlides.IsChecked() || aCbxCopy.GetSavedValue() != aCbxCopy.IsChecked() || aCbxStartWithActualPage.GetSavedValue() != aCbxStartWithActualPage.IsChecked() || aCbxCompatibility.GetSavedValue() != aCbxCompatibility.IsChecked() || @@ -472,6 +474,7 @@ aOptsItem.GetOptionsMisc().SetQuickEdit( aCbxQuickEdit.IsChecked() ); aOptsItem.GetOptionsMisc().SetPickThrough( aCbxPickThrough.IsChecked() ); aOptsItem.GetOptionsMisc().SetMasterPagePaintCaching( aCbxMasterPageCache.IsChecked() ); + aOptsItem.GetOptionsMisc().SetWheelFlipSlides( aCbxWheelFlipSlides.IsChecked() ); aOptsItem.GetOptionsMisc().SetDragWithCopy( aCbxCopy.IsChecked() ); aOptsItem.GetOptionsMisc().SetStartWithActualPage( aCbxStartWithActualPage.IsChecked() ); aOptsItem.GetOptionsMisc().SetSummationOfParagraphs( aCbxCompatibility.IsChecked() ); @@ -529,6 +532,7 @@ aCbxQuickEdit.Check( aOptsItem.GetOptionsMisc().IsQuickEdit() ); aCbxPickThrough.Check( aOptsItem.GetOptionsMisc().IsPickThrough() ); aCbxMasterPageCache.Check( aOptsItem.GetOptionsMisc().IsMasterPagePaintCaching() ); + aCbxWheelFlipSlides.Check( aOptsItem.GetOptionsMisc().IsWheelFlipSlides() ); aCbxCopy.Check( aOptsItem.GetOptionsMisc().IsDragWithCopy() ); aCbxStartWithActualPage.Check( aOptsItem.GetOptionsMisc().IsStartWithActualPage() ); aCbxCompatibility.Check( aOptsItem.GetOptionsMisc().IsSummationOfParagraphs() ); @@ -540,6 +544,7 @@ aCbxPickThrough.SaveValue(); aCbxMasterPageCache.SaveValue(); + aCbxWheelFlipSlides.SaveValue(); aCbxCopy.SaveValue(); aCbxStartWithActualPage.SaveValue(); aCbxCompatibility.SaveValue(); @@ -659,6 +664,7 @@ lcl_MoveWin (aCbxStartWithTemplate, -nLineHeight); lcl_MoveWin (aGrpSettings, -nLineHeight); lcl_MoveWin (aCbxMasterPageCache, -nLineHeight); + lcl_MoveWin (aCbxWheelFlipSlides, -nLineHeight); lcl_MoveWin (aCbxCopy, -nLineHeight); lcl_MoveWin (aCbxMarkedHitMovesAlways, -nLineHeight); lcl_MoveWin (aCbxCrookNoContortion, -nLineHeight); --------------------------------------------------------------------- Please do not reply to this automatically generated notification from Issue Tracker. Please log onto the website and enter your comments. http://qa.openoffice.org/issue_handling/project_issues.html#notification --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
