View | Details | Raw Unified | Return to bug 119204
Collapse All | Expand All

(-)shell/source/unix/sysshell/systemshell.cxx (-1 / +8 lines)
Lines 72-79 Link Here
72
const rtl::OUString LIB_RECENT_FILE = UNISTRING("librecentfile.so");
72
const rtl::OUString LIB_RECENT_FILE = UNISTRING("librecentfile.so");
73
const rtl::OUString DEFAULT_CONTEXT = UNISTRING("DefaultContext");
73
const rtl::OUString DEFAULT_CONTEXT = UNISTRING("DefaultContext");
74
74
75
#ifdef GTK_IS_BROKEN
75
void * (* sym_gtk_recent_manager_get_default) () = NULL;
76
void * (* sym_gtk_recent_manager_get_default) () = NULL;
76
void   (* sym_gtk_recent_manager_add_item) (void *, const char *) = NULL;
77
void   (* sym_gtk_recent_manager_add_item) (void *, const char *) = NULL;
78
#endif
77
79
78
// We need to re-encode file urls because osl_getFileURLFromSystemPath converts
80
// We need to re-encode file urls because osl_getFileURLFromSystemPath converts
79
// to UTF-8 before encoding non ascii characters, which is not what other apps expect.
81
// to UTF-8 before encoding non ascii characters, which is not what other apps expect.
Lines 114-119 Link Here
114
        return url;
116
        return url;
115
    }
117
    }
116
    
118
    
119
#ifdef GTK_IS_BROKEN
117
    bool init_recent_manager_api()
120
    bool init_recent_manager_api()
118
    {
121
    {
119
        oslModule hDefault;
122
        oslModule hDefault;
Lines 128-151 Link Here
128
        bool ret = (NULL != sym_gtk_recent_manager_get_default) && (NULL != sym_gtk_recent_manager_add_item);
131
        bool ret = (NULL != sym_gtk_recent_manager_get_default) && (NULL != sym_gtk_recent_manager_add_item);
129
        return ret;
132
        return ret;
130
    }
133
    }
131
            
134
#endif
132
    
135
    
133
    //##############################
136
    //##############################
134
    void AddToRecentDocumentList(const rtl::OUString& aFileUrl, const rtl::OUString& aMimeType)
137
    void AddToRecentDocumentList(const rtl::OUString& aFileUrl, const rtl::OUString& aMimeType)
135
    {
138
    {
139
#ifdef GTK_IS_BROKEN
136
        static bool bIsRecentManagerPresent = init_recent_manager_api();
140
        static bool bIsRecentManagerPresent = init_recent_manager_api();
141
#endif
137
        
142
        
138
        // Convert file URL for external use (see above)
143
        // Convert file URL for external use (see above)
139
        rtl::OUString externalUrl = translateToExternalUrl(aFileUrl);
144
        rtl::OUString externalUrl = translateToExternalUrl(aFileUrl);
140
        if( 0 == externalUrl.getLength() )
145
        if( 0 == externalUrl.getLength() )
141
            externalUrl = aFileUrl;
146
            externalUrl = aFileUrl;
142
        
147
        
148
#ifdef GTK_IS_BROKEN
143
        if( bIsRecentManagerPresent )
149
        if( bIsRecentManagerPresent )
144
        {
150
        {
145
            void * recent_manager = sym_gtk_recent_manager_get_default();
151
            void * recent_manager = sym_gtk_recent_manager_get_default();
146
            sym_gtk_recent_manager_add_item(recent_manager, rtl::OUStringToOString(aFileUrl, RTL_TEXTENCODING_UTF8).getStr());
152
            sym_gtk_recent_manager_add_item(recent_manager, rtl::OUStringToOString(aFileUrl, RTL_TEXTENCODING_UTF8).getStr());
147
        }
153
        }
148
        else
154
        else
155
#endif
149
        {
156
        {
150
            rtl::OUString librecentfile_url = get_absolute_library_url(LIB_RECENT_FILE);
157
            rtl::OUString librecentfile_url = get_absolute_library_url(LIB_RECENT_FILE);

Return to bug 119204