diff options
Diffstat (limited to 'WebKit/efl/WebCoreSupport')
-rw-r--r-- | WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp | 28 | ||||
-rw-r--r-- | WebKit/efl/WebCoreSupport/ChromeClientEfl.h | 4 | ||||
-rw-r--r-- | WebKit/efl/WebCoreSupport/ContextMenuClientEfl.cpp | 30 | ||||
-rw-r--r-- | WebKit/efl/WebCoreSupport/ContextMenuClientEfl.h | 4 | ||||
-rw-r--r-- | WebKit/efl/WebCoreSupport/EditorClientEfl.cpp | 16 |
5 files changed, 67 insertions, 15 deletions
diff --git a/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp b/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp index 92b95b6..c51befb 100644 --- a/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp +++ b/WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp @@ -34,6 +34,7 @@ #include "ChromeClientEfl.h" #if ENABLE(DATABASE) +#include "DatabaseDetails.h" #include "DatabaseTracker.h" #endif #include "EWebKit.h" @@ -188,6 +189,16 @@ bool ChromeClientEfl::menubarVisible() return visible; } +void ChromeClientEfl::createSelectPopup(PopupMenuClient* client, int selected, const IntRect& rect) +{ + ewk_view_popup_new(m_view, client, selected, rect); +} + +bool ChromeClientEfl::destroySelectPopup() +{ + return ewk_view_popup_destroy(m_view); +} + void ChromeClientEfl::setResizable(bool) { notImplemented(); @@ -345,12 +356,21 @@ void ChromeClientEfl::reachedMaxAppCacheSize(int64_t spaceNeeded) #if ENABLE(DATABASE) void ChromeClientEfl::exceededDatabaseQuota(Frame* frame, const String& databaseName) { - uint64_t quota = ewk_settings_web_database_default_quota_get(); + uint64_t quota; + SecurityOrigin* origin = frame->document()->securityOrigin(); + + DatabaseDetails details = DatabaseTracker::tracker().detailsForNameAndOrigin(databaseName, origin); + quota = ewk_view_exceeded_database_quota(m_view, + kit(frame), databaseName.utf8().data(), + details.currentUsage(), details.expectedUsage()); - if (!DatabaseTracker::tracker().hasEntryForOrigin(frame->document()->securityOrigin())) - DatabaseTracker::tracker().setQuota(frame->document()->securityOrigin(), quota); + /* if client did not set quota, and database is being created now, the + * default quota is applied + */ + if (!quota && !DatabaseTracker::tracker().hasEntryForOrigin(origin)) + quota = ewk_settings_web_database_default_quota_get(); - ewk_view_exceeded_database_quota(m_view, kit(frame), databaseName.utf8().data()); + DatabaseTracker::tracker().setQuota(origin, quota); } #endif diff --git a/WebKit/efl/WebCoreSupport/ChromeClientEfl.h b/WebKit/efl/WebCoreSupport/ChromeClientEfl.h index 8df8483..399ef7f 100644 --- a/WebKit/efl/WebCoreSupport/ChromeClientEfl.h +++ b/WebKit/efl/WebCoreSupport/ChromeClientEfl.h @@ -25,6 +25,7 @@ #include "ChromeClient.h" #include "KURL.h" +#include "PopupMenu.h" #include <Evas.h> namespace WebCore { @@ -69,6 +70,9 @@ public: virtual void setMenubarVisible(bool); virtual bool menubarVisible(); + virtual void createSelectPopup(PopupMenuClient*, int selected, const IntRect& rect); + virtual bool destroySelectPopup(); + virtual void setResizable(bool); virtual void addMessageToConsole(MessageSource, MessageType, MessageLevel, const String& message, diff --git a/WebKit/efl/WebCoreSupport/ContextMenuClientEfl.cpp b/WebKit/efl/WebCoreSupport/ContextMenuClientEfl.cpp index aaa64d7..19c3705 100644 --- a/WebKit/efl/WebCoreSupport/ContextMenuClientEfl.cpp +++ b/WebKit/efl/WebCoreSupport/ContextMenuClientEfl.cpp @@ -29,9 +29,12 @@ #include "ContextMenuClientEfl.h" #include "ContextMenu.h" +#include "EWebKit.h" +#include "ewk_private.h" #include "HitTestResult.h" #include "KURL.h" #include "NotImplemented.h" +#include "PlatformMenuDescription.h" using namespace WebCore; @@ -47,10 +50,11 @@ void ContextMenuClientEfl::contextMenuDestroyed() delete this; } -PlatformMenuDescription ContextMenuClientEfl::getCustomMenuFromDefaultItems(ContextMenu*) +PlatformMenuDescription ContextMenuClientEfl::getCustomMenuFromDefaultItems(ContextMenu* menu) { - notImplemented(); - return 0; + PlatformMenuDescription newmenu = ewk_context_menu_custom_get(static_cast<Ewk_Context_Menu*>(menu->releasePlatformDescription())); + + return newmenu; } void ContextMenuClientEfl::contextMenuItemSelected(ContextMenuItem*, const ContextMenu*) @@ -89,4 +93,24 @@ void ContextMenuClientEfl::stopSpeaking() notImplemented(); } +PlatformMenuDescription ContextMenuClientEfl::createPlatformDescription(ContextMenu* menu) +{ + return (PlatformMenuDescription) ewk_context_menu_new(m_view, menu->controller()); +} + +void ContextMenuClientEfl::freePlatformDescription(PlatformMenuDescription menu) +{ + ewk_context_menu_free(static_cast<Ewk_Context_Menu*>(menu)); +} + +void ContextMenuClientEfl::appendItem(PlatformMenuDescription menu, ContextMenuItem& item) +{ + ewk_context_menu_item_append(static_cast<Ewk_Context_Menu*>(menu), item); +} + +void ContextMenuClientEfl::show(PlatformMenuDescription menu) +{ + ewk_context_menu_show(static_cast<Ewk_Context_Menu*>(menu)); +} + } diff --git a/WebKit/efl/WebCoreSupport/ContextMenuClientEfl.h b/WebKit/efl/WebCoreSupport/ContextMenuClientEfl.h index 2c3818c..8a289a1 100644 --- a/WebKit/efl/WebCoreSupport/ContextMenuClientEfl.h +++ b/WebKit/efl/WebCoreSupport/ContextMenuClientEfl.h @@ -50,6 +50,10 @@ class ContextMenuClientEfl : public ContextMenuClient { virtual bool isSpeaking(); virtual void stopSpeaking(); + PlatformMenuDescription createPlatformDescription(ContextMenu*); + void freePlatformDescription(PlatformMenuDescription); + void appendItem(PlatformMenuDescription, ContextMenuItem&); + void show(PlatformMenuDescription menu); private: Evas_Object* m_view; }; diff --git a/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp b/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp index b87a91a..3c4016f 100644 --- a/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp +++ b/WebKit/efl/WebCoreSupport/EditorClientEfl.cpp @@ -339,26 +339,26 @@ bool EditorClientEfl::handleEditingKeyboardEvent(KeyboardEvent* event) if (caretBrowsing) { switch (keyEvent->windowsVirtualKeyCode()) { case VK_LEFT: - frame->selection()->modify(keyEvent->shiftKey() ? SelectionController::EXTEND : SelectionController::MOVE, - SelectionController::LEFT, + frame->selection()->modify(keyEvent->shiftKey() ? SelectionController::AlterationExtend : SelectionController::AlterationMove, + SelectionController::DirectionLeft, keyEvent->ctrlKey() ? WordGranularity : CharacterGranularity, true); return true; case VK_RIGHT: - frame->selection()->modify(keyEvent->shiftKey() ? SelectionController::EXTEND : SelectionController::MOVE, - SelectionController::RIGHT, + frame->selection()->modify(keyEvent->shiftKey() ? SelectionController::AlterationExtend : SelectionController::AlterationMove, + SelectionController::DirectionRight, keyEvent->ctrlKey() ? WordGranularity : CharacterGranularity, true); return true; case VK_UP: - frame->selection()->modify(keyEvent->shiftKey() ? SelectionController::EXTEND : SelectionController::MOVE, - SelectionController::BACKWARD, + frame->selection()->modify(keyEvent->shiftKey() ? SelectionController::AlterationExtend : SelectionController::AlterationMove, + SelectionController::DirectionBackward, keyEvent->ctrlKey() ? ParagraphGranularity : LineGranularity, true); return true; case VK_DOWN: - frame->selection()->modify(keyEvent->shiftKey() ? SelectionController::EXTEND : SelectionController::MOVE, - SelectionController::FORWARD, + frame->selection()->modify(keyEvent->shiftKey() ? SelectionController::AlterationExtend : SelectionController::AlterationMove, + SelectionController::DirectionForward, keyEvent->ctrlKey() ? ParagraphGranularity : LineGranularity, true); return true; |