>> Delete No. 29930 article
No. 모질라를 패치를 해서 다시 리빌드 해야 됩니다..

등록 2001-05-10 20:49:00 By localhost     조회 2
이름 이카로스    

		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);
   }
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved