diff options
author | JW(Shinichi Abe) <shin1.abe@nifty.com> | 2022-12-02 13:02:42 +0700 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2022-12-03 09:09:21 +0700 |
commit | 5360f04319be764f666fac8c5baadacbac2b459b (patch) | |
tree | 81efe2f0b79da4dcf7d736d6d383026f037a01e0 /misc/fcitx5-mozc/0008-renderer-Convert-Gtk2-to-Gtk3.patch | |
parent | ab354595cfb51296e1a50fc01d369388ada66fdd (diff) |
misc/fcitx5-mozc: Added (Mozc engine for fcitx5).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'misc/fcitx5-mozc/0008-renderer-Convert-Gtk2-to-Gtk3.patch')
-rw-r--r-- | misc/fcitx5-mozc/0008-renderer-Convert-Gtk2-to-Gtk3.patch | 229 |
1 files changed, 229 insertions, 0 deletions
diff --git a/misc/fcitx5-mozc/0008-renderer-Convert-Gtk2-to-Gtk3.patch b/misc/fcitx5-mozc/0008-renderer-Convert-Gtk2-to-Gtk3.patch new file mode 100644 index 0000000000000..19b55f0f3cf2e --- /dev/null +++ b/misc/fcitx5-mozc/0008-renderer-Convert-Gtk2-to-Gtk3.patch @@ -0,0 +1,229 @@ +From b9ae4c57de95a7d73640cce5776540d8d841b0c2 Mon Sep 17 00:00:00 2001 +From: Nobuhiro Iwamatsu <iwamatsu@debian.org> +Date: Fri, 6 May 2022 16:16:30 +0900 +Subject: [PATCH] renderer: Convert Gtk2 to Gtk3 + +Description: renderer: Convert Gtk2 to Gtk3 +Forwarded: Not need +Last-Update: 2022-05-07 + +Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@debian.org> +--- + src/renderer/mozc_renderer_main.cc | 2 +- + src/renderer/renderer.gyp | 7 +++---- + src/renderer/unix/candidate_window.cc | 4 ++-- + src/renderer/unix/gtk_wrapper.cc | 4 ++-- + src/renderer/unix/infolist_window.cc | 4 ++-- + src/renderer/unix/pango_wrapper.cc | 15 +++------------ + src/renderer/unix/pango_wrapper.h | 3 +-- + src/renderer/unix/text_renderer.cc | 5 ++--- + src/renderer/unix/text_renderer.h | 3 +-- + src/renderer/unix/text_renderer_interface.h | 2 +- + 10 files changed, 18 insertions(+), 31 deletions(-) + +diff --git a/src/renderer/mozc_renderer_main.cc b/src/renderer/mozc_renderer_main.cc +index 85a0ae10..3b596d67 100644 +--- a/src/renderer/mozc_renderer_main.cc ++++ b/src/renderer/mozc_renderer_main.cc +@@ -80,7 +80,7 @@ int main(int argc, char *argv[]) { + #ifdef OS_WIN + mozc::ScopedCOMInitializer com_initializer; + #elif defined(ENABLE_GTK_RENDERER) +- gtk_set_locale(); ++ setlocale(LC_ALL, ""); + #if !GLIB_CHECK_VERSION(2, 31, 0) + // There are not g_thread_init function in glib>=2.31.0. + // http://developer.gnome.org/glib/2.31/glib-Deprecated-Thread-APIs.html#g-thread-init +diff --git a/src/renderer/renderer.gyp b/src/renderer/renderer.gyp +index 78eb6a75..34141a4a 100644 +--- a/src/renderer/renderer.gyp ++++ b/src/renderer/renderer.gyp +@@ -532,15 +532,14 @@ + # Required 'cflags' and 'link_settings' will be automatically + # injected into any target which directly or indirectly depends + # on this target. +- 'target_name': 'gtk2_build_environment', ++ 'target_name': 'gtk3_build_environment', + 'type': 'none', + 'variables': { + 'target_pkgs' : [ + 'glib-2.0', + 'gobject-2.0', + 'gthread-2.0', +- 'gtk+-2.0', +- 'gdk-2.0', ++ 'gtk+-3.0', + ], + }, + 'all_dependent_settings': { +@@ -583,7 +582,7 @@ + '../ipc/ipc.gyp:ipc', + '../protocol/protocol.gyp:genproto_config_proto#host', + '../protocol/protocol.gyp:renderer_proto', +- 'gtk2_build_environment', ++ 'gtk3_build_environment', + 'renderer_server', + 'renderer_style_handler', + 'table_layout', +diff --git a/src/renderer/unix/candidate_window.cc b/src/renderer/unix/candidate_window.cc +index bb0a346b..287f6871 100644 +--- a/src/renderer/unix/candidate_window.cc ++++ b/src/renderer/unix/candidate_window.cc +@@ -85,7 +85,7 @@ CandidateWindow::CandidateWindow(TableLayoutInterface *table_layout, + + bool CandidateWindow::OnPaint(GtkWidget *widget, GdkEventExpose *event) { + draw_tool_->Reset( +- cairo_factory_->CreateCairoInstance(GetCanvasWidget()->window)); ++ cairo_factory_->CreateCairoInstance(gtk_widget_get_window(GetCanvasWidget()))); + + DrawBackground(); + DrawShortcutBackground(); +@@ -263,7 +263,7 @@ void CandidateWindow::DrawFrame() { + } + + void CandidateWindow::Initialize() { +- text_renderer_->Initialize(GetCanvasWidget()->window); ++ text_renderer_->Initialize(GetCanvasWidget()); + } + + void CandidateWindow::UpdateScrollBarSize() { +diff --git a/src/renderer/unix/gtk_wrapper.cc b/src/renderer/unix/gtk_wrapper.cc +index 83d206d7..92c5483f 100644 +--- a/src/renderer/unix/gtk_wrapper.cc ++++ b/src/renderer/unix/gtk_wrapper.cc +@@ -49,7 +49,7 @@ void GtkWrapper::GSignalConnect(gpointer instance, const gchar *signal, + } + + void GtkWrapper::GtkWidgetHideAll(GtkWidget *widget) { +- gtk_widget_hide_all(widget); ++ gtk_widget_hide(widget); + } + + void GtkWrapper::GtkWidgetShowAll(GtkWidget *widget) { +@@ -135,7 +135,7 @@ void GtkWrapper::GtkWidgetRealize(GtkWidget *widget) { + + void GtkWrapper::GdkWindowSetTypeHint(GtkWidget *widget, + GdkWindowTypeHint hint) { +- gdk_window_set_type_hint(widget->window, hint); ++ gdk_window_set_type_hint(gtk_widget_get_window(widget), hint); + } + + } // namespace gtk +diff --git a/src/renderer/unix/infolist_window.cc b/src/renderer/unix/infolist_window.cc +index 253f9659..f76f4c93 100644 +--- a/src/renderer/unix/infolist_window.cc ++++ b/src/renderer/unix/infolist_window.cc +@@ -100,7 +100,7 @@ Rect InfolistWindow::GetCandidateColumnInClientCord() const { + + bool InfolistWindow::OnPaint(GtkWidget *widget, GdkEventExpose *event) { + draw_tool_->Reset( +- cairo_factory_->CreateCairoInstance(GetCanvasWidget()->window)); ++ cairo_factory_->CreateCairoInstance(gtk_widget_get_window(GetCanvasWidget()))); + Draw(); + return true; + } +@@ -237,7 +237,7 @@ int InfolistWindow::DrawRow(int row, int ypos) { + } + + void InfolistWindow::Initialize() { +- text_renderer_->Initialize(GetCanvasWidget()->window); ++ text_renderer_->Initialize(GetCanvasWidget()); + } + + void InfolistWindow::ReloadFontConfig(const std::string &font_description) { +diff --git a/src/renderer/unix/pango_wrapper.cc b/src/renderer/unix/pango_wrapper.cc +index 8f87699a..545072a3 100644 +--- a/src/renderer/unix/pango_wrapper.cc ++++ b/src/renderer/unix/pango_wrapper.cc +@@ -88,21 +88,12 @@ void PangoWrapper::AttributesUnref(PangoAttrList *attribute) { + + PangoContext *PangoWrapper::GetContext() { return context_; } + +-PangoWrapper::PangoWrapper(GdkDrawable *drawable) : gc_(gdk_gc_new(drawable)) { +- GdkScreen *screen = gdk_drawable_get_screen(drawable); +- renderer_ = gdk_pango_renderer_new(screen); +- gdk_pango_renderer_set_drawable(GDK_PANGO_RENDERER(renderer_), drawable); +- gdk_pango_renderer_set_gc(GDK_PANGO_RENDERER(renderer_), gc_); +- context_ = gdk_pango_context_get(); ++PangoWrapper::PangoWrapper(GtkWidget *window) { ++ context_ = gtk_widget_get_pango_context(window); + } + + PangoWrapper::~PangoWrapper() { +- gdk_pango_renderer_set_override_color(GDK_PANGO_RENDERER(renderer_), +- PANGO_RENDER_PART_FOREGROUND, nullptr); +- gdk_pango_renderer_set_drawable(GDK_PANGO_RENDERER(renderer_), nullptr); +- gdk_pango_renderer_set_gc(GDK_PANGO_RENDERER(renderer_), nullptr); +- g_object_unref(gc_); +- g_object_unref(context_); ++ g_object_unref(G_OBJECT(context_)); + } + + } // namespace gtk +diff --git a/src/renderer/unix/pango_wrapper.h b/src/renderer/unix/pango_wrapper.h +index 7c41cc54..c7c7fb04 100644 +--- a/src/renderer/unix/pango_wrapper.h ++++ b/src/renderer/unix/pango_wrapper.h +@@ -57,7 +57,7 @@ class PangoLayoutWrapper : public PangoLayoutWrapperInterface { + + class PangoWrapper : public PangoWrapperInterface { + public: +- explicit PangoWrapper(GdkDrawable *drawable); ++ explicit PangoWrapper(GtkWidget *window); + virtual ~PangoWrapper(); + virtual void RendererDrawLayout(PangoLayoutWrapperInterface *layout, int x, + int y); +@@ -68,7 +68,6 @@ class PangoWrapper : public PangoWrapperInterface { + private: + PangoRenderer *renderer_; + PangoContext *context_; +- GdkGC *gc_; + DISALLOW_COPY_AND_ASSIGN(PangoWrapper); + }; + } // namespace gtk +diff --git a/src/renderer/unix/text_renderer.cc b/src/renderer/unix/text_renderer.cc +index 164f01bc..4ba96ea2 100644 +--- a/src/renderer/unix/text_renderer.cc ++++ b/src/renderer/unix/text_renderer.cc +@@ -39,9 +39,8 @@ namespace gtk { + + TextRenderer::TextRenderer(FontSpecInterface *font_spec) + : font_spec_(font_spec), pango_(nullptr) {} +- +-void TextRenderer::Initialize(GdkDrawable *drawable) { +- pango_.reset(new PangoWrapper(drawable)); ++void TextRenderer::Initialize(GtkWidget *window) { ++ pango_.reset(new PangoWrapper(window)); + } + + void TextRenderer::SetUpPangoLayout(const std::string &str, +diff --git a/src/renderer/unix/text_renderer.h b/src/renderer/unix/text_renderer.h +index c4cd2430..ba36b052 100644 +--- a/src/renderer/unix/text_renderer.h ++++ b/src/renderer/unix/text_renderer.h +@@ -50,8 +50,7 @@ class TextRenderer : public TextRendererInterface { + public: + explicit TextRenderer(FontSpecInterface *font_spec); + virtual ~TextRenderer() {} +- +- virtual void Initialize(GdkDrawable *drawable); ++ virtual void Initialize(GtkWidget *window); + virtual Size GetPixelSize(FontSpecInterface::FONT_TYPE font_type, + const std::string &str); + virtual Size GetMultiLinePixelSize(FontSpecInterface::FONT_TYPE font_type, +diff --git a/src/renderer/unix/text_renderer_interface.h b/src/renderer/unix/text_renderer_interface.h +index db823217..9c569f6a 100644 +--- a/src/renderer/unix/text_renderer_interface.h ++++ b/src/renderer/unix/text_renderer_interface.h +@@ -44,7 +44,7 @@ class TextRendererInterface { + TextRendererInterface() {} + virtual ~TextRendererInterface() {} + +- virtual void Initialize(GdkDrawable *drawable) = 0; ++ virtual void Initialize(GtkWidget *window) = 0; + // Returns boundary rectangle size of actual rendered text. + virtual Size GetPixelSize(FontSpecInterface::FONT_TYPE font_type, + const std::string &str) = 0; +-- +2.36.0 + |