Changeset 52246 in webkit
- Timestamp:
- Dec 17, 2009 4:02:21 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r52244 r52246 1 2009-12-17 Martin Robinson <martin.james.robinson@gmail.com> 2 3 Reviewed by Gustavo Noronha. 4 5 [GTK] WebKit GTK needs a wrapper for ref counted glib/gobject structs 6 https://bugs.webkit.org/show_bug.cgi?id=21599 7 8 Implement GRefPtr, a smart pointer for reference counted GObject types. 9 10 * GNUmakefile.am: 11 * wtf/gtk/GOwnPtr.cpp: 12 (WTF::GDir): 13 * wtf/gtk/GRefPtr.h: Added. 14 (WTF::): 15 (WTF::GRefPtr::GRefPtr): 16 (WTF::GRefPtr::~GRefPtr): 17 (WTF::GRefPtr::clear): 18 (WTF::GRefPtr::get): 19 (WTF::GRefPtr::operator*): 20 (WTF::GRefPtr::operator->): 21 (WTF::GRefPtr::operator!): 22 (WTF::GRefPtr::operator UnspecifiedBoolType): 23 (WTF::GRefPtr::hashTableDeletedValue): 24 (WTF::::operator): 25 (WTF::::swap): 26 (WTF::swap): 27 (WTF::operator==): 28 (WTF::operator!=): 29 (WTF::static_pointer_cast): 30 (WTF::const_pointer_cast): 31 (WTF::getPtr): 32 (WTF::adoptGRef): 33 (WTF::refGPtr): 34 (WTF::derefGPtr): 35 1 36 2009-12-17 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> 2 37 -
trunk/JavaScriptCore/GNUmakefile.am
r52244 r52246 292 292 JavaScriptCore/wtf/gtk/GOwnPtr.cpp \ 293 293 JavaScriptCore/wtf/gtk/GOwnPtr.h \ 294 JavaScriptCore/wtf/gtk/GRefPtr.h \ 294 295 JavaScriptCore/wtf/gtk/MainThreadGtk.cpp \ 295 296 JavaScriptCore/wtf/gtk/ThreadingGtk.cpp \ -
trunk/JavaScriptCore/wtf/gtk/GOwnPtr.cpp
r51423 r52246 58 58 g_dir_close(ptr); 59 59 } 60 61 template <> void freeOwnedGPtr<GHashTable>(GHashTable* ptr)62 {63 if (ptr)64 g_hash_table_unref(ptr);65 }66 67 60 } // namespace WTF -
trunk/WebCore/ChangeLog
r52245 r52246 1 2009-12-17 Martin Robinson <martin.james.robinson@gmail.com> 2 3 Reviewed by Gustavo Noronha. 4 5 [GTK] WebKit GTK needs a wrapper for ref counted glib/gobject structs 6 https://bugs.webkit.org/show_bug.cgi?id=21599 7 8 Add GRefPtr support for GTK types to WebCore, as JSC does not link against 9 GTK+. Also convert PopupMenu::m_poup from a raw pointer to a GRefPtr. 10 11 No new tests as functionality has not changed. 12 13 * GNUmakefile.am: 14 * platform/PopupMenu.h: 15 * platform/gtk/GRefPtrGtk.cpp: Added. 16 (WTF::refGPtr): 17 (WTF::derefGPtr): 18 * platform/gtk/GRefPtrGtk.h: Added. 19 * platform/gtk/PopupMenuGtk.cpp: 20 (WebCore::PopupMenu::PopupMenu): 21 (WebCore::PopupMenu::~PopupMenu): 22 (WebCore::PopupMenu::show): 23 (WebCore::PopupMenu::hide): 24 (WebCore::PopupMenu::menuRemoveItem): 25 1 26 2009-12-17 Evan Martin <evan@chromium.org> 2 27 -
trunk/WebCore/GNUmakefile.am
r52245 r52246 1982 1982 WebCore/platform/gtk/FileChooserGtk.cpp \ 1983 1983 WebCore/platform/gtk/FileSystemGtk.cpp \ 1984 WebCore/platform/gtk/GRefPtrGtk.cpp \ 1985 WebCore/platform/gtk/GRefPtrGtk.h \ 1984 1986 WebCore/platform/gtk/GtkPluginWidget.cpp \ 1985 1987 WebCore/platform/gtk/GtkPluginWidget.h \ -
trunk/WebCore/platform/PopupMenu.h
r52199 r52246 49 49 typedef struct _GtkMenuItem GtkMenuItem; 50 50 typedef struct _GtkWidget GtkWidget; 51 #include "GRefPtrGtk.h" 51 52 #include <wtf/HashMap.h> 52 53 #include <glib.h> … … 174 175 #elif PLATFORM(GTK) 175 176 IntPoint m_menuPosition; 176 G tkMenu*m_popup;177 GRefPtr<GtkMenu> m_popup; 177 178 HashMap<GtkWidget*, int> m_indexMap; 178 179 static void menuItemActivated(GtkMenuItem* item, PopupMenu*); -
trunk/WebCore/platform/gtk/PopupMenuGtk.cpp
r48511 r52246 36 36 PopupMenu::PopupMenu(PopupMenuClient* client) 37 37 : m_popupClient(client) 38 , m_popup(0)39 38 { 40 39 } … … 43 42 { 44 43 if (m_popup) { 45 g_signal_handlers_disconnect_matched(m_popup , G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, this);44 g_signal_handlers_disconnect_matched(m_popup.get(), G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, this); 46 45 hide(); 47 g_object_unref(m_popup);48 46 } 49 47 } … … 55 53 if (!m_popup) { 56 54 m_popup = GTK_MENU(gtk_menu_new()); 57 g_object_ref_sink(G_OBJECT(m_popup)); 58 g_signal_connect(m_popup, "unmap", G_CALLBACK(menuUnmapped), this); 55 g_signal_connect(m_popup.get(), "unmap", G_CALLBACK(menuUnmapped), this); 59 56 } else 60 gtk_container_foreach(GTK_CONTAINER(m_popup ), reinterpret_cast<GtkCallback>(menuRemoveItem), this);57 gtk_container_foreach(GTK_CONTAINER(m_popup.get()), reinterpret_cast<GtkCallback>(menuRemoveItem), this); 61 58 62 59 int x, y; … … 79 76 // FIXME: Apply the PopupMenuStyle from client()->itemStyle(i) 80 77 gtk_widget_set_sensitive(item, client()->itemIsEnabled(i)); 81 gtk_menu_shell_append(GTK_MENU_SHELL(m_popup ), item);78 gtk_menu_shell_append(GTK_MENU_SHELL(m_popup.get()), item); 82 79 gtk_widget_show(item); 83 80 } 84 81 85 gtk_menu_set_active(m_popup , index);82 gtk_menu_set_active(m_popup.get(), index); 86 83 87 84 88 85 // The size calls are directly copied from gtkcombobox.c which is LGPL 89 86 GtkRequisition requisition; 90 gtk_widget_set_size_request(GTK_WIDGET(m_popup ), -1, -1);91 gtk_widget_size_request(GTK_WIDGET(m_popup ), &requisition);92 gtk_widget_set_size_request(GTK_WIDGET(m_popup ), MAX(rect.width(), requisition.width), -1);87 gtk_widget_set_size_request(GTK_WIDGET(m_popup.get()), -1, -1); 88 gtk_widget_size_request(GTK_WIDGET(m_popup.get()), &requisition); 89 gtk_widget_set_size_request(GTK_WIDGET(m_popup.get()), std::max(rect.width(), requisition.width), -1); 93 90 94 GList* children = GTK_MENU_SHELL(m_popup )->children;91 GList* children = GTK_MENU_SHELL(m_popup.get())->children; 95 92 if (size) 96 93 for (int i = 0; i < size; i++) { … … 104 101 105 102 children = g_list_next(children); 106 } 107 else 108 // Center vertically the empty popup in the combo box area 109 m_menuPosition.setY(m_menuPosition.y() - rect.height() / 2); 103 } else 104 // Center vertically the empty popup in the combo box area 105 m_menuPosition.setY(m_menuPosition.y() - rect.height() / 2); 110 106 111 gtk_menu_popup(m_popup , NULL, NULL, reinterpret_cast<GtkMenuPositionFunc>(menuPositionFunction), this, 0, gtk_get_current_event_time());107 gtk_menu_popup(m_popup.get(), 0, 0, reinterpret_cast<GtkMenuPositionFunc>(menuPositionFunction), this, 0, gtk_get_current_event_time()); 112 108 } 113 109 … … 115 111 { 116 112 ASSERT(m_popup); 117 gtk_menu_popdown(m_popup );113 gtk_menu_popdown(m_popup.get()); 118 114 } 119 115 … … 151 147 { 152 148 ASSERT(that->m_popup); 153 gtk_container_remove(GTK_CONTAINER(that->m_popup ), widget);149 gtk_container_remove(GTK_CONTAINER(that->m_popup.get()), widget); 154 150 } 155 151 -
trunk/WebKit/gtk/ChangeLog
r52215 r52246 1 2009-12-17 Martin Robinson <martin.james.robinson@gmail.com> 2 3 Reviewed by Gustavo Noronha. 4 5 [GTK] WebKit GTK needs a wrapper for ref counted glib/gobject structs 6 https://bugs.webkit.org/show_bug.cgi?id=21599 7 8 Convert a use of GOwnPtr for a reference counted type to GRefPtr. 9 10 * WebCoreSupport/FrameLoaderClientGtk.cpp: 11 (WebKit::FrameLoaderClient::createPlugin): 12 1 13 2009-12-16 Dan Winship <danw@gnome.org> 2 14 -
trunk/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp
r51957 r52246 34 34 #include "FrameTree.h" 35 35 #include "GOwnPtr.h" 36 #include "GRefPtr.h" 36 37 #include "GtkPluginWidget.h" 37 38 #include "HTMLAppletElement.h" … … 441 442 442 443 ASSERT(paramNames.size() == paramValues.size()); 443 G OwnPtr<GHashTable> hash(g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free));444 GRefPtr<GHashTable> hash = adoptGRef(g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free)); 444 445 for (unsigned i = 0; i < paramNames.size(); ++i) { 445 446 g_hash_table_insert(hash.get(),
Note: See TracChangeset
for help on using the changeset viewer.