X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_webkit;a=blobdiff_plain;f=Source%2FWebKit%2Fgtk%2Fwebkit%2Fwebkitwebview.cpp;fp=Source%2FWebKit%2Fgtk%2Fwebkit%2Fwebkitwebview.cpp;h=988330326dee31ff6397c8f0fd2784c614207645;hp=e2edd849c6b2cd9d60f04fcc605d9d3955e76dbd;hb=186b2535c234ccc42a8c27998f11be6f718f604f;hpb=1c567be6144228b511852e3cab689fc41b052875 diff --git a/Source/WebKit/gtk/webkit/webkitwebview.cpp b/Source/WebKit/gtk/webkit/webkitwebview.cpp index e2edd84..9883303 100644 --- a/Source/WebKit/gtk/webkit/webkitwebview.cpp +++ b/Source/WebKit/gtk/webkit/webkitwebview.cpp @@ -310,6 +310,9 @@ static void contextMenuConnectActivate(GtkMenuItem* item, ContextMenuController* static gboolean webkit_web_view_forward_context_menu_event(WebKitWebView* webView, const PlatformMouseEvent& event) { +#if !ENABLE(CONTEXT_MENUS) + return FALSE; +#else Page* page = core(webView); page->contextMenuController()->clearContextMenu(); Frame* focusedFrame; @@ -385,6 +388,7 @@ static gboolean webkit_web_view_forward_context_menu_event(WebKitWebView* webVie gtk_menu_popup(menu, 0, 0, &PopupMenuPositionFunc, webView, event.button() + 1, gtk_get_current_event_time()); return TRUE; +#endif } static const int gContextMenuMargin = 1; @@ -427,7 +431,6 @@ static gboolean webkit_web_view_popup_menu_handler(GtkWidget* widget) return webkit_web_view_forward_context_menu_event(WEBKIT_WEB_VIEW(widget), event); } -#ifndef GTK_API_VERSION_2 static void setHorizontalAdjustment(WebKitWebView* webView, GtkAdjustment* adjustment) { // This may be called after the page has been destroyed, in which case we do nothing. @@ -444,6 +447,7 @@ static void setVerticalAdjustment(WebKitWebView* webView, GtkAdjustment* adjustm static_cast(page->chrome()->client())->adjustmentWatcher()->setVerticalAdjustment(adjustment); } +#ifndef GTK_API_VERSION_2 static GtkAdjustment* getHorizontalAdjustment(WebKitWebView* webView) { Page* page = core(webView); @@ -643,6 +647,8 @@ static void paintWebView(Frame* frame, gboolean transparent, GraphicsContext& co { bool coalesce = true; +// fprintf( stderr, " <><><> paintWebView\n" ); + if (rects.size() > 0) coalesce = shouldCoalesce(clipRect, rects); @@ -665,7 +671,9 @@ static void paintWebView(Frame* frame, gboolean transparent, GraphicsContext& co context.save(); context.clip(clipRect); +#if ENABLE(JAVASCRIPT_DEBUGGER) frame->page()->inspectorController()->drawHighlight(context); +#endif context.restore(); } #ifdef GTK_API_VERSION_2 @@ -675,6 +683,9 @@ static gboolean webkit_web_view_expose_event(GtkWidget* widget, GdkEventExpose* WebKitWebViewPrivate* priv = webView->priv; Frame* frame = core(webView)->mainFrame(); + +// fprintf( stderr, " >> webkit_web_view_expose_event\n" ); + if (frame->contentRenderer() && frame->view()) { frame->view()->updateLayoutAndStyleIfNeededRecursive(); @@ -739,6 +750,9 @@ static gboolean webkit_web_view_key_press_event(GtkWidget* widget, GdkEventKey* if (frame->eventHandler()->keyEvent(keyboardEvent)) return TRUE; + + fprintf( stderr, "Key Event not handled by browser - %s\n", keyboardEvent.keyIdentifier().utf8().data() ); + /* Chain up to our parent class for binding activation */ return GTK_WIDGET_CLASS(webkit_web_view_parent_class)->key_press_event(widget, event); } @@ -1039,14 +1053,8 @@ static void webkit_web_view_realize(GtkWidget* widget) #ifdef GTK_API_VERSION_2 static void webkit_web_view_set_scroll_adjustments(WebKitWebView* webView, GtkAdjustment* horizontalAdjustment, GtkAdjustment* verticalAdjustment) { - // This may be called after the page has been destroyed, in which case we do nothing. - Page* page = core(webView); - if (!page) - return; - - WebKit::ChromeClient* client = static_cast(page->chrome()->client()); - client->adjustmentWatcher()->setHorizontalAdjustment(horizontalAdjustment); - client->adjustmentWatcher()->setVerticalAdjustment(verticalAdjustment); + setHorizontalAdjustment(webView, horizontalAdjustment); + setVerticalAdjustment(webView, verticalAdjustment); } #endif @@ -1307,6 +1315,11 @@ static void webkit_web_view_dispose(GObject* object) priv->disposing = TRUE; + // Make sure GtkAdjustmentWatcher won't be reacting to adjustment changes after the + // WebView is destroyed. + setHorizontalAdjustment(webView, 0); + setVerticalAdjustment(webView, 0); + // These smart pointers are cleared manually, because some cleanup operations are // very sensitive to their value. We may crash if these are done in the wrong order. priv->backForwardList.clear(); @@ -1372,6 +1385,7 @@ static gboolean webkit_navigation_request_handled(GSignalInvocationHint* ihint, static AtkObject* webkit_web_view_get_accessible(GtkWidget* widget) { +#if HAVE(ACCESSIBILITY) WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); if (!core(webView)) return 0; @@ -1404,6 +1418,9 @@ static AtkObject* webkit_web_view_get_accessible(GtkWidget* widget) // We don't want the extra reference returned by ref_accessible_child. g_object_unref(axWebView); return axWebView; +#else + return 0; +#endif } static gdouble webViewGetDPI(WebKitWebView* webView) @@ -1450,6 +1467,7 @@ static void webkit_web_view_screen_changed(GtkWidget* widget, GdkScreen* previou static void webkit_web_view_drag_end(GtkWidget* widget, GdkDragContext* context) { +#if ENABLE(DRAG_SUPPORT) WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); WebKitWebViewPrivate* priv = webView->priv; @@ -1487,10 +1505,12 @@ static void webkit_web_view_drag_end(GtkWidget* widget, GdkDragContext* context) PlatformMouseEvent platformEvent(&event->button); frame->eventHandler()->dragSourceEndedAt(platformEvent, gdkDragActionToDragOperation(gdk_drag_context_get_selected_action(context))); +#endif } static void webkit_web_view_drag_data_get(GtkWidget* widget, GdkDragContext* context, GtkSelectionData* selectionData, guint info, guint) { +#if ENABLE(DRAG_SUPPORT) WebKitWebViewPrivate* priv = WEBKIT_WEB_VIEW(widget)->priv; // This might happen if a drag is still in progress after a WebKitWebView @@ -1499,10 +1519,13 @@ static void webkit_web_view_drag_data_get(GtkWidget* widget, GdkDragContext* con return; PasteboardHelper::defaultPasteboardHelper()->fillSelectionData(selectionData, info, priv->draggingDataObjects.get(context).get()); +#endif } static gboolean doDragLeaveLater(DroppingContext* context) { +#if ENABLE(DRAG_SUPPORT) + WebKitWebView* webView = context->webView; WebKitWebViewPrivate* priv = webView->priv; @@ -1525,11 +1548,14 @@ static gboolean doDragLeaveLater(DroppingContext* context) core(webView)->dragController()->dragEnded(); priv->droppingContexts.remove(context->gdkContext); delete context; +#endif return FALSE; } static void webkit_web_view_drag_leave(GtkWidget* widget, GdkDragContext* context, guint time) { +#if ENABLE(DRAG_SUPPORT) + WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); WebKitWebViewPrivate* priv = webView->priv; @@ -1540,10 +1566,12 @@ static void webkit_web_view_drag_leave(GtkWidget* widget, GdkDragContext* contex // the drag-drop signal. We want the actions for drag-leave to happen after // those for drag-drop, so schedule them to happen asynchronously here. g_timeout_add(0, reinterpret_cast(doDragLeaveLater), priv->droppingContexts.get(context)); +#endif } static gboolean webkit_web_view_drag_motion(GtkWidget* widget, GdkDragContext* context, gint x, gint y, guint time) { +#if ENABLE(DRAG_SUPPORT) WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); WebKitWebViewPrivate* priv = webView->priv; @@ -1578,11 +1606,14 @@ static gboolean webkit_web_view_drag_motion(GtkWidget* widget, GdkDragContext* c DragOperation operation = core(webView)->dragController()->dragUpdated(&dragData); gdk_drag_status(context, dragOperationToSingleGdkDragAction(operation), time); +#endif return TRUE; } static void webkit_web_view_drag_data_received(GtkWidget* widget, GdkDragContext* context, gint x, gint y, GtkSelectionData* selectionData, guint info, guint time) { +#if ENABLE(DRAG_SUPPORT) + WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); WebKitWebViewPrivate* priv = webView->priv; @@ -1604,10 +1635,12 @@ static void webkit_web_view_drag_data_received(GtkWidget* widget, GdkDragContext DragData dragData(droppingContext->dataObject.get(), position, convertWidgetPointToScreenPoint(widget, position), gdkDragActionToDragOperation(gdk_drag_context_get_actions(context))); DragOperation operation = core(webView)->dragController()->dragEntered(&dragData); gdk_drag_status(context, dragOperationToSingleGdkDragAction(operation), time); +#endif } static gboolean webkit_web_view_drag_drop(GtkWidget* widget, GdkDragContext* context, gint x, gint y, guint time) { +#if ENABLE(DRAG_SUPPORT) WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); WebKitWebViewPrivate* priv = webView->priv; @@ -1622,6 +1655,7 @@ static gboolean webkit_web_view_drag_drop(GtkWidget* widget, GdkDragContext* con core(webView)->dragController()->performDrag(&dragData); gtk_drag_finish(context, TRUE, FALSE, time); +#endif return TRUE; } @@ -3233,7 +3267,7 @@ static void webkit_web_view_update_settings(WebKitWebView* webView) coreSettings->setHyperlinkAuditingEnabled(settingsPrivate->enableHyperlinkAuditing); coreSettings->setDNSPrefetchingEnabled(settingsPrivate->enableDNSPrefetching); -#if ENABLE(DATABASE) +#if ENABLE(SQL_DATABASE) AbstractDatabase::setIsAvailable(settingsPrivate->enableHTML5Database); #endif @@ -3318,7 +3352,7 @@ static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GPar settings->setPrivateBrowsingEnabled(g_value_get_boolean(&value)); else if (name == g_intern_string("enable-caret-browsing")) settings->setCaretBrowsingEnabled(g_value_get_boolean(&value)); -#if ENABLE(DATABASE) +#if ENABLE(SQL_DATABASE) else if (name == g_intern_string("enable-html5-database")) { AbstractDatabase::setIsAvailable(g_value_get_boolean(&value)); } @@ -3399,7 +3433,9 @@ static void webkit_web_view_init(WebKitWebView* webView) pageClients.contextMenuClient = new WebKit::ContextMenuClient(webView); pageClients.editorClient = new WebKit::EditorClient(webView); pageClients.dragClient = new WebKit::DragClient(webView); +#if ENABLE(INSPECTOR) pageClients.inspectorClient = new WebKit::InspectorClient(webView); +#endif #if ENABLE(DEVICE_ORIENTATION) pageClients.deviceMotionClient = static_cast(new DeviceMotionClientGtk); @@ -3443,6 +3479,10 @@ static void webkit_web_view_init(WebKitWebView* webView) gtk_drag_dest_set_target_list(GTK_WIDGET(webView), PasteboardHelper::defaultPasteboardHelper()->targetList()); priv->selfScrolling = false; + +// WebCore::MemoryCache* cache = WebCore::memoryCache(); +// cache->setDisabled(true); + } GtkWidget* webkit_web_view_new(void) @@ -4983,6 +5023,47 @@ GtkMenu* webkit_web_view_get_context_menu(WebKitWebView* webView) #endif } +gboolean +webkit_web_view_check_multitap_event(WebKitWebView *webView, GdkEventKey *keyEvent, gint* x, gint* y, gint* height ) +{ + Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); + + if (!frame->view()) + return FALSE; + + + /* kdhong - virtual keyboard */ + Node* node = getFocusedNode( frame ); + + if( node ) + { + if( node->shouldUseInputMethod() == TRUE ) + { + if( node->isElementNode() == true ) + { + Element* element = static_cast(node); + *x = 0; + *y = 0; + *height = element->offsetHeight(); + + while( element ) + { + *x += element->offsetLeft(); + *y += element->offsetTop(); + + element = element->offsetParent(); + } + } + + return TRUE; + } + } + + return FALSE; +} + + + void webViewEnterFullscreen(WebKitWebView* webView, Node* node) { if (!node->hasTagName(HTMLNames::videoTag))