(→Issues) |
|||
(39 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== Helper page for Firefox transition to Gtk3 == | == Helper page for Firefox transition to Gtk3 == | ||
Doc: | === 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://www.mail-archive.com/gtkmm-list@gnome.org/msg15382.html | ||
Line 11: | Line 19: | ||
http://library.gnome.org/devel/gtk/unstable/api-index-3-0.html | http://library.gnome.org/devel/gtk/unstable/api-index-3-0.html | ||
Replacements | 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''' | | '''orig''' | ||
Line 24: | Line 42: | ||
| adj->page_size = rect->width | | adj->page_size = rect->width | ||
| gtk_adjustment_set_page_size(adj, 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 |
Latest revision as of 11:21, 17 May 2011
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