>> Edit article
이름
제목
패스워드
1원짜리 팁란에 보시면... 모질란 패치 파일이 있을겁니다... 1035번에.... 하는 방법은 모질라 0.9 src.rpm 파일을 받아서 위의 패치를 적용 시키고 리빌드 해서 설치 하시면.. 갈리온 및 노틸러스에서 타이틀 한글표시와.. 한글 입력이 가능합니다... 그럼... diff -urN mozilla.orig/embedding/browser/gtk/src/gtkmozembed2.cpp mozilla/embedding/browser/gtk/src/gtkmozembed2.cpp --- mozilla.orig/embedding/browser/gtk/src/gtkmozembed2.cpp Tue Mar 20 09:00:48 2001 +++ mozilla/embedding/browser/gtk/src/gtkmozembed2.cpp Mon Apr 30 18:54:32 2001 @@ -25,6 +25,8 @@ #include "gtkmozembed.h" #include "gtkmozembedprivate.h" #include "gtkmozembed_internal.h" +#include "nsICharsetConverterManager.h" +#include "nsIPlatformCharset.h" #include "EmbedPrivate.h" #include "EmbedWindow.h" @@ -68,6 +70,36 @@ guint moz_embed_signals[LAST_SIGNAL] = { 0 }; +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; +} + // GtkObject + class-related functions GtkType @@ -657,7 +689,7 @@ embedPrivate = (EmbedPrivate *)embed->data; if (embedPrivate->mWindow) - retval = embedPrivate->mWindow->mJSStatus.ToNewCString(); + retval = getMbString(embedPrivate->mWindow->mJSStatus); return retval; } @@ -674,7 +706,7 @@ embedPrivate = (EmbedPrivate *)embed->data; if (embedPrivate->mWindow) - retval = embedPrivate->mWindow->mTitle.ToNewCString(); + retval = getMbString(embedPrivate->mWindow->mTitle); return retval; } @@ -690,7 +722,7 @@ embedPrivate = (EmbedPrivate *)embed->data; - retval = embedPrivate->mURI.ToNewCString(); + retval = getMbString(embedPrivate->mURI); return retval; } --- 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); }
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved