summaryrefslogtreecommitdiffstats
path: root/WebKit/efl/WebCoreSupport
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/efl/WebCoreSupport')
-rw-r--r--WebKit/efl/WebCoreSupport/ChromeClientEfl.cpp28
-rw-r--r--WebKit/efl/WebCoreSupport/ChromeClientEfl.h4
-rw-r--r--WebKit/efl/WebCoreSupport/ContextMenuClientEfl.cpp30
-rw-r--r--WebKit/efl/WebCoreSupport/ContextMenuClientEfl.h4
-rw-r--r--WebKit/efl/WebCoreSupport/EditorClientEfl.cpp16
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;