ooo-build r11972 - in trunk: . patches/src680



Author: jonp
Date: Fri Mar 21 03:11:14 2008
New Revision: 11972
URL: http://svn.gnome.org/viewvc/ooo-build?rev=11972&view=rev

Log:
	* patches/src680/sc-paste-on-enter.diff: Remove the whitelist idea, and hook
	  into ScInputHandler and ScViewFunc functions to cancel pastemode at the
	  appropriate times.  This seems more robust than the prior solution.


Modified:
   trunk/ChangeLog
   trunk/patches/src680/sc-paste-on-enter.diff

Modified: trunk/patches/src680/sc-paste-on-enter.diff
==============================================================================
--- trunk/patches/src680/sc-paste-on-enter.diff	(original)
+++ trunk/patches/src680/sc-paste-on-enter.diff	Fri Mar 21 03:11:14 2008
@@ -234,7 +234,7 @@
          if( !rKeyCode.GetModifier() && (rKeyCode.GetCode() == KEY_F2) )
          {
              SC_MOD()->EndReference();
-@@ -2961,9 +3024,52 @@ void __EXPORT ScGridWindow::KeyInput(con
+@@ -2963,9 +3028,43 @@ void __EXPORT ScGridWindow::KeyInput(con
              return;
          }
      }
@@ -262,17 +262,8 @@
  	// wenn semi-Modeless-SfxChildWindow-Dialog oben, keine KeyInputs:
      else if( !pViewData->IsAnyFillMode() )
  	{
-+		USHORT nGroup = rKeyCode.GetGroup();
-+		// permit cursor keys
-+		if (!(nGroup == KEYGROUP_CURSOR || 
-+				// function keys
-+				nGroup == KEYGROUP_FKEYS || 
-+				// tab
-+				(nGroup == KEYGROUP_MISC && rKeyCode.GetCode() == KEY_TAB) ||
-+				// keyboard shortcuts
-+				(nGroup == KEYGROUP_ALPHA && rKeyCode.GetModifier())))
++		if (rKeyCode.GetCode() == KEY_ESCAPE)
 +		{
-+		 	// all else cancels paste mode.
 +			pViewData->SetPasteMode( FALSE );
 +			UpdateCursorOverlay();
 +		}
@@ -287,3 +278,33 @@
  		//	query for existing note marker before calling ViewShell's keyboard handling
  		//	which may remove the marker
  		BOOL bHadKeyMarker = ( pNoteMarker && pNoteMarker->IsByKeyboard() );
+Index: sc/source/ui/app/inputhdl.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/app/inputhdl.cxx,v
+retrieving revision 1.74.90.1
+diff -u -p -r1.74.90.1 inputhdl.cxx
+--- sc/source/ui/app/inputhdl.cxx	18 Jan 2008 11:52:55 -0000	1.74.90.1
++++ sc/source/ui/app/inputhdl.cxx	21 Mar 2008 02:40:54 -0000
+@@ -1703,6 +1703,7 @@ IMPL_LINK( ScInputHandler, ModifyHdl, vo
+ 
+ BOOL ScInputHandler::DataChanging( sal_Unicode cTyped, BOOL bFromCommand )		// return TRUE = new view created
+ {
++	pActiveViewSh->GetViewData()->SetPasteMode( FALSE );
+ 	bInOwnChange = TRUE;				// disable ModifyHdl (reset in DataChanged)
+ 
+ 	if ( eMode == SC_INPUT_NONE )
+Index: sc/source/ui/view/viewfunc.cxx
+===================================================================
+RCS file: /cvs/sc/sc/source/ui/view/viewfunc.cxx,v
+retrieving revision 1.38
+diff -u -p -r1.38 viewfunc.cxx
+--- sc/source/ui/view/viewfunc.cxx	2 Oct 2007 15:22:22 -0000	1.38
++++ sc/source/ui/view/viewfunc.cxx	21 Mar 2008 02:43:14 -0000
+@@ -1787,6 +1788,7 @@ void ScViewFunc::DeleteMulti( BOOL bRows
+ 
+ void ScViewFunc::DeleteContents( USHORT nFlags, BOOL bRecord )
+ {
++	GetViewData()->SetPasteMode( FALSE );
+ 	// nur wegen Matrix nicht editierbar? Attribute trotzdem ok
+ 	BOOL bOnlyNotBecauseOfMatrix;
+ 	BOOL bEditable = SelectionEditable( &bOnlyNotBecauseOfMatrix );



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]