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->mWin
dow)
- retval = embedPrivate->mWindow->mJSStatus.ToNewCString();
+ retval = getMbString(embedPrivate->mWindow-
>mJSStatus);
return retval;
}
@@ -674,7 +706,7 @@
embedPrivate = (EmbedPrivate *)embed->data;
if (em
bedPrivate->mWindow)
- retval = embedPrivate->mWindow->mTitle.ToNewCString();
+ retval = getMbString(embedPriv
ate->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_u
ser_data(parent, &data);
if (GTK_IS_OBJECT(data)) {
root_win = (nsWidget *) gtk_object_get_data(GTK_OBJ
ECT(data), "nsWindow");
+ if (!root_win && candidate) return candidate;
if(root_win && root_win->mIsTo
plevel == PR_TRUE){
return root_win;
}
+ candidate = root_win;
}
parent = gdk_window_
get_parent(parent);
}