[ooo-build-commit] Branch 'ooo/OOO320' - 4 commits - transex3/source vcl/aqua vcl/source vcl/unx
Jan Holesovsky
kendy at kemper.freedesktop.org
Fri Dec 11 18:51:22 PST 2009
transex3/source/help/HelpLinker.cxx | 64 ++++++++++++++-----------
transex3/source/help/compilehelp.hxx | 1
vcl/aqua/inc/salframeview.h | 6 ++
vcl/aqua/source/a11y/documentfocuslistener.cxx | 4 -
vcl/aqua/source/window/salframeview.mm | 35 +++++++++++++
vcl/source/gdi/pdfwriter_impl.hxx | 3 +
vcl/unx/gtk/a11y/atktext.cxx | 20 +++++--
vcl/unx/gtk/window/gtkframe.cxx | 5 +
vcl/unx/inc/plugins/kde/kdedata.hxx | 2
vcl/unx/inc/salframe.h | 4 +
vcl/unx/kde/salnativewidgets-kde.cxx | 5 +
vcl/unx/kde4/KDESalFrame.cxx | 5 +
vcl/unx/kde4/KDESalFrame.hxx | 2
vcl/unx/source/printergfx/glyphset.cxx | 38 ++++++++++++--
vcl/unx/source/window/salframe.cxx | 10 ++-
15 files changed, 150 insertions(+), 54 deletions(-)
New commits:
commit bd01682b18fc74d02f941ae0a5640973067844b2
Author: Oliver Bolte <obo at openoffice.org>
Date: Fri Dec 11 12:15:00 2009 +0000
CWS-TOOLING: integrate CWS calc32stopper6
2009-12-09 15:52:59 +0100 ab r277768 : #i107075# Check any type in getTextMarkup()
2009-11-24 19:33:17 +0100 dr r277618 : #i107170# use current script for default cell style
2009-11-24 14:58:30 +0100 nn r277610 : #i107151# Compare/CompareMat: call Pop for svEmptyCell
2009-11-24 14:41:47 +0100 dr r277609 : #i107075# check interface pointer, XAxccessibleTextMarkup is not implemented in Calc
diff --git a/vcl/unx/gtk/a11y/atktext.cxx b/vcl/unx/gtk/a11y/atktext.cxx
index 201c651..0a97e5b 100644
--- a/vcl/unx/gtk/a11y/atktext.cxx
+++ b/vcl/unx/gtk/a11y/atktext.cxx
@@ -187,13 +187,21 @@ static accessibility::XAccessibleTextMarkup*
if( !pWrap->mpTextMarkup && pWrap->mpContext )
{
uno::Any any = pWrap->mpContext->queryInterface( accessibility::XAccessibleTextMarkup::static_type(NULL) );
- pWrap->mpTextMarkup = reinterpret_cast< accessibility::XAccessibleTextMarkup * > (any.pReserved);
- pWrap->mpTextMarkup->acquire();
+ /* Since this not a dedicated interface in Atk and thus has not
+ * been queried during wrapper initialization, we need to check
+ * the return value here.
+ */
+ if( typelib_TypeClass_INTERFACE == any.pType->eTypeClass )
+ {
+ pWrap->mpTextMarkup = reinterpret_cast< accessibility::XAccessibleTextMarkup * > (any.pReserved);
+ if( pWrap->mpTextMarkup )
+ pWrap->mpTextMarkup->acquire();
+ }
}
-
+
return pWrap->mpTextMarkup;
}
-
+
return NULL;
}
@@ -490,7 +498,7 @@ text_wrapper_get_run_attributes( AtkText *text,
accessibility::XAccessibleTextMarkup* pTextMarkup = getTextMarkup( text );
if( pTextMarkup )
{
- uno::Sequence< accessibility::TextSegment > aTextSegmentSeq =
+ uno::Sequence< accessibility::TextSegment > aTextSegmentSeq =
pTextMarkup->getTextMarkupAtIndex( offset, com::sun::star::text::TextMarkupType::SPELLCHECK );
if( aTextSegmentSeq.getLength() > 0 )
{
@@ -501,7 +509,7 @@ text_wrapper_get_run_attributes( AtkText *text,
// Get attribute run here if it hasn't been done before
if( !bOffsetsAreValid )
{
- accessibility::TextSegment aAttributeTextSegment =
+ accessibility::TextSegment aAttributeTextSegment =
pText->getTextAtIndex(offset, accessibility::AccessibleTextType::ATTRIBUTE_RUN);
*start_offset = aAttributeTextSegment.SegmentStart;
*end_offset = aAttributeTextSegment.SegmentEnd;
commit 8405218997f129311af6dc197f29d3c4e050a1e3
Author: Oliver Bolte <obo at openoffice.org>
Date: Fri Dec 11 11:17:18 2009 +0000
CWS-TOOLING: integrate CWS fwk131
2009-12-09 14:31:58 +0100 cd r277766 : #161124# Fix problem with cpu frequency as float. Added context class loader code to fix problems with certain Java versions.
2009-12-04 12:06:17 +0100 mav r277732 : #i107440# in case of problems with extensions the office libraries still should be usable
2009-12-03 18:22:08 +0100 ab r277716 : #i107283# Pass config help path as argument to compileExtensionHelp()
2009-12-03 18:21:16 +0100 ab r277715 : #i107283# Pass config help path as argument to compileExtensionHelp()
2009-12-03 10:35:18 +0100 cd r277707 : #161124# Update service tag implementation for additional fields
2009-11-30 14:04:15 +0100 ab r277674 : #i107263 Fixed service ctor search algorithm
2009-11-27 10:59:04 +0100 cd r277666 : #161124# Update service tag sources
2009-11-26 15:14:53 +0100 cd r277659 : #i107087# Remove event listener from tab window on TabWindowService dtor
2009-11-25 15:05:01 +0100 cd r277637 : #i107087# TabWindowService must set member pointer to zero on VCLEVENT_OBJECT_DYING. The window life time is controlled by the docking window! Adding missing RemoveEventListener call.
diff --git a/transex3/source/help/HelpLinker.cxx b/transex3/source/help/HelpLinker.cxx
index cf7fed4..845b410 100644
--- a/transex3/source/help/HelpLinker.cxx
+++ b/transex3/source/help/HelpLinker.cxx
@@ -114,35 +114,41 @@ void IndexerPreProcessor::processDocument
{
std::string aStdStr_EncodedDocPathURL = getEncodedPath( EncodedDocPath );
- xmlDocPtr resCaption = xsltApplyStylesheet( m_xsltStylesheetPtrCaption, doc, NULL );
- xmlNodePtr pResNodeCaption = resCaption->xmlChildrenNode;
- if( pResNodeCaption )
+ if( m_xsltStylesheetPtrCaption )
{
- fs::path fsCaptionPureTextFile_docURL = m_fsCaptionFilesDirName / aStdStr_EncodedDocPathURL;
- std::string aCaptionPureTextFileStr_docURL = fsCaptionPureTextFile_docURL.native_file_string();
- FILE* pFile_docURL = fopen( aCaptionPureTextFileStr_docURL.c_str(), "w" );
- if( pFile_docURL )
+ xmlDocPtr resCaption = xsltApplyStylesheet( m_xsltStylesheetPtrCaption, doc, NULL );
+ xmlNodePtr pResNodeCaption = resCaption->xmlChildrenNode;
+ if( pResNodeCaption )
{
- fprintf( pFile_docURL, "%s\n", pResNodeCaption->content );
- fclose( pFile_docURL );
+ fs::path fsCaptionPureTextFile_docURL = m_fsCaptionFilesDirName / aStdStr_EncodedDocPathURL;
+ std::string aCaptionPureTextFileStr_docURL = fsCaptionPureTextFile_docURL.native_file_string();
+ FILE* pFile_docURL = fopen( aCaptionPureTextFileStr_docURL.c_str(), "w" );
+ if( pFile_docURL )
+ {
+ fprintf( pFile_docURL, "%s\n", pResNodeCaption->content );
+ fclose( pFile_docURL );
+ }
}
+ xmlFreeDoc(resCaption);
}
- xmlFreeDoc(resCaption);
- xmlDocPtr resContent = xsltApplyStylesheet( m_xsltStylesheetPtrContent, doc, NULL );
- xmlNodePtr pResNodeContent = resContent->xmlChildrenNode;
- if( pResNodeContent )
+ if( m_xsltStylesheetPtrContent )
{
- fs::path fsContentPureTextFile_docURL = m_fsContentFilesDirName / aStdStr_EncodedDocPathURL;
- std::string aContentPureTextFileStr_docURL = fsContentPureTextFile_docURL.native_file_string();
- FILE* pFile_docURL = fopen( aContentPureTextFileStr_docURL.c_str(), "w" );
- if( pFile_docURL )
+ xmlDocPtr resContent = xsltApplyStylesheet( m_xsltStylesheetPtrContent, doc, NULL );
+ xmlNodePtr pResNodeContent = resContent->xmlChildrenNode;
+ if( pResNodeContent )
{
- fprintf( pFile_docURL, "%s\n", pResNodeContent->content );
- fclose( pFile_docURL );
+ fs::path fsContentPureTextFile_docURL = m_fsContentFilesDirName / aStdStr_EncodedDocPathURL;
+ std::string aContentPureTextFileStr_docURL = fsContentPureTextFile_docURL.native_file_string();
+ FILE* pFile_docURL = fopen( aContentPureTextFileStr_docURL.c_str(), "w" );
+ if( pFile_docURL )
+ {
+ fprintf( pFile_docURL, "%s\n", pResNodeContent->content );
+ fclose( pFile_docURL );
+ }
}
+ xmlFreeDoc(resContent);
}
- xmlFreeDoc(resContent);
}
struct Data
@@ -233,8 +239,9 @@ public:
class HelpLinker
{
public:
- void main(std::vector<std::string> &args, std::string* pExtensionPath = NULL )
- throw( HelpProcessingException );
+ void main(std::vector<std::string> &args,
+ std::string* pExtensionPath = NULL, const rtl::OUString* pOfficeHelpPath = NULL )
+ throw( HelpProcessingException );
HelpLinker()
: init(true)
@@ -739,21 +746,21 @@ void HelpLinker::link() throw( HelpProcessingException )
}
-void HelpLinker::main(std::vector<std::string> &args, std::string* pExtensionPath)
- throw( HelpProcessingException )
+void HelpLinker::main( std::vector<std::string> &args,
+ std::string* pExtensionPath, const rtl::OUString* pOfficeHelpPath )
+ throw( HelpProcessingException )
{
rtl::OUString aOfficeHelpPath;
bExtensionMode = false;
- if( pExtensionPath && pExtensionPath->length() > 0 )
+ if( pExtensionPath && pExtensionPath->length() > 0 && pOfficeHelpPath )
{
helpFiles.clear();
bExtensionMode = true;
extensionPath = *pExtensionPath;
sourceRoot = fs::path(extensionPath);
- aOfficeHelpPath = rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("$OOO_BASE_DIR/help") );
- rtl::Bootstrap::expandMacros( aOfficeHelpPath );
+ aOfficeHelpPath = *pOfficeHelpPath;
}
if (args.size() > 0 && args[0][0] == '@')
{
@@ -1053,6 +1060,7 @@ HelpProcessingErrorInfo& HelpProcessingErrorInfo::operator=( const struct HelpPr
// Returns true in case of success, false in case of error
HELPLINKER_DLLPUBLIC bool compileExtensionHelp
(
+ const rtl::OUString& aOfficeHelpPath,
const rtl::OUString& aExtensionName,
const rtl::OUString& aExtensionLanguageRoot,
sal_Int32 nXhpFileCount, const rtl::OUString* pXhpFiles,
@@ -1095,7 +1103,7 @@ HELPLINKER_DLLPUBLIC bool compileExtensionHelp
try
{
HelpLinker* pHelpLinker = new HelpLinker();
- pHelpLinker->main( args,&aStdStrExtensionPath );
+ pHelpLinker->main( args, &aStdStrExtensionPath, &aOfficeHelpPath );
delete pHelpLinker;
}
catch( const HelpProcessingException& e )
diff --git a/transex3/source/help/compilehelp.hxx b/transex3/source/help/compilehelp.hxx
index e371fca..560ad8d 100644
--- a/transex3/source/help/compilehelp.hxx
+++ b/transex3/source/help/compilehelp.hxx
@@ -71,6 +71,7 @@ struct HelpProcessingErrorInfo
// Returns true in case of success, false in case of error
HELPLINKER_DLLPUBLIC bool compileExtensionHelp
(
+ const rtl::OUString& aOfficeHelpPath,
const rtl::OUString& aExtensionName,
const rtl::OUString& aExtensionLanguageRoot,
sal_Int32 nXhpFileCount, const rtl::OUString* pXhpFiles,
commit b17a22c131ad323b6ea2862842637d9ffd0015cd
Author: Oliver Bolte <obo at openoffice.org>
Date: Fri Dec 11 10:57:41 2009 +0000
CWS-TOOLING: integrate CWS ooo32gsl09
2009-12-07 16:21:13 +0100 tl r277744 : #i105988# accessibility crash
2009-12-07 14:59:17 +0100 od r277743 : #i107365# method <ViewShell::ImplEndAction(..)>
- take care of transparent child windows after direct paint.
2009-12-07 12:22:08 +0100 fs r277739 : #i107485#
2009-12-04 15:28:51 +0100 pl r277736 : #i107358# fix uninitialized value (thanks cmc)
2009-12-04 15:24:57 +0100 pl r277735 : #i106833# fix subset font encoding
diff --git a/vcl/source/gdi/pdfwriter_impl.hxx b/vcl/source/gdi/pdfwriter_impl.hxx
index 2b179e8..bffc625 100644
--- a/vcl/source/gdi/pdfwriter_impl.hxx
+++ b/vcl/source/gdi/pdfwriter_impl.hxx
@@ -679,6 +679,7 @@ private:
m_aOverlineColor( COL_TRANSPARENT ),
m_nAntiAlias( 1 ),
m_nLayoutMode( 0 ),
+ m_aDigitLanguage( 0 ),
m_nTransparentPercent( 0 ),
m_nFlags( 0xffff ),
m_nUpdateFlags( 0xffff )
@@ -693,6 +694,7 @@ private:
m_aClipRegion( rState.m_aClipRegion ),
m_nAntiAlias( rState.m_nAntiAlias ),
m_nLayoutMode( rState.m_nLayoutMode ),
+ m_aDigitLanguage( rState.m_aDigitLanguage ),
m_nTransparentPercent( rState.m_nTransparentPercent ),
m_nFlags( rState.m_nFlags ),
m_nUpdateFlags( rState.m_nUpdateFlags )
@@ -710,6 +712,7 @@ private:
m_aClipRegion = rState.m_aClipRegion;
m_nAntiAlias = rState.m_nAntiAlias;
m_nLayoutMode = rState.m_nLayoutMode;
+ m_aDigitLanguage = rState.m_aDigitLanguage;
m_nTransparentPercent = rState.m_nTransparentPercent;
m_nFlags = rState.m_nFlags;
m_nUpdateFlags = rState.m_nUpdateFlags;
diff --git a/vcl/unx/source/printergfx/glyphset.cxx b/vcl/unx/source/printergfx/glyphset.cxx
index 24ca791..9af9c66 100644
--- a/vcl/unx/source/printergfx/glyphset.cxx
+++ b/vcl/unx/source/printergfx/glyphset.cxx
@@ -46,6 +46,7 @@
#include <set>
#include <map>
+#include <algorithm>
using namespace vcl;
using namespace psp;
@@ -785,6 +786,17 @@ GlyphSet::PSUploadEncoding(osl::File* pOutFile, PrinterGfx &rGfx)
return sal_True;
}
+struct EncEntry
+{
+ sal_uChar aEnc;
+ long aGID;
+
+ EncEntry() : aEnc( 0 ), aGID( 0 ) {}
+
+ bool operator<( const EncEntry& rRight ) const
+ { return aEnc < rRight.aEnc; }
+};
+
static void CreatePSUploadableFont( TrueTypeFont* pSrcFont, FILE* pTmpFile,
const char* pGlyphSetName, int nGlyphCount,
/*const*/ sal_uInt16* pRequestedGlyphs, /*const*/ sal_uChar* pEncoding,
@@ -795,18 +807,30 @@ static void CreatePSUploadableFont( TrueTypeFont* pSrcFont, FILE* pTmpFile,
int nTargetMask = FontSubsetInfo::TYPE1_PFA | FontSubsetInfo::TYPE3_FONT;
if( bAllowType42 )
nTargetMask |= FontSubsetInfo::TYPE42_FONT;
+
+ std::vector< EncEntry > aSorted( nGlyphCount, EncEntry() );
+ for( int i = 0; i < nGlyphCount; i++ )
+ {
+ aSorted[i].aEnc = pEncoding[i];
+ aSorted[i].aGID = pRequestedGlyphs[i];
+ }
+
+ std::stable_sort( aSorted.begin(), aSorted.end() );
+
+ std::vector< sal_uChar > aEncoding( nGlyphCount );
+ std::vector< long > aRequestedGlyphs( nGlyphCount );
+ for( int i = 0; i < nGlyphCount; i++ )
+ {
+ aEncoding[i] = aSorted[i].aEnc;
+ aRequestedGlyphs[i] = aSorted[i].aGID;
+ }
+
FontSubsetInfo aInfo;
aInfo.LoadFont( pSrcFont );
-#if 1 // TODO: remove 16bit->long conversion when input args has been changed
- long aRequestedGlyphs[256];
- for( int i = 0; i < nGlyphCount; ++i )
- aRequestedGlyphs[i] = pRequestedGlyphs[i];
-#endif
-
aInfo.CreateFontSubset( nTargetMask, pTmpFile, pGlyphSetName,
- aRequestedGlyphs, pEncoding, nGlyphCount, NULL );
+ &aRequestedGlyphs[0], &aEncoding[0], nGlyphCount, NULL );
}
sal_Bool
commit 8adb2202a6e002619b0d49646dcfeac0a16691df
Author: Oliver Bolte <obo at openoffice.org>
Date: Fri Dec 11 10:38:18 2009 +0000
CWS-TOOLING: integrate CWS ooo32gsl08
2009-11-30 18:15:30 +0100 pl r277678 : #i107248# cleanup updateGraphics
2009-11-30 17:03:42 +0100 pl r277677 : #i107080# invalidate is needed
2009-11-30 16:58:46 +0100 pl r277676 : #i107322# fix an access to dead memory
2009-11-27 18:39:26 +0100 thb r277670 : #i107248# Free render Picture before killing underlying drawable
2009-11-26 11:50:48 +0100 pl r277652 : #i107204# fix some native shortcuts on Snow Leopard
2009-11-25 17:04:16 +0100 cl r277638 : fixed typo
2009-11-25 13:34:59 +0100 pl r277634 : revert earlier ineffective change
2009-11-24 13:04:19 +0100 pl r277607 : #i107080# autorelease pool only on first yield
diff --git a/vcl/aqua/inc/salframeview.h b/vcl/aqua/inc/salframeview.h
index 4a26dab..1b19407 100755
--- a/vcl/aqua/inc/salframeview.h
+++ b/vcl/aqua/inc/salframeview.h
@@ -132,7 +132,11 @@
-(void)moveWordForwardAndModifySelection: (id)aSender;
-(void)moveWordRightAndModifySelection: (id)aSender;
-(void)moveToEndOfLine: (id)aSender;
+-(void)moveToRightEndOfLine: (id)aSender;
+-(void)moveToLeftEndOfLine: (id)aSender;
-(void)moveToEndOfLineAndModifySelection: (id)aSender;
+-(void)moveToRightEndOfLineAndModifySelection: (id)aSender;
+-(void)moveToLeftEndOfLineAndModifySelection: (id)aSender;
-(void)moveToBeginningOfLine: (id)aSender;
-(void)moveToBeginningOfLineAndModifySelection: (id)aSender;
-(void)moveToEndOfParagraph: (id)aSender;
@@ -144,8 +148,10 @@
-(void)moveParagraphBackward: (id)aSender;
-(void)moveParagraphBackwardAndModifySelection: (id)aSender;
-(void)moveToEndOfDocument: (id)aSender;
+-(void)scrollToEndOfDocument: (id)aSender;
-(void)moveToEndOfDocumentAndModifySelection: (id)aSender;
-(void)moveToBeginningOfDocument: (id)aSender;
+-(void)scrollToBeginningOfDocument: (id)aSender;
-(void)moveToBeginningOfDocumentAndModifySelection: (id)aSender;
-(void)insertNewline: (id)aSender;
-(void)deleteBackward: (id)aSender;
diff --git a/vcl/aqua/source/a11y/documentfocuslistener.cxx b/vcl/aqua/source/a11y/documentfocuslistener.cxx
index 93e1530..f18eb35 100644
--- a/vcl/aqua/source/a11y/documentfocuslistener.cxx
+++ b/vcl/aqua/source/a11y/documentfocuslistener.cxx
@@ -102,12 +102,12 @@ DocumentFocusListener::notifyEvent( const AccessibleEventObject& aEvent )
break;
case AccessibleEventId::INVALIDATE_ALL_CHILDREN:
-/* {
+ {
Reference< XAccessible > xAccessible( getAccessible(aEvent) );
detachRecursive(xAccessible);
attachRecursive(xAccessible);
}
-*/
+
OSL_TRACE( "Invalidate all children called\n" );
break;
default:
diff --git a/vcl/aqua/source/window/salframeview.mm b/vcl/aqua/source/window/salframeview.mm
index a1d94a1..b008ef3 100755
--- a/vcl/aqua/source/window/salframeview.mm
+++ b/vcl/aqua/source/window/salframeview.mm
@@ -1061,21 +1061,41 @@ private:
[self sendKeyInputAndReleaseToFrame: com::sun::star::awt::Key::MOVE_TO_END_OF_LINE character: 0 modifiers: 0];
}
+-(void)moveToRightEndOfLine: (id)aSender
+{
+ [self sendKeyInputAndReleaseToFrame: com::sun::star::awt::Key::MOVE_TO_END_OF_LINE character: 0 modifiers: 0];
+}
+
-(void)moveToEndOfLineAndModifySelection: (id)aSender
{
[self sendKeyInputAndReleaseToFrame: com::sun::star::awt::Key::SELECT_TO_END_OF_LINE character: 0 modifiers: 0];
}
+-(void)moveToRightEndOfLineAndModifySelection: (id)aSender
+{
+ [self sendKeyInputAndReleaseToFrame: com::sun::star::awt::Key::SELECT_TO_END_OF_LINE character: 0 modifiers: 0];
+}
+
-(void)moveToBeginningOfLine: (id)aSender
{
[self sendKeyInputAndReleaseToFrame: com::sun::star::awt::Key::MOVE_TO_BEGIN_OF_LINE character: 0 modifiers: 0];
}
+-(void)moveToLeftEndOfLine: (id)aSender
+{
+ [self sendKeyInputAndReleaseToFrame: com::sun::star::awt::Key::MOVE_TO_BEGIN_OF_LINE character: 0 modifiers: 0];
+}
+
-(void)moveToBeginningOfLineAndModifySelection: (id)aSender
{
[self sendKeyInputAndReleaseToFrame: com::sun::star::awt::Key::SELECT_TO_BEGIN_OF_LINE character: 0 modifiers: 0];
}
+-(void)moveToLeftEndOfLineAndModifySelection: (id)aSender
+{
+ [self sendKeyInputAndReleaseToFrame: com::sun::star::awt::Key::SELECT_TO_BEGIN_OF_LINE character: 0 modifiers: 0];
+}
+
-(void)moveToEndOfParagraph: (id)aSender
{
[self sendKeyInputAndReleaseToFrame: com::sun::star::awt::Key::MOVE_TO_END_OF_PARAGRAPH character: 0 modifiers: 0];
@@ -1121,6 +1141,12 @@ private:
[self sendKeyInputAndReleaseToFrame: com::sun::star::awt::Key::MOVE_TO_END_OF_DOCUMENT character: 0 modifiers: 0];
}
+-(void)scrollToEndOfDocument: (id)aSender
+{
+ // this is not exactly what we should do, but it makes "End" and "Shift-End" behave consistent
+ [self sendKeyInputAndReleaseToFrame: com::sun::star::awt::Key::MOVE_TO_END_OF_DOCUMENT character: 0 modifiers: 0];
+}
+
-(void)moveToEndOfDocumentAndModifySelection: (id)aSender
{
[self sendKeyInputAndReleaseToFrame: com::sun::star::awt::Key::SELECT_TO_END_OF_DOCUMENT character: 0 modifiers: 0];
@@ -1131,6 +1157,12 @@ private:
[self sendKeyInputAndReleaseToFrame: com::sun::star::awt::Key::MOVE_TO_BEGIN_OF_DOCUMENT character: 0 modifiers: 0];
}
+-(void)scrollToBeginningOfDocument: (id)aSender
+{
+ // this is not exactly what we should do, but it makes "Home" and "Shift-Home" behave consistent
+ [self sendKeyInputAndReleaseToFrame: com::sun::star::awt::Key::MOVE_TO_BEGIN_OF_DOCUMENT character: 0 modifiers: 0];
+}
+
-(void)moveToBeginningOfDocumentAndModifySelection: (id)aSender
{
[self sendKeyInputAndReleaseToFrame: com::sun::star::awt::Key::SELECT_TO_BEGIN_OF_DOCUMENT character: 0 modifiers: 0];
@@ -1458,6 +1490,9 @@ private:
{
if( AquaSalFrame::isAlive( mpFrame ) )
{
+ #if OSL_DEBUG_LEVEL > 1
+ // fprintf( stderr, "SalFrameView: doCommandBySelector %s\n", (char*)aSelector );
+ #endif
if( (mpFrame->mnICOptions & SAL_INPUTCONTEXT_TEXT) != 0 &&
aSelector != NULL && [self respondsToSelector: aSelector] )
{
diff --git a/vcl/unx/gtk/window/gtkframe.cxx b/vcl/unx/gtk/window/gtkframe.cxx
index e658455..05714da 100644
--- a/vcl/unx/gtk/window/gtkframe.cxx
+++ b/vcl/unx/gtk/window/gtkframe.cxx
@@ -2374,6 +2374,11 @@ void GtkSalFrame::createNewWindow( XLIB_Window aNewParent, bool bXEmbed, int nSc
}
}
+ // free xrender resources
+ for( unsigned int i = 0; i < sizeof(m_aGraphics)/sizeof(m_aGraphics[0]); i++ )
+ if( m_aGraphics[i].bInUse )
+ m_aGraphics[i].pGraphics->SetDrawable( None, m_nScreen );
+
// first deinit frame
if( m_pIMHandler )
{
diff --git a/vcl/unx/inc/plugins/kde/kdedata.hxx b/vcl/unx/inc/plugins/kde/kdedata.hxx
index 723562d..a0c4064 100644
--- a/vcl/unx/inc/plugins/kde/kdedata.hxx
+++ b/vcl/unx/inc/plugins/kde/kdedata.hxx
@@ -75,7 +75,7 @@ public:
virtual SalGraphics* GetGraphics();
virtual void ReleaseGraphics( SalGraphics *pGraphics );
- virtual void updateGraphics();
+ virtual void updateGraphics( bool bClear );
virtual void UpdateSettings( AllSettings& rSettings );
virtual void Show( BOOL bVisible, BOOL bNoActivate );
};
diff --git a/vcl/unx/inc/salframe.h b/vcl/unx/inc/salframe.h
index 6cc0617..f26e4ef 100644
--- a/vcl/unx/inc/salframe.h
+++ b/vcl/unx/inc/salframe.h
@@ -212,7 +212,9 @@ public:
virtual SalGraphics* GetGraphics();
virtual void ReleaseGraphics( SalGraphics* pGraphics );
- virtual void updateGraphics();
+ // call with true to clear graphics (setting None as drawable)
+ // call with false to setup graphics with window (GetWindow())
+ virtual void updateGraphics( bool bClear );
virtual BOOL PostEvent( void* pData );
diff --git a/vcl/unx/kde/salnativewidgets-kde.cxx b/vcl/unx/kde/salnativewidgets-kde.cxx
index e19c589..f93d834 100644
--- a/vcl/unx/kde/salnativewidgets-kde.cxx
+++ b/vcl/unx/kde/salnativewidgets-kde.cxx
@@ -2073,12 +2073,13 @@ void KDESalFrame::ReleaseGraphics( SalGraphics *pGraphics )
}
}
-void KDESalFrame::updateGraphics()
+void KDESalFrame::updateGraphics( bool bClear )
{
+ Drawable aDrawable = bClear ? None : GetWindow();
for( int i = 0; i < nMaxGraphics; i++ )
{
if( m_aGraphics[i].bInUse )
- m_aGraphics[i].pGraphics->SetDrawable( GetWindow(), GetScreenNumber() );
+ m_aGraphics[i].pGraphics->SetDrawable( aDrawable, GetScreenNumber() );
}
}
diff --git a/vcl/unx/kde4/KDESalFrame.cxx b/vcl/unx/kde4/KDESalFrame.cxx
index 33f4ab5..908202c 100644
--- a/vcl/unx/kde4/KDESalFrame.cxx
+++ b/vcl/unx/kde4/KDESalFrame.cxx
@@ -369,12 +369,13 @@ void KDESalFrame::ReleaseGraphics( SalGraphics *pGraphics )
}
}
-void KDESalFrame::updateGraphics()
+void KDESalFrame::updateGraphics( bool bClear )
{
+ Drawable aDrawable = bClear ? None : GetWindow();
for( int i = 0; i < nMaxGraphics; i++ )
{
if( m_aGraphics[i].bInUse )
- m_aGraphics[i].pGraphics->SetDrawable( GetWindow(), GetScreenNumber() );
+ m_aGraphics[i].pGraphics->SetDrawable( aDrawable, GetScreenNumber() );
}
}
diff --git a/vcl/unx/kde4/KDESalFrame.hxx b/vcl/unx/kde4/KDESalFrame.hxx
index e24b824..5aba4bc 100644
--- a/vcl/unx/kde4/KDESalFrame.hxx
+++ b/vcl/unx/kde4/KDESalFrame.hxx
@@ -52,7 +52,7 @@ class KDESalFrame : public X11SalFrame
virtual SalGraphics* GetGraphics();
virtual void ReleaseGraphics( SalGraphics *pGraphics );
- virtual void updateGraphics();
+ virtual void updateGraphics( bool bClear );
virtual void UpdateSettings( AllSettings& rSettings );
virtual void Show( BOOL bVisible, BOOL bNoActivate );
};
\ No newline at end of file
diff --git a/vcl/unx/source/window/salframe.cxx b/vcl/unx/source/window/salframe.cxx
index 3a064ab..7e61602 100644
--- a/vcl/unx/source/window/salframe.cxx
+++ b/vcl/unx/source/window/salframe.cxx
@@ -930,12 +930,13 @@ void X11SalFrame::ReleaseGraphics( SalGraphics *pGraphics )
pGraphics_ = NULL;
}
-void X11SalFrame::updateGraphics()
+void X11SalFrame::updateGraphics( bool bClear )
{
+ Drawable aDrawable = bClear ? None : GetWindow();
if( pGraphics_ )
- pGraphics_->SetDrawable( GetWindow(), m_nScreen );
+ pGraphics_->SetDrawable( aDrawable, m_nScreen );
if( pFreeGraphics_ )
- pFreeGraphics_->SetDrawable( GetWindow(), m_nScreen );
+ pFreeGraphics_->SetDrawable( aDrawable, m_nScreen );
}
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
@@ -2726,6 +2727,7 @@ void X11SalFrame::createNewWindow( XLIB_Window aNewParent, int nScreen )
}
// first deinit frame
+ updateGraphics(true);
if( mpInputContext )
{
mpInputContext->UnsetICFocus( this );
@@ -2748,7 +2750,7 @@ void X11SalFrame::createNewWindow( XLIB_Window aNewParent, int nScreen )
Init( nStyle_ & ~SAL_FRAME_STYLE_PLUG, nScreen, NULL, true );
// update graphics if necessary
- updateGraphics();
+ updateGraphics(false);
if( m_aTitle.Len() )
SetTitle( m_aTitle );
More information about the ooo-build-commit
mailing list