Changeset 262286 in webkit
- Timestamp:
- May 29, 2020 2:40:52 AM (4 years ago)
- Location:
- trunk/Source
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r262279 r262286 1 2020-05-29 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK4] Implement script dialogs 4 https://bugs.webkit.org/show_bug.cgi?id=212318 5 6 Reviewed by Adrian Perez de Castro. 7 8 Add more definitions to avoid ifdefs. 9 10 * platform/gtk/GtkVersioning.h: 11 (gtk_entry_set_text): 12 (gtk_entry_get_text): 13 (gtk_label_set_line_wrap): 14 (gtk_window_set_default): 15 (gtk_widget_add_css_class): 16 1 17 2020-05-28 Andy Estes <aestes@apple.com> 2 18 -
trunk/Source/WebCore/platform/gtk/GtkVersioning.h
r261912 r262286 88 88 } 89 89 90 static inline void 91 gtk_entry_set_text(GtkEntry* entry, const char* text) 92 { 93 gtk_editable_set_text(GTK_EDITABLE(entry), text); 94 } 95 96 static inline const char* 97 gtk_entry_get_text(GtkEntry* entry) 98 { 99 return gtk_editable_get_text(GTK_EDITABLE(entry)); 100 } 101 102 static inline void 103 gtk_label_set_line_wrap(GtkLabel* label, gboolean enable) 104 { 105 gtk_label_set_wrap(label, enable); 106 } 107 108 static inline void 109 gtk_window_set_default(GtkWindow* window, GtkWidget* widget) 110 { 111 gtk_window_set_default_widget(window, widget); 112 } 113 90 114 static inline gboolean 91 115 gdk_event_get_state(const GdkEvent *event, GdkModifierType *state) … … 160 184 } 161 185 186 #else // USE(GTK4) 187 188 static inline void 189 gtk_widget_add_css_class(GtkWidget* widget, const char* name) 190 { 191 gtk_style_context_add_class(gtk_widget_get_style_context(widget), name); 192 } 193 162 194 #endif // USE(GTK4) -
trunk/Source/WebKit/ChangeLog
r262283 r262286 1 2020-05-29 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK4] Implement script dialogs 4 https://bugs.webkit.org/show_bug.cgi?id=212318 5 6 Reviewed by Adrian Perez de Castro. 7 8 Adapt to the GTK4 API and theme changes. 9 10 * UIProcess/API/gtk/WebKitScriptDialogImpl.cpp: 11 (webkitScriptDialogImplClose): 12 (webkitScriptDialogImplKeyPressed): 13 (webkitScriptDialogImplMap): 14 (webkitScriptDialogImplConstructed): 15 (webkitScriptDialogImplDispose): 16 (webkit_script_dialog_impl_class_init): 17 (webkitScriptDialogImplAddButton): 18 (webkitScriptDialogImplNew): 19 (webkitScriptDialogImplSetEntryText): 20 * UIProcess/API/gtk/WebKitScriptDialogImpl.h: 21 * UIProcess/API/gtk/WebKitWebViewBase.cpp: 22 (webkitWebViewBaseAddDialog): 23 (webkitWebViewBaseRemoveChild): 24 (webkitWebViewBaseSnapshot): 25 * UIProcess/API/gtk/WebKitWebViewDialog.cpp: 26 (webkitWebViewDialogSnapshot): 27 (webkitWebViewDialogSizeAllocate): 28 (webkitWebViewDialogConstructed): 29 (webkit_web_view_dialog_class_init): 30 (webkitWebViewDialogSetChild): 31 (webkitWebViewDialogGetChild): 32 * UIProcess/API/gtk/WebKitWebViewDialog.h: 33 * UIProcess/API/gtk/WebKitWebViewGtk.cpp: 34 (webkitWebViewScriptDialog): 35 1 36 2020-05-29 Wenson Hsieh <wenson_hsieh@apple.com> 2 37 -
trunk/Source/WebKit/UIProcess/API/gtk/WebKitScriptDialogGtk.cpp
r261371 r262286 26 26 void webkitScriptDialogAccept(WebKitScriptDialog* scriptDialog) 27 27 { 28 #if !USE(GTK4)29 28 if (!WEBKIT_IS_SCRIPT_DIALOG_IMPL(scriptDialog->nativeDialog)) 30 29 return; 31 30 webkitScriptDialogImplConfirm(WEBKIT_SCRIPT_DIALOG_IMPL(scriptDialog->nativeDialog)); 32 #endif33 31 } 34 32 35 33 void webkitScriptDialogDismiss(WebKitScriptDialog* scriptDialog) 36 34 { 37 #if !USE(GTK4)38 35 if (!WEBKIT_IS_SCRIPT_DIALOG_IMPL(scriptDialog->nativeDialog)) 39 36 return; 40 37 webkitScriptDialogImplCancel(WEBKIT_SCRIPT_DIALOG_IMPL(scriptDialog->nativeDialog)); 41 #endif42 38 } 43 39 44 40 void webkitScriptDialogSetUserInput(WebKitScriptDialog* scriptDialog, const String& userInput) 45 41 { 46 #if !USE(GTK4)47 42 if (!WEBKIT_IS_SCRIPT_DIALOG_IMPL(scriptDialog->nativeDialog)) 48 43 return; 49 44 50 45 webkitScriptDialogImplSetEntryText(WEBKIT_SCRIPT_DIALOG_IMPL(scriptDialog->nativeDialog), userInput); 51 #endif52 46 } 53 47 54 48 bool webkitScriptDialogIsUserHandled(WebKitScriptDialog* scriptDialog) 55 49 { 56 #if !USE(GTK4)57 50 return !WEBKIT_IS_SCRIPT_DIALOG_IMPL(scriptDialog->nativeDialog); 58 #else59 return true;60 #endif61 51 } -
trunk/Source/WebKit/UIProcess/API/gtk/WebKitScriptDialogImpl.cpp
r260752 r262286 21 21 #include "WebKitScriptDialogImpl.h" 22 22 23 #if !USE(GTK4)24 25 23 #include "WebKitScriptDialogPrivate.h" 24 #include <WebCore/GtkUtilities.h> 25 #include <WebCore/GtkVersioning.h> 26 26 #include <glib/gi18n-lib.h> 27 27 #include <wtf/glib/WTFGType.h> … … 44 44 { 45 45 webkit_script_dialog_close(dialog->priv->dialog); 46 #if USE(GTK4) 47 gtk_widget_unparent(GTK_WIDGET(dialog)); 48 #else 46 49 gtk_widget_destroy(GTK_WIDGET(dialog)); 47 } 48 50 #endif 51 } 52 53 #if USE(GTK4) 54 static gboolean webkitScriptDialogImplKeyPressed(WebKitScriptDialogImpl* dialog, unsigned keyval, unsigned, GdkModifierType, GtkEventController*) 55 { 56 if (keyval == GDK_KEY_Escape) { 57 webkitScriptDialogImplClose(dialog); 58 return GDK_EVENT_STOP; 59 } 60 61 return GDK_EVENT_PROPAGATE; 62 } 63 #else 49 64 static gboolean webkitScriptDialogImplKeyPressEvent(GtkWidget* widget, GdkEventKey* keyEvent) 50 65 { … … 58 73 return GDK_EVENT_PROPAGATE; 59 74 } 75 #endif 60 76 61 77 static void webkitScriptDialogImplMap(GtkWidget* widget) 62 78 { 63 79 WebKitScriptDialogImplPrivate* priv = WEBKIT_SCRIPT_DIALOG_IMPL(widget)->priv; 64 gtk_widget_grab_default(priv->defaultButton); 80 auto* toplevel = gtk_widget_get_toplevel(widget); 81 if (WebCore::widgetIsOnscreenToplevelWindow(toplevel)) 82 gtk_window_set_default(GTK_WINDOW(toplevel), priv->defaultButton); 65 83 66 84 switch (priv->dialog->type) { … … 86 104 87 105 priv->vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 20); 106 #if USE(GTK4) 107 webkitWebViewDialogSetChild(WEBKIT_WEB_VIEW_DIALOG(object), priv->vbox); 108 gtk_widget_add_css_class(priv->vbox, "dialog-vbox"); 109 #else 88 110 gtk_container_set_border_width(GTK_CONTAINER(priv->vbox), 0); 89 111 gtk_container_add(GTK_CONTAINER(dialog), priv->vbox); 90 112 gtk_widget_show(priv->vbox); 113 #endif 91 114 92 115 GtkWidget* box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); 93 gtk_ style_context_add_class(gtk_widget_get_style_context(box), GTK_STYLE_CLASS_TITLEBAR);116 gtk_widget_add_css_class(box, GTK_STYLE_CLASS_TITLEBAR); 94 117 gtk_widget_set_size_request(box, -1, 16); 95 118 priv->title = gtk_label_new(nullptr); … … 97 120 gtk_widget_set_margin_top(priv->title, 6); 98 121 gtk_widget_set_margin_bottom(priv->title, 6); 99 gtk_style_context_add_class(gtk_widget_get_style_context(priv->title), GTK_STYLE_CLASS_TITLE); 122 gtk_widget_add_css_class(priv->title, GTK_STYLE_CLASS_TITLE); 123 #if USE(GTK4) 124 gtk_widget_set_hexpand(priv->title, TRUE); 125 gtk_widget_set_halign(priv->title, GTK_ALIGN_CENTER); 126 gtk_box_append(GTK_BOX(box), priv->title); 127 #else 100 128 gtk_box_set_center_widget(GTK_BOX(box), priv->title); 101 129 gtk_widget_show(priv->title); 130 #endif 131 #if USE(GTK4) 132 gtk_box_append(GTK_BOX(priv->vbox), box); 133 #else 102 134 gtk_box_pack_start(GTK_BOX(priv->vbox), box, TRUE, FALSE, 0); 103 135 gtk_widget_show(box); 136 #endif 104 137 105 138 box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 30); 106 139 gtk_widget_set_margin_start(box, 30); 107 140 gtk_widget_set_margin_end(box, 30); 141 #if USE(GTK4) 142 gtk_box_append(GTK_BOX(priv->vbox), box); 143 #else 108 144 gtk_box_pack_start(GTK_BOX(priv->vbox), box, TRUE, FALSE, 0); 109 145 gtk_widget_show(box); 146 #endif 110 147 111 148 GtkWidget* messageArea = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10); 149 #if USE(GTK4) 150 gtk_box_append(GTK_BOX(box), messageArea); 151 #else 112 152 gtk_box_pack_start(GTK_BOX(box), messageArea, TRUE, TRUE, 0); 113 153 gtk_widget_show(messageArea); 154 #endif 114 155 115 156 priv->swindow = gtk_scrolled_window_new(nullptr, nullptr); 116 157 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(priv->swindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); 158 #if USE(GTK4) 159 gtk_box_append(GTK_BOX(messageArea), priv->swindow); 160 #else 117 161 gtk_box_pack_start(GTK_BOX(messageArea), priv->swindow, TRUE, TRUE, 0); 118 162 gtk_widget_show(priv->swindow); 163 #endif 119 164 120 165 priv->label = gtk_label_new(nullptr); … … 123 168 gtk_label_set_line_wrap(GTK_LABEL(priv->label), TRUE); 124 169 gtk_label_set_max_width_chars(GTK_LABEL(priv->label), 60); 170 #if USE(GTK4) 171 gtk_widget_set_hexpand(priv->label, TRUE); 172 gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(priv->swindow), priv->label); 173 #else 125 174 gtk_container_add(GTK_CONTAINER(priv->swindow), priv->label); 126 175 gtk_widget_show(priv->label); 176 #endif 127 177 128 178 GtkWidget* actionBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); 129 gtk_style_context_add_class(gtk_widget_get_style_context(actionBox), "dialog-action-box"); 179 gtk_widget_add_css_class(actionBox, "dialog-action-box"); 180 #if USE(GTK4) 181 gtk_box_append(GTK_BOX(priv->vbox), actionBox); 182 #else 130 183 gtk_box_pack_end(GTK_BOX(priv->vbox), actionBox, FALSE, TRUE, 0); 131 184 gtk_widget_show(actionBox); 132 185 #endif 186 187 #if USE(GTK4) 188 priv->actionArea = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); 189 gtk_box_set_homogeneous(GTK_BOX(priv->actionArea), TRUE); 190 gtk_widget_set_halign(priv->actionArea, GTK_ALIGN_FILL); 191 #else 133 192 priv->actionArea = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL); 134 193 gtk_button_box_set_layout(GTK_BUTTON_BOX(priv->actionArea), GTK_BUTTONBOX_EXPAND); 194 #endif 135 195 gtk_widget_set_hexpand(priv->actionArea, TRUE); 136 gtk_style_context_add_class(gtk_widget_get_style_context(priv->actionArea), "dialog-action-area"); 196 gtk_widget_add_css_class(priv->actionArea, "dialog-action-area"); 197 #if USE(GTK4) 198 gtk_box_append(GTK_BOX(actionBox), priv->actionArea); 199 #else 137 200 gtk_box_pack_end(GTK_BOX(actionBox), priv->actionArea, FALSE, TRUE, 0); 138 201 gtk_widget_show(priv->actionArea); 202 #endif 203 204 #if USE(GTK4) 205 auto* controller = gtk_event_controller_key_new(); 206 g_signal_connect_object(controller, "key-pressed", G_CALLBACK(webkitScriptDialogImplKeyPressed), dialog, G_CONNECT_SWAPPED); 207 gtk_widget_add_controller(GTK_WIDGET(dialog), controller); 208 #endif 139 209 } 140 210 … … 148 218 } 149 219 220 #if USE(GTK4) 221 webkitWebViewDialogSetChild(WEBKIT_WEB_VIEW_DIALOG(object), nullptr); 222 #endif 223 150 224 G_OBJECT_CLASS(webkit_script_dialog_impl_parent_class)->dispose(object); 151 225 } … … 158 232 159 233 GtkWidgetClass* widgetClass = GTK_WIDGET_CLASS(klass); 234 #if !USE(GTK4) 160 235 widgetClass->key_press_event = webkitScriptDialogImplKeyPressEvent; 236 #endif 161 237 widgetClass->map = webkitScriptDialogImplMap; 162 238 gtk_widget_class_set_accessible_role(widgetClass, ATK_ROLE_ALERT); … … 177 253 GtkWidget* button = gtk_button_new_with_label(text); 178 254 gtk_button_set_use_underline(GTK_BUTTON(button), TRUE); 179 gtk_style_context_add_class(gtk_widget_get_style_context(button), "text-button"); 255 gtk_widget_add_css_class(button, "text-button"); 256 #if !USE(GTK4) 180 257 gtk_widget_set_can_default(button, TRUE); 258 #endif 181 259 182 260 gtk_widget_set_valign(button, GTK_ALIGN_BASELINE); 261 #if USE(GTK4) 262 gtk_box_append(GTK_BOX(priv->actionArea), button); 263 #else 183 264 gtk_container_add(GTK_CONTAINER(priv->actionArea), button); 184 265 gtk_widget_show(button); 266 #endif 185 267 186 268 return button; … … 206 288 dialog->priv->entry = gtk_entry_new(); 207 289 gtk_entry_set_text(GTK_ENTRY(dialog->priv->entry), scriptDialog->defaultText.data()); 290 #if USE(GTK4) 291 gtk_box_insert_child_after(GTK_BOX(dialog->priv->vbox), dialog->priv->entry, 292 gtk_widget_get_parent(gtk_widget_get_parent(dialog->priv->swindow))); 293 #else 208 294 gtk_container_add(GTK_CONTAINER(dialog->priv->vbox), dialog->priv->entry); 295 #endif 209 296 gtk_entry_set_activates_default(GTK_ENTRY(dialog->priv->entry), TRUE); 210 297 gtk_widget_show(dialog->priv->entry); … … 275 362 gtk_entry_set_text(GTK_ENTRY(dialog->priv->entry), text.utf8().data()); 276 363 } 277 278 #endif -
trunk/Source/WebKit/UIProcess/API/gtk/WebKitScriptDialogImpl.h
r260752 r262286 19 19 20 20 #pragma once 21 22 #if !USE(GTK4)23 21 24 22 #include "WebKitScriptDialog.h" … … 56 54 57 55 G_END_DECLS 58 59 #endif -
trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp
r262193 r262286 573 573 WebKitWebViewBasePrivate* priv = webViewBase->priv; 574 574 priv->dialog = dialog; 575 #if USE(GTK4) 576 g_object_add_weak_pointer(G_OBJECT(dialog), reinterpret_cast<void**>(&priv->dialog)); 577 #endif 575 578 gtk_widget_set_parent(dialog, GTK_WIDGET(webViewBase)); 576 579 gtk_widget_show(dialog); … … 591 594 priv->inspectorViewSize = 0; 592 595 } else if (priv->dialog == widget) { 596 g_object_remove_weak_pointer(G_OBJECT(widget), reinterpret_cast<void**>(&priv->dialog)); 593 597 priv->dialog = nullptr; 594 if (gtk_widget_get_visible(GTK_WIDGET(webViewBase)))595 gtk_widget_grab_focus(GTK_WIDGET(webViewBase));596 598 } else if (priv->keyBindingTranslator.widget() == widget) 597 599 priv->keyBindingTranslator.invalidate(); … … 599 601 RELEASE_ASSERT_NOT_REACHED(); 600 602 601 gboolean wasVisible = gtk_widget_get_visible(widget);602 603 gtk_widget_unparent(widget); 603 604 if (wasVisible && gtk_widget_get_visible(GTK_WIDGET(webViewBase)))605 gtk_widget_queue_resize(GTK_WIDGET(webViewBase));606 604 } 607 605 #else … … 743 741 ASSERT(drawingArea->isInAcceleratedCompositingMode()); 744 742 webViewBase->priv->acceleratedBackingStore->snapshot(snapshot); 743 744 if (webViewBase->priv->dialog) 745 gtk_widget_snapshot_child(widget, webViewBase->priv->dialog, snapshot); 745 746 } 746 747 #else -
trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewDialog.cpp
r260752 r262286 1 1 /* 2 * Copyright (C) 2018 Igalia S.L.2 * Copyright (C) 2018, 2020 Igalia S.L. 3 3 * 4 4 * This library is free software; you can redistribute it and/or … … 21 21 #include "WebKitWebViewDialog.h" 22 22 23 #if !USE(GTK4) 24 23 #include <WebCore/FloatSize.h> 24 #include <WebCore/GtkVersioning.h> 25 #include <WebCore/RefPtrCairo.h> 25 26 #include <wtf/glib/GRefPtr.h> 26 27 #include <wtf/glib/WTFGType.h> 27 28 28 29 struct _WebKitWebViewDialogPrivate { 30 GtkWidget* child; 31 #if USE(GTK4) 32 GRefPtr<GtkCssProvider> cssProvider; 33 #endif 29 34 }; 30 35 36 #if USE(GTK4) 37 WEBKIT_DEFINE_ABSTRACT_TYPE(WebKitWebViewDialog, webkit_web_view_dialog, GTK_TYPE_WIDGET) 38 #else 31 39 WEBKIT_DEFINE_ABSTRACT_TYPE(WebKitWebViewDialog, webkit_web_view_dialog, GTK_TYPE_EVENT_BOX) 40 #endif 32 41 42 #if USE(GTK4) 43 static void webkitWebViewDialogSnapshot(GtkWidget* widget, GtkSnapshot* snapshot) 44 { 45 WebCore::FloatSize widgetSize(gtk_widget_get_width(widget), gtk_widget_get_height(widget)); 46 graphene_rect_t rect = GRAPHENE_RECT_INIT(0, 0, widgetSize.width(), widgetSize.height()); 47 RefPtr<cairo_t> cr = adoptRef(gtk_snapshot_append_cairo(snapshot, &rect)); 48 cairo_set_operator(cr.get(), CAIRO_OPERATOR_OVER); 49 cairo_set_source_rgba(cr.get(), 0, 0, 0, 0.5); 50 cairo_paint(cr.get()); 51 52 WebKitWebViewDialogPrivate* priv = WEBKIT_WEB_VIEW_DIALOG(widget)->priv; 53 if (priv->child) 54 gtk_widget_snapshot_child(widget, priv->child, snapshot); 55 } 56 #else 33 57 static gboolean webkitWebViewDialogDraw(GtkWidget* widget, cairo_t* cr) 34 58 { … … 49 73 return FALSE; 50 74 } 75 #endif 51 76 77 #if USE(GTK4) 78 static void webkitWebViewDialogSizeAllocate(GtkWidget* widget, int width, int height, int baseline) 79 #else 52 80 static void webkitWebViewDialogSizeAllocate(GtkWidget* widget, GtkAllocation* allocation) 81 #endif 53 82 { 83 #if USE(GTK4) 84 GTK_WIDGET_CLASS(webkit_web_view_dialog_parent_class)->size_allocate(widget, width, height, baseline); 85 GtkAllocation allocationStack = { 0, 0, width, height }; 86 GtkAllocation* allocation = &allocationStack; 87 GtkWidget* child = WEBKIT_WEB_VIEW_DIALOG(widget)->priv->child; 88 #else 54 89 GTK_WIDGET_CLASS(webkit_web_view_dialog_parent_class)->size_allocate(widget, allocation); 90 GtkWidget* child = gtk_bin_get_child(GTK_BIN(widget)); 91 #endif 55 92 56 GtkWidget* child = gtk_bin_get_child(GTK_BIN(widget));57 93 if (!child) 58 94 return; … … 75 111 G_OBJECT_CLASS(webkit_web_view_dialog_parent_class)->constructed(object); 76 112 113 #if USE(GTK4) 114 gtk_widget_add_css_class(GTK_WIDGET(object), "dialog"); 115 gtk_widget_add_css_class(GTK_WIDGET(object), "message"); 116 gtk_widget_add_css_class(GTK_WIDGET(object), GTK_STYLE_CLASS_CSD); 117 gtk_widget_remove_css_class(GTK_WIDGET(object), GTK_STYLE_CLASS_BACKGROUND); 118 119 WebKitWebViewDialogPrivate* priv = WEBKIT_WEB_VIEW_DIALOG(object)->priv; 120 priv->cssProvider = adoptGRef(gtk_css_provider_new()); 121 gtk_css_provider_load_from_data(priv->cssProvider.get(), ".dialog-vbox { border-radius: 7px; }", -1); 122 #else 77 123 gtk_widget_set_app_paintable(GTK_WIDGET(object), TRUE); 78 124 79 125 gtk_style_context_add_class(gtk_widget_get_style_context(GTK_WIDGET(object)), GTK_STYLE_CLASS_CSD); 80 126 gtk_style_context_add_class(gtk_widget_get_style_context(GTK_WIDGET(object)), GTK_STYLE_CLASS_BACKGROUND); 127 #endif 81 128 } 82 129 … … 87 134 88 135 GtkWidgetClass* widgetClass = GTK_WIDGET_CLASS(klass); 136 #if USE(GTK4) 137 widgetClass->snapshot = webkitWebViewDialogSnapshot; 138 #else 89 139 widgetClass->draw = webkitWebViewDialogDraw; 140 #endif 90 141 widgetClass->size_allocate = webkitWebViewDialogSizeAllocate; 91 142 143 #if USE(GTK4) 144 gtk_widget_class_set_css_name(widgetClass, "window"); 145 #else 92 146 gtk_widget_class_set_css_name(widgetClass, "messagedialog"); 147 #endif 93 148 } 94 149 150 #if USE(GTK4) 151 void webkitWebViewDialogSetChild(WebKitWebViewDialog* dialog, GtkWidget* child) 152 { 153 WebKitWebViewDialogPrivate* priv = dialog->priv; 154 g_clear_pointer(&priv->child, gtk_widget_unparent); 155 if (child) { 156 gtk_widget_set_parent(child, GTK_WIDGET(dialog)); 157 gtk_widget_add_css_class(child, GTK_STYLE_CLASS_BACKGROUND); 158 gtk_style_context_add_provider(gtk_widget_get_style_context(child), GTK_STYLE_PROVIDER(priv->cssProvider.get()), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); 159 priv->child = child; 160 } 161 } 162 163 GtkWidget* webkitWebViewDialogGetChild(WebKitWebViewDialog* dialog) 164 { 165 return dialog->priv->child; 166 } 95 167 #endif -
trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewDialog.h
r260752 r262286 20 20 #pragma once 21 21 22 #if !USE(GTK4)23 24 22 #include <gtk/gtk.h> 25 23 … … 38 36 39 37 struct _WebKitWebViewDialog { 38 #if USE(GTK4) 39 GtkWidget parent; 40 #else 40 41 GtkEventBox parent; 42 #endif 41 43 42 44 WebKitWebViewDialogPrivate* priv; … … 44 46 45 47 struct _WebKitWebViewDialogClass { 48 #if USE(GTK4) 49 GtkWidgetClass parentClass; 50 #else 46 51 GtkEventBoxClass parentClass; 52 #endif 47 53 }; 48 54 49 55 GType webkit_web_view_dialog_get_type(); 56 #if USE(GTK4) 57 void webkitWebViewDialogSetChild(WebKitWebViewDialog*, GtkWidget*); 58 GtkWidget* webkitWebViewDialogGetChild(WebKitWebViewDialog*); 59 #endif 50 60 51 61 G_END_DECLS 52 53 #endif -
trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewGtk.cpp
r260889 r262286 44 44 gboolean webkitWebViewScriptDialog(WebKitWebView* webView, WebKitScriptDialog* scriptDialog) 45 45 { 46 #if !USE(GTK4)47 46 GUniquePtr<char> title(g_strdup_printf("JavaScript - %s", webkitWebViewGetPage(webView).pageLoadState().url().utf8().data())); 48 47 // Limit script dialog size to 80% of the web view size. 49 48 GtkRequisition maxSize = { static_cast<int>(gtk_widget_get_allocated_width(GTK_WIDGET(webView)) * 0.80), static_cast<int>(gtk_widget_get_allocated_height(GTK_WIDGET(webView)) * 0.80) }; 50 49 webkitWebViewBaseAddDialog(WEBKIT_WEB_VIEW_BASE(webView), webkitScriptDialogImplNew(scriptDialog, title.get(), &maxSize)); 51 #endif52 50 53 51 return TRUE;
Note: See TracChangeset
for help on using the changeset viewer.