From Fedora Project Wiki

Helper page for Firefox transition to Gtk3

Doc

http://library.gnome.org/devel/gtk/unstable/

http://library.gnome.org/devel/gdk/unstable/

http://library.gnome.org/devel/gtk/unstable/migrating.html

http://library.gnome.org/devel/gtk/unstable/ch25s02.html#id1238063

http://www.mail-archive.com/gtkmm-list@gnome.org/msg15382.html

http://answerpot.com/showthread.php?1780119-Add+compat+macro+for+GDK_DISPLAY

http://library.gnome.org/devel/gtk/unstable/migrating.html

http://library.gnome.org/devel/gtk/unstable/api-index-3-0.html

GtkStyleContext instead of GtkStyle http://mail.gnome.org/archives/commits-list/2010-December/msg00456.html

Evolution patches http://osdir.com/ml/commits.gnome/2010-12/msg06109.html

Gtk3 patches

Open office gtk3 File:Workspace.gtk3.patch

Firefox gtk3 patch - https://bugzilla.mozilla.org/show_bug.cgi?id=627699

Replacements

orig replacement
GDK_DISPLAY() GDK_DISPLAY_XDISPLAY(gdk_display_get_default())
scrollbar->style gtk_widget_get_style(scrollbar)
adj->page_size = rect->width gtk_adjustment_set_page_size(adj, rect->width)
gHandleBoxWidget->shadow_type gtk_handle_box_get_shadow_type(GTK_HANDLE_BOX(gHandleBoxWidget))
GTK_WIDGET_SET_FLAGS(gComboBoxEntryTextareaWidget, GTK_HAS_FOCUS); TEST: gtk_widget_grab_focus(gComboBoxEntryTextareaWidget);
GTK_WIDGET_UNSET_FLAGS(gComboBoxEntryTextareaWidget, GTK_HAS_FOCUS); ?
gtk_check_menu_item_GTK_CHECK_MENU_ITEM(gCheckMenuItemWidget)->always_show_toggle) ?
gButtonWidget->border_width gtk_container_get_border_width(GTK_CONTAINER(gButtonWidget))
GtkObject GtkWidget
GtkObjectClass GtkWidgetClass
GTK_OBJECT_CLASS GTK_WIDGET_CLASS
widget->allocation gtk_widget_get_allocation(widget), gtk_widget_get_allocated_width(), gtk_widget_get_allocated_height()
widget->style = gtk_style_attach (widget->style, widget->window) gtk_widget_style_attach(widget);
GTK_WIDGET_SET_FLAGS(container, GTK_CAN_FOCUS); TEST: gtk_widget_set_can_focus(container, TRUE);
container->container.resize_mode = GTK_RESIZE_IMMEDIATE; gtk_container_set_resize_mode(&(container->container), GTK_RESIZE_IMMEDIATE);
gdk_rgb_get_colormap() gdk_screen_get_system_colormap (gdk_screen_get_default())
(GdkVisual *)visual->depth gdk_visual_get_depth(visual)
(GtkWidget *)widget->window gtk_widget_get_window(window)
GdkPixmap and GdkBitmap cairo surface
gdk_window_set_back_pixmap ?
GDK_COLORMAP_XCOLORMAP ?
GTK_WIDGET_REALIZED gtk_widget_get_realized()
gdk_drawable_*() gdk_window_*()
gdk_colormap_*() XColormap*()
gdk_rgb_get_visual() gdk_screen_get_system_visual(gdk_screen_get_default())
->depth gdk_visual_get_depth
GDK_WINDOW_XWINDOW gdk_x11_window_get_xid

Issues

Broken rendering:

  • Comboboxes?
  • Checkboxes?
  • Menu separators?

TODO

dom/plugins/PluginModuleChild.cpp:

- PluginModuleChild::InitGraphics

embedding/browser/gtk/src/EmbedPrompter.cpp

- EmbedPrompter::Create - commented code

- EmbedPrompter::SaveDialogValues

embedding/browser/gtk/src/gtkmozembed2.cpp

- gtk_moz_embed_class_init

- gtk_moz_embed_destroy - commented code

- gtk_moz_embed_map

- gtk_moz_embed_unmap

gfx/src/thebes/nsSystemFontsGTK2.cpp:

- nsSystemFontsGTK2::nsSystemFontsGTK2

gfx/thebes/gfxDWriteFonts.cpp (??):

- FLOAT(mAdjustedSize), 1.0f, nsnull, FALSE,

+ FLOAT(mAdjustedSize), 1.0f, nsnull, TRUE,

modules/plugin/base/src/nsPluginNativeWindowGtk2.cpp:

- nsPluginNativeWindowGtk2::Creat

toolkit/xre/nsAppRunner.cpp:

- XRE_main

toolkit/xre/nsNativeAppSupportUnix.cpp:

- nsNativeAppSupportUnix::Start

widget/src/gtk2/gtk2drawing.c:

- ensure_combo_box_entry_widgets!!

- ensure_tree_header_cell_widget

- moz_gtk_button_paint

- moz_gtk_entry_paint

- moz_gtk_treeview_paint

- moz_gtk_tooltip_paint

- moz_gtk_check_menu_item_paint

- moz_gtk_get_widget_border (use diff)

widget/src/gtk2/mozcontainer.c:

- moz_container_init

widget/src/gtk2/nsBidiKeyboard.cpp:

- nsBidiKeyboard::nsBidiKeyboard

- nsDragService::SetAlphaPixmap TEST

widget/src/gtk2/nsGTKToolkit.h:

- class nsGTKToolki commented

widget/src/gtk2/nsGtkIMModule.cpp

- nsGtkIMModule::PrepareToDestroyContext

widget/src/gtk2/nsLookAndFeel.cpp:

- nsLookAndFeel::InitLookAndFeel - destroy

nsWindow.cpp

- nsWindow::SetCursor Test

- nsWindow::OnExposeEvent smazat TODO?

- nsWindow::Create

- nsWindow::ApplyTransparencyBitmap

- nsWindow::UpdateTranslucentWindowAlphaInternal: flash player crash?

- nsWindow::GetThebesSurface TEst, 2x

- plugin_window_filter_func

- gtk_xtbin_new 2x TODO