123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- 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
|