>> Edit article
이름
제목
패스워드
0.8.1부터 gtkmozembed2.cpp를 사용하도록 되어 있습니다. GtkMozEmbedChrome.cpp를 패치해도 소용이 없는 것 같습니다. 지금 0.8.1을 패치하여 빌드중입니다. 테스트한 결과는 잠시후 다시 쓰도록 하겠습니다. from Marzio Lee : : 패치는 아래 URL에서 다운받으실 수 있습니다. : : : : <A HREF="http://www.zuguri.org/linux/mozilla/mozilla-title2.patch">http://www.zuguri.org/linux/mozilla/mozilla-title2.patch</A> : : : 0.8.1 버전은 소스의 라인 수가 변경 되어서 실제 패치 화일 중에 가르키는 라인 : : 수만 조정하면 패치는 가능합니다. : : gcc 2.95.3으로 패치를 적용해서 만든 mozilla가 있기는 합니다만 galeon이 아직 : : 0.8.1을 지원하지 않아서 잘 작동하는지 확인드릴 수는 없을 것 같고, : : 제가 조정한 0.8.1용 패치는 다음과 같습니다. : : 도움이 되었길 빕니다. : : --- mozilla/widget/src/gtk/nsWidget.cpp.orig Tue Nov 14 14:06:29 2000 : +++ mozilla/widget/src/gtk/nsWidget.cpp Tue Nov 14 14:07:44 2000 : @@ -3106,15 +3106,18 @@ : { : GdkWindow *parent = gdk_window_get_parent(gdkWindow); : nsWidget *root_win = nsnull; : + nsWidget *candidate = nsnull; : gpointer data; : : while (parent) { : gdk_window_get_user_data(parent, &data); : if (GTK_IS_OBJECT(data)) { : root_win = (nsWidget *) gtk_object_get_data(GTK_OBJECT(data), "nsWindow"); : + if (!root_win && candidate) return candidate; : if(root_win && root_win->mIsToplevel == PR_TRUE){ : return root_win; : } : + candidate = root_win; : } : parent = gdk_window_get_parent(parent); : } : --- mozilla/embedding/browser/gtk/src/GtkMozEmbedChrome.cpp.orig Mon Nov 13 11:46:51 2000 : +++ mozilla/embedding/browser/gtk/src/GtkMozEmbedChrome.cpp Mon Nov 13 13:56:07 2000 : @@ -21,6 +21,8 @@ : : #include "GtkMozEmbedChrome.h" : #include "GtkMozEmbedStream.h" : +#include "nsICharsetConverterManager.h" : +#include "nsIPlatformCharset.h" : #include "nsCWebBrowser.h" : #include "nsIURI.h" : #include "nsNetUtil.h" : @@ -82,6 +84,36 @@ : sBrowsers->RemoveElement((void *)this); : } : : +char * : +getMbString(nsString uni) : +{ : + nsresult rv; : + char *platformText = 0; : + PRInt32 platformLen; : + static nsCOMPtr<nsIUnicodeEncoder> encoder = 0; : + : + if (!encoder) { : + nsAutoString platformCharset; : + nsCOMPtr <nsIPlatformCharset> platformCharsetService = do_GetService(NS_PLATFORMCHARSET_CONTRACTID, &rv); : + if (NS_SUCCEEDED(rv)) rv = platformCharsetService->GetCharset(kPlatformCharsetSel_Menu, platformCharset); : + if (NS_FAILED(rv)) : + platformCharset.AssignWithConversion("ISO-8859-1"); : + NS_WITH_SERVICE(nsICharsetConverterManager, ccm, NS_CHARSETCONVERTERMANAGER_CONTRACTID, &rv); : + rv = ccm->GetUnicodeEncoder(&platformCharset, getter_AddRefs(encoder)); : + } : + : + PRInt32 len = uni.Length(); : + encoder->GetMaxLength(uni.GetUnicode(), len, &platformLen); : + if (platformLen) { : + platformText = NS_REINTERPRET_CAST(char*, nsMemory::Alloc(platformLen + sizeof(char))); : + if (platformText) { : + rv = encoder->Convert(uni.GetUnicode(), &len, platformText, &platformLen); : + (platformText)[platformLen] = ' '; : + } : + } : + return platformText; : +} : + : // nsISupports interface : : NS_IMPL_ADDREF(GtkMozEmbedChrome) : @@ -372,7 +404,7 @@ : case STATUS_SCRIPT: : { : nsString jsStatusString(status); : - mJSStatus = jsStatusString.ToNewCString(); : + mJSStatus = getMbString(jsStatusString); : PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("js status is %s", (const char *)mJSStatus)); : // let our chrome listener know that the JS message has changed. : if (mChromeListener) : @@ -385,7 +417,7 @@ : case STATUS_LINK: : { : nsString linkMessageString(status); : - mLinkMessage = linkMessageString.ToNewCString(); : + mLinkMessage = getMbString(linkMessageString); : PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("message is %s", (const char *)mLinkMessage)); : // notify the chrome listener that the link message has changed : if (mChromeListener) : @@ -811,7 +843,7 @@ : PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("GtkMozEmbedChrome::SetTitle")); : nsString newTitleString(aTitle); : mTitleUnicode = aTitle; : - mTitle = newTitleString.ToNewCString(); : + mTitle = getMbString(newTitleString); : PR_LOG(mozEmbedLm, PR_LOG_DEBUG, ("title is %s", (const char *)mTitle)); : // let the listener know that the title has changed : if (mChromeListener) : : -- : 내 서명--이 곳에 서명을 적어주십시오. "서명"
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved