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:
- Transparent dialog boxes -> new bookmarks
- fixed password dialog
- 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