WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-143566-20150715110431.patch (text/plain), 48.09 KB, created by
Hunseop Jeong
on 2015-07-14 19:05:39 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Hunseop Jeong
Created:
2015-07-14 19:05:39 PDT
Size:
48.09 KB
patch
obsolete
>Subversion Revision: 186827 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index bd0c5b59c1add8efd54ed8193c11df83fcebba1d..244bef01948007ab63740810d6ace79c3526e38f 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,53 @@ >+2015-07-14 Hunseop Jeong <hs85.jeong@samsung.com> >+ >+ [EFL] Scrollbar is not drawn on MiniBrowser. >+ https://bugs.webkit.org/show_bug.cgi?id=143566 >+ >+ Reviewed by Gyuyoung Kim. >+ >+ Implement the ScrollbarThemeEfl to draw the scrollbar on EFL port. >+ >+ * PlatformEfl.cmake: Removed the ScrollbarEfl.cpp. >+ >+ * platform/Scrollbar.cpp: Removed the !PLATFORM(EFL) guard to use the createNativeScrollbar(). >+ >+ * platform/efl/DefaultTheme/CMakeLists.txt: Replaced the image files with new ones. >+ >+ * platform/efl/DefaultTheme/widget/scrollbar/scrollbar.edc: >+ * platform/efl/DefaultTheme/widget/scrollbar/scrollbar_bg_horizontal.png: Added. >+ * platform/efl/DefaultTheme/widget/scrollbar/scrollbar_bg_vertical.png: Added. >+ * platform/efl/DefaultTheme/widget/scrollbar/scrollbar_h.png: Removed. >+ * platform/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_h.png: Removed. >+ * platform/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_v.png: Removed. >+ * platform/efl/DefaultTheme/widget/scrollbar/scrollbar_thumb_horizontal.png: Added. >+ * platform/efl/DefaultTheme/widget/scrollbar/scrollbar_thumb_vertical.png: Added. >+ * platform/efl/DefaultTheme/widget/scrollbar/scrollbar_v.png: Removed. >+ * platform/efl/RenderThemeEfl.cpp: >+ (WebCore::toEdjeGroup): >+ (WebCore::RenderThemeEfl::paintThemePart): Added the new function to draw the scrollbar >+ using the RenderThemeEfl. >+ >+ * platform/efl/RenderThemeEfl.h: >+ * platform/efl/ScrollbarEfl.cpp: Removed. >+ * platform/efl/ScrollbarEfl.h: Removed. >+ * platform/efl/ScrollbarThemeEfl.cpp: Implemented the default functions to draw the >+ scrollbar. >+ (WebCore::scrollbarMap): >+ (WebCore::ScrollbarThemeEfl::~ScrollbarThemeEfl): >+ (WebCore::ScrollbarThemeEfl::scrollbarThickness): >+ (WebCore::ScrollbarThemeEfl::hasThumb): >+ (WebCore::ScrollbarThemeEfl::backButtonRect): >+ (WebCore::ScrollbarThemeEfl::forwardButtonRect): >+ (WebCore::ScrollbarThemeEfl::trackRect): >+ (WebCore::ScrollbarThemeEfl::minimumThumbLength): >+ (WebCore::ScrollbarThemeEfl::paintTrackBackground): >+ (WebCore::ScrollbarThemeEfl::paintThumb): >+ (WebCore::ScrollbarThemeEfl::registerScrollbar): >+ (WebCore::ScrollbarThemeEfl::unregisterScrollbar): >+ (WebCore::ScrollbarThemeEfl::loadThemeIfNeeded): >+ * platform/efl/ScrollbarThemeEfl.h: >+ (WebCore::ScrollbarThemeEfl::usesOverlayScrollbars): >+ > 2015-07-14 Antti Koivisto <antti@apple.com> > > REGRESSION (r177876): store.apple.com profile and cart icons are missing >diff --git a/Source/WebCore/PlatformEfl.cmake b/Source/WebCore/PlatformEfl.cmake >index 7103d9695f9d28b9ea8e9d6de96798550ad66572..c1f6f4c512209a8930db475c881e66b37e4a96b3 100644 >--- a/Source/WebCore/PlatformEfl.cmake >+++ b/Source/WebCore/PlatformEfl.cmake >@@ -97,7 +97,6 @@ list(APPEND WebCore_SOURCES > platform/efl/PlatformScreenEfl.cpp > platform/efl/PlatformWheelEventEfl.cpp > platform/efl/RenderThemeEfl.cpp >- platform/efl/ScrollbarEfl.cpp > platform/efl/ScrollbarThemeEfl.cpp > platform/efl/SharedTimerEfl.cpp > platform/efl/SoundEfl.cpp >diff --git a/Source/WebCore/platform/Scrollbar.cpp b/Source/WebCore/platform/Scrollbar.cpp >index ade0b142c2ac27b495a6c39d36e297828c2d1971..c4e1c551724295f49c5529e20b1fab4f1b215979 100644 >--- a/Source/WebCore/platform/Scrollbar.cpp >+++ b/Source/WebCore/platform/Scrollbar.cpp >@@ -43,12 +43,10 @@ > > namespace WebCore { > >-#if !PLATFORM(EFL) > PassRefPtr<Scrollbar> Scrollbar::createNativeScrollbar(ScrollableArea& scrollableArea, ScrollbarOrientation orientation, ScrollbarControlSize size) > { > return adoptRef(new Scrollbar(scrollableArea, orientation, size)); > } >-#endif > > int Scrollbar::maxOverlapBetweenPages() > { >diff --git a/Source/WebCore/platform/efl/DefaultTheme/CMakeLists.txt b/Source/WebCore/platform/efl/DefaultTheme/CMakeLists.txt >index 1d3d51d9697e908501164855eff6fbbeb7d0a35d..6ed62a1d577d3602ea5e2edd5ec2a8cef2be621d 100644 >--- a/Source/WebCore/platform/efl/DefaultTheme/CMakeLists.txt >+++ b/Source/WebCore/platform/efl/DefaultTheme/CMakeLists.txt >@@ -52,10 +52,10 @@ macro(GENERATE_THEME _target_name _name _option) > widget/radio/img_radio_on.png > widget/radio/radio.edc > widget/scrollbar/scrollbar.edc >- widget/scrollbar/scrollbar_h.png >- widget/scrollbar/scrollbar_knob_h.png >- widget/scrollbar/scrollbar_knob_v.png >- widget/scrollbar/scrollbar_v.png >+ widget/scrollbar/scrollbar_bg_horizontal.png >+ widget/scrollbar/scrollbar_bg_vertical.png >+ widget/scrollbar/scrollbar_thumb_horizontal.png >+ widget/scrollbar/scrollbar_thumb_vertical.png > widget/search/cancel/cancel_normal_button2.png > widget/search/cancel/cancel_normal_button.png > widget/search/cancel/search_cancel.edc >diff --git a/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar.edc b/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar.edc >index b4eead029328f26a4fdc8d952a500e679e5db554..bf4d34edeaaa0fa09df76eaeb0fe285ea5794fd1 100644 >--- a/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar.edc >+++ b/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar.edc >@@ -1,5 +1,6 @@ > /* > Copyright (C) 2008,2009 INdT - Instituto Nokia de Tecnologia >+ Copyright (C) 2015 Samsung Electronics. All rights reserved. > > This file is free software; you can redistribute it and/or > modify it under the terms of the GNU Library General Public >@@ -17,245 +18,112 @@ > Boston, MA 02110-1301, USA. > */ > >-group { >- name: "scrollbar.vertical"; >+ group { >+ name: "webkit/widget/scrollbar/vertical_thumb"; >+ min: 0 0; /* if > 0, this is the minimum size that will be allocated. >+ * If wants to draw on top, just overflow using edje's rel1/rel2 >+ */ > >- min: 0 0; /* if > 0, this is the minimum size that will be allocated. >- * If wants to draw on top, just overflow usign edje's rel1/rel2 >- */ >+ images { >+ image: "widget/scrollbar/scrollbar_thumb_vertical.png" COMP; >+ } > >- images { >- image: "widget/scrollbar/scrollbar_v.png" COMP; >- image: "widget/scrollbar/scrollbar_knob_v.png" COMP; >- } >- >- script { >- public hide_timer; >- >- public hide_timer_cb(val) { >- run_program(PROGRAM:"hide"); >- return 0; >- } >- >- public hide_timer_stop() { >- new id = get_int(hide_timer); >- if (id <= 0) >- return; >- >- cancel_timer(id); >- set_int(hide_timer, 0); >- } >- >- public hide_timer_start() { >- set_int(hide_timer, timer(1.0, "hide_timer_cb", 0)); >- } >- >- public message(Msg_Type:type, id, ...) { >- if ((id == 0) && (type == MSG_FLOAT_SET)) { >- new Float:vy, Float:sy; >- >- vy = getfarg(2); >- sy = getfarg(3); >- >- if (vy >= 0.0) { >- set_drag_size(PART:"img.knob", 1.0, sy); >- set_drag(PART:"img.knob", 0.0, vy); >- run_program(PROGRAM:"show"); >- } else >- run_program(PROGRAM:"hide"); >- >- hide_timer_stop(); >- hide_timer_start(); >- } >- } >- >- public update_drag_pos() { >- new Float:x, Float:y; >- get_drag(PART:"img.knob", x, y); >- send_message(MSG_FLOAT, 1, y); >- } >- } >- >- parts { >+ parts { > part { >- name: "rect.base"; >+ name: "vertical.rect.base"; > type: RECT; > description { >- min: 10 0; >- max: 10 999999; >- align: 1.0 0.5; > state: "default" 0.0; >+ min: 8 0; >+ max: 8 999999; >+ align: 1.0 0.5; > color: 255 255 255 0; > } > } > > part { >- name: "rect.clipper"; >- type: RECT; >+ name: "vertical.thumb"; >+ type: IMAGE; > description { > state: "default" 0.0; >- color: 255 255 255 255; >- rel1.to: "rect.base"; >- rel2.to: "rect.base"; >- } >- description { >- state: "hidden" 0.0; >- color: 255 255 255 64; >- rel1.to: "rect.base"; >- rel2.to: "rect.base"; >+ min: 8 2; >+ max: 8 999999; >+ align: 0.5 0.5; >+ rel1 {to: "vertical.thumb.area"; relative: 0 0;} >+ rel2 {to: "vertical.thumb.area"; relative: 1 1;} >+ image { >+ normal: "widget/scrollbar/scrollbar_thumb_vertical.png"; >+ middle: SOLID; >+ } > } > } > > part { >- name: "img.scrollbar"; >- type: IMAGE; >- mouse_events: 0; >- clip_to: "rect.clipper"; >+ name: "vertical.thumb.area"; >+ type: RECT; > description { > state: "default" 0.0; >- min: 1 30; >- max: 1 999999; >+ min: 8 2; >+ max: 8 999999; > align: 0.5 0.5; >- image { >- normal: "widget/scrollbar/scrollbar_v.png"; >- border: 0 0 15 15; >- middle: SOLID; >- } >- rel1.to: "rect.base"; >- rel2.to: "rect.base"; >+ color: 255 0 0 0; > } > } >+ } >+ } >+ >+ group { >+ name: "webkit/widget/scrollbar/vertical_background"; >+ min: 0 0; /* if > 0, this is the minimum size that will be allocated. >+ * If wants to draw on top, just overflow using edje's rel1/rel2 >+ */ >+ >+ images { >+ image: "widget/scrollbar/scrollbar_bg_vertical.png" COMP; >+ } > >+ parts { > part { >- name: "rect.knobarea"; >+ name: "vertical.rect.base"; > type: RECT; > description { > state: "default" 0.0; >+ min: 10 0; >+ max: 10 999999; >+ align: 1.0 0.5; > color: 255 255 255 0; >- min: 5 5; >- max: 5 999999; >- align: 0.5 0.5; >- rel1.to: "rect.base"; >- rel2.to: "rect.base"; > } > } > > part { >- name: "img.knob"; >+ name: "vertical.background"; > type: IMAGE; >- mouse_events: 1; >- clip_to: "rect.clipper"; >- dragable { >- x: 0 0 0; >- y: 1 1 0; >- confine: "rect.knobarea"; >- } > description { > state: "default" 0.0; >- min: 5 5; >- max: 5 999999; >+ min: 10 0; >+ max: 10 999999; > align: 0.5 0.5; >- image { >- normal: "widget/scrollbar/scrollbar_knob_v.png"; >- border: 3 3 3 3; >- middle: SOLID; >- } >+ rel1 {to: "vertical.rect.base"; relative: 0 0;} >+ rel2 {to: "vertical.rect.base"; relative: 1 1;} >+ image.normal: "widget/scrollbar/scrollbar_bg_vertical.png"; > } > } >- } >- programs { >- program { >- name: "load"; >- signal: "load"; >- action: STATE_SET "hidden" 0.0; >- target: "rect.clipper"; >- } >- program { >- name: "hide"; >- action: STATE_SET "hidden" 0.0; >- transition: ACCELERATE 0.5; >- target: "rect.clipper"; >- } >+ } >+ } > >- program { >- name: "show"; >- action: STATE_SET "default" 0.0; >- target: "rect.clipper"; >- } >+ group { >+ name: "webkit/widget/scrollbar/horizontal_thumb"; >+ min: 0 0; /* if > 0, this is the minimum size that will be allocated. >+ * If wants to draw on top, just overflow using edje's rel1/rel2 >+ */ > >- program { >- name: "dragged"; >- signal: "drag"; >- source: "img.knob"; >- script { >- update_drag_pos(); >- } >- } >- } >-} >+ images { >+ image: "widget/scrollbar/scrollbar_thumb_horizontal.png" COMP; >+ } > >-group { >- name: "scrollbar.horizontal"; >- >- min: 0 0; /* if > 0, this is the minimum size that will be allocated. >- * If wants to draw on top, just overflow usign edje's rel1/rel2 >- */ >- >- images { >- image: "widget/scrollbar/scrollbar_h.png" COMP; >- image: "widget/scrollbar/scrollbar_knob_h.png" COMP; >- } >- >- script { >- public hide_timer; >- >- public hide_timer_cb(val) { >- run_program(PROGRAM:"hide"); >- return 0; >- } >- >- public hide_timer_stop() { >- new id = get_int(hide_timer); >- if (id <= 0) >- return; >- >- cancel_timer(id); >- set_int(hide_timer, 0); >- } >- >- public hide_timer_start() { >- set_int(hide_timer, timer(1.0, "hide_timer_cb", 0)); >- } >- >- public message(Msg_Type:type, id, ...) { >- if ((id == 0) && (type == MSG_FLOAT_SET)) { >- new Float:vx, Float:sx; >- >- vx = getfarg(2); >- sx = getfarg(3); >- >- if (vx >= 0.0) { >- set_drag_size(PART:"img.knob", sx, 1.0); >- set_drag(PART:"img.knob", vx, 0.0); >- run_program(PROGRAM:"show"); >- } else >- run_program(PROGRAM:"hide"); >- >- hide_timer_stop(); >- hide_timer_start(); >- } >- } >- >- public update_drag_pos() { >- new Float:x, Float:y; >- get_drag(PART:"img.knob", x, y); >- send_message(MSG_FLOAT, 1, x); >- } >- } >- >- parts { >+ parts { > part { >- name: "rect.base"; >+ name: "horizontal.rect.base"; > type: RECT; > description { > state: "default" 0.0; >@@ -267,106 +135,71 @@ group { > } > > part { >- name: "rect.clipper"; >- type: RECT; >+ name: "horizontal.thumb"; >+ type: IMAGE; > description { > state: "default" 0.0; >- color: 255 255 255 255; >- rel1.to: "rect.base"; >- rel2.to: "rect.base"; >- } >- description { >- state: "hidden" 0.0; >- color: 255 255 255 64; >- rel1.to: "rect.base"; >- rel2.to: "rect.base"; >+ min: 2 8; >+ max: 999999 8; >+ align: 0.5 0.5; >+ rel1 {to: "horizontal.rect.base"; relative: 0 0;} >+ rel2 {to: "horizontal.rect.base"; relative: 1 1;} >+ image { >+ normal: "widget/scrollbar/scrollbar_thumb_horizontal.png"; >+ middle: SOLID; >+ } > } > } > > part { >- name: "img.scrollbar"; >- type: IMAGE; >- mouse_events: 0; >- clip_to: "rect.clipper"; >+ name: "horizontal.thumb.area"; >+ type: RECT; > description { > state: "default" 0.0; >- min: 30 1; >- max: 999999 1; >+ min: 2 8; >+ max: 999999 8; > align: 0.5 0.5; >- image { >- normal: "widget/scrollbar/scrollbar_h.png"; >- border: 15 15 0 0; >- middle: SOLID; >- } >- rel1.to: "rect.base"; >- rel2.to: "rect.base"; >- } >+ color: 255 0 0 0; >+ } > } >+ } >+ } >+ >+ group { >+ name: "webkit/widget/scrollbar/horizontal_background"; >+ min: 0 0; /* if > 0, this is the minimum size that will be allocated. >+ * If wants to draw on top, just overflow using edje's rel1/rel2 >+ */ > >+ images { >+ image: "widget/scrollbar/scrollbar_bg_horizontal.png" COMP; >+ } > >+ parts { > part { >- name: "rect.knobarea"; >+ name: "horizontal.rect.base"; > type: RECT; > description { > state: "default" 0.0; >+ min: 0 10; >+ max: 999999 10; >+ align: 0.5 1.0; > color: 255 255 255 0; >- min: 5 5; >- max: 999999 5; >- align: 0.5 0.5; >- rel1.to: "rect.base"; >- rel2.to: "rect.base"; > } > } > > part { >- name: "img.knob"; >+ name: "horizontal.background"; > type: IMAGE; >- mouse_events: 1; >- clip_to: "rect.clipper"; >- dragable { >- x: 1 1 0; >- y: 0 0 0; >- confine: "rect.knobarea"; >- } > description { > state: "default" 0.0; >- min: 5 5; >- max: 999999 5; >- image { >- normal: "widget/scrollbar/scrollbar_knob_h.png"; >- border: 3 3 3 3; >- middle: SOLID; >- } >+ min: 0 10; >+ max: 99999 10; >+ align: 0.5 0.5; >+ rel1 {to: "horizontal.rect.base"; relative: 0 0;} >+ rel2 {to: "horizontal.rect.base"; relative: 1 1;} >+ image.normal: "widget/scrollbar/scrollbar_bg_horizontal.png"; > } > } >- } >- programs { >- program { >- name: "load"; >- signal: "load"; >- action: STATE_SET "hidden" 0.0; >- target: "rect.clipper"; >- } >- program { >- name: "hide"; >- action: STATE_SET "hidden" 0.0; >- transition: ACCELERATE 0.5; >- target: "rect.clipper"; >- } >- >- program { >- name: "show"; >- action: STATE_SET "default" 0.0; >- target: "rect.clipper"; >- } >- >- program { >- name: "dragged"; >- signal: "drag"; >- source: "img.knob"; >- script { >- update_drag_pos(); >- } >- } >- } >-} >+ } >+ } >diff --git a/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar_bg_horizontal.png b/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar_bg_horizontal.png >new file mode 100644 >index 0000000000000000000000000000000000000000..6a727551ca6ba025291a7410bc55844ac015059a >GIT binary patch >literal 2801 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 >Dm3l2T > >literal 0 >HcmV?d00001 > >diff --git a/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar_bg_vertical.png b/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar_bg_vertical.png >new file mode 100644 >index 0000000000000000000000000000000000000000..32eb32b5cff082057d62bbf023fa79275f0ab4a5 >GIT binary patch >literal 2790 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 > >literal 0 >HcmV?d00001 > >diff --git a/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar_h.png b/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar_h.png >deleted file mode 100644 >index 6703ea8d0509a4556522f6f8bef0afcbea624aca..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 161 >zcmeAS@N?(olHy`uVBq!ia0vp^e}I^ggAGXjT7Gx|kYXuz@(kesf*OvL4j@0m)5S4F >z<NVu$hJwt70?ZCCZSq;N4$beYTq4MnUQ;EJx##rOYs?Qee-8`oT(T=#rSzPjC!>I; >zsvtw?)#lf`{;k?w&){>(ljne^&9MTZ@Trq`?6!Sw((s<!T~RlCe#hNsKsy*bUHx3v >IIVCg!0Q0~%YXATM > >diff --git a/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_h.png b/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_h.png >deleted file mode 100644 >index b64d5ce56f7cc5cd2e6be2d1682ae048e805f73c..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 177 >zcmeAS@N?(olHy`uVBq!ia0vp^DL~B1!3HEZdwH$~QY^(zo*^7SP{WbZ0pw?Rx;Tbd >zoPK+CBX5I&fb+%8lV`c!XrCmhkrC+PKT%TSW_#|5nQf8{kM42AZ|Vv1N>7`-q%kG` >zVd=X%CW|v`(#q!tdvP~te4d!jk)5q8d_cnUAL9WJ&*~*V*gdP&c6#o5<h<{{z@)Ei >YGo01qHa`@51hkXE)78&qol`;+0I}~s0{{R3 > >diff --git a/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_v.png b/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_v.png >deleted file mode 100644 >index 9aa37eca42d23da57994bb38d46a9f3a88c156fa..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 181 >zcmeAS@N?(olHy`uVBq!ia0vp^tU#Q?!3HG#j{lMZQY^(zo*^7SP{WbZ0p#a+x;Tb- >z9DjRlq2wV40hfm}cV0G`RHw9(vGHs<uR@S>$}dmzJA6!=nfh<4|L2lBF0s9%V$z=5 >zb}D<V8r-vU4{tyFEqYt{lAQIEwxmqi!eOta0|tML-HuFERMMMhV?4>mx}o;m&C7Cc >Z<V~lkKjC@&YXi_;22WQ%mvv4FO#sAEKy?5B > >diff --git a/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar_thumb_horizontal.png b/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar_thumb_horizontal.png >new file mode 100644 >index 0000000000000000000000000000000000000000..bde1b16e13ec58689156447264d0f8df75960441 >GIT binary patch >literal 3378 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 >HrxgARrb-?v > >literal 0 >HcmV?d00001 > >diff --git a/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar_thumb_vertical.png b/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar_thumb_vertical.png >new file mode 100644 >index 0000000000000000000000000000000000000000..d4be60456f8497e9b3440366da841deb25c2134f >GIT binary patch >literal 3373 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 >JqhDhFzX8619CQEx > >literal 0 >HcmV?d00001 > >diff --git a/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar_v.png b/Source/WebCore/platform/efl/DefaultTheme/widget/scrollbar/scrollbar_v.png >deleted file mode 100644 >index 364be0afbc4a3964313caec7c6c9ad96c773bef6..0000000000000000000000000000000000000000 >GIT binary patch >literal 0 >HcmV?d00001 > >literal 165 >zcmeAS@N?(olHy`uVBq!ia0vp^j6nQ{gAGV-lRW1Kq*#ibJVQ8upoSx*1IUl@ba4!^ >zIQ{ncMnPsp9@dNNQx`Bzdc9xvSHU8#4+^mfTOahKJYRb)O4gIV`aP$C;bu>lDd#Lz >zJ(r$Y!)i6Dq`0{F^LCdb;+}moEoZ*mf7WOD)-Wb7!G}GDGM@9rd&Kk;-hUOT0@}mi >M>FVdQ&MBb@017ZUXaE2J > >diff --git a/Source/WebCore/platform/efl/RenderThemeEfl.cpp b/Source/WebCore/platform/efl/RenderThemeEfl.cpp >index 28adcb0b2444f68fce3b2d31468434e4a6486693..afbd7ff528ba62df8d643a959c2d17dc13b990fd 100644 >--- a/Source/WebCore/platform/efl/RenderThemeEfl.cpp >+++ b/Source/WebCore/platform/efl/RenderThemeEfl.cpp >@@ -93,6 +93,10 @@ static const char* toEdjeGroup(FormType type) > "webkit/widget/checkbox", > "webkit/widget/combo", > "webkit/widget/progressbar", >+ "webkit/widget/scrollbar/horizontal_thumb", >+ "webkit/widget/scrollbar/horizontal_background", >+ "webkit/widget/scrollbar/vertical_thumb", >+ "webkit/widget/scrollbar/vertical_background", > "webkit/widget/search/field", > "webkit/widget/search/results_button", > "webkit/widget/search/results_decoration", >@@ -371,6 +375,29 @@ bool RenderThemeEfl::paintThemePart(const RenderObject& object, FormType type, c > return false; > } > >+bool RenderThemeEfl::paintThemePart(const GraphicsContext& context, FormType type, const IntRect& rect) >+{ >+ loadThemeIfNeeded(); >+ _ASSERT_ON_RELEASE_RETURN_VAL(edje(), false, "Could not paint native HTML part due to missing theme."); >+ >+ ThemePartCacheEntry* entry = getThemePartFromCache(type, rect.size()); >+ ASSERT(entry); >+ >+ edje_object_calc_force(entry->edje()); >+ edje_object_message_signal_process(entry->edje()); >+ evas_render(ecore_evas_get(entry->canvas())); >+ >+ cairo_t* cairo = context.platformContext()->cr(); >+ ASSERT(cairo); >+ >+ cairo_save(cairo); >+ cairo_set_source_surface(cairo, entry->surface(), rect.x(), rect.y()); >+ cairo_paint_with_alpha(cairo, 1.0); >+ cairo_restore(cairo); >+ >+ return false; >+} >+ > PassRefPtr<RenderTheme> RenderThemeEfl::create(Page* page) > { > return adoptRef(new RenderThemeEfl(page)); >diff --git a/Source/WebCore/platform/efl/RenderThemeEfl.h b/Source/WebCore/platform/efl/RenderThemeEfl.h >index 1d29939839dbda77b24faafaf7a48dd233d59795..706362676b0e48b7f9ee64d8cd7be20dc70cbde6 100644 >--- a/Source/WebCore/platform/efl/RenderThemeEfl.h >+++ b/Source/WebCore/platform/efl/RenderThemeEfl.h >@@ -45,6 +45,10 @@ enum FormType { // KEEP IN SYNC WITH edjeGroupFromFormType() > CheckBox, > ComboBox, > ProgressBar, >+ ScrollbarHorizontalThumb, >+ ScrollbarHorizontalTrackBackground, >+ ScrollbarVerticalThumb, >+ ScrollbarVerticalTrackBackground, > SearchField, > SearchFieldResultsButton, > SearchFieldResultsDecoration, >@@ -176,6 +180,8 @@ public: > void setThemePath(const String&); > String themePath() const; > >+ bool paintThemePart(const GraphicsContext&, FormType, const IntRect&); >+ > protected: > static float defaultFontSize; > >diff --git a/Source/WebCore/platform/efl/ScrollbarEfl.cpp b/Source/WebCore/platform/efl/ScrollbarEfl.cpp >deleted file mode 100644 >index 38dd41309d307d011981b5773c01d6bbc51df21d..0000000000000000000000000000000000000000 >--- a/Source/WebCore/platform/efl/ScrollbarEfl.cpp >+++ /dev/null >@@ -1,48 +0,0 @@ >-/* >- * Copyright (C) 2007 Holger Hans Peter Freyther zecke@selfish.org >- * (C) 2009 Kenneth Rohde Christiansen >- * (C) 2009 INdT, Instituto Nokia de Technologia >- * (C) 2009-2010 ProFUSION embedded systems >- * (C) 2009-2010 Samsung Electronics >- * >- * This library is free software; you can redistribute it and/or >- * modify it under the terms of the GNU Lesser General Public >- * License as published by the Free Software Foundation; either >- * version 2 of the License, or (at your option) any later version. >- * >- * This library is distributed in the hope that it will be useful, >- * but WITHOUT ANY WARRANTY; without even the implied warranty of >- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >- * Lesser General Public License for more details. >- * >- * You should have received a copy of the GNU Lesser General Public >- * License along with this library; if not, write to the Free Software >- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA >- */ >- >-#include "config.h" >-#include "ScrollbarEfl.h" >- >-#include "IntRect.h" >-#include "Settings.h" >- >-namespace WebCore { >- >-PassRefPtr<Scrollbar> Scrollbar::createNativeScrollbar(ScrollableArea& scrollableArea, ScrollbarOrientation orientation, ScrollbarControlSize size) >-{ >- if (Settings::mockScrollbarsEnabled()) >- return adoptRef(new Scrollbar(scrollableArea, orientation, size)); >- >- return adoptRef(new ScrollbarEfl(scrollableArea, orientation, size)); >-} >-ScrollbarEfl::ScrollbarEfl(ScrollableArea& scrollableArea, ScrollbarOrientation orientation, ScrollbarControlSize controlSize) >- >- : Scrollbar(scrollableArea, orientation, controlSize) >-{ >-} >- >-ScrollbarEfl::~ScrollbarEfl() >-{ >-} >- >-} >diff --git a/Source/WebCore/platform/efl/ScrollbarEfl.h b/Source/WebCore/platform/efl/ScrollbarEfl.h >deleted file mode 100644 >index 51215c7062613f492422b50bcb49e03a7f77301d..0000000000000000000000000000000000000000 >--- a/Source/WebCore/platform/efl/ScrollbarEfl.h >+++ /dev/null >@@ -1,49 +0,0 @@ >-/* >- * Copyright (C) 2004, 2006, 2008 Apple Inc. All rights reserved. >- * Copyright (C) 2008 INdT - Instituto Nokia de Tecnologia >- * Copyright (C) 2009-2010 ProFUSION embedded systems >- * Copyright (C) 2009-2010 Samsung Electronics >- * >- * Redistribution and use in source and binary forms, with or without >- * modification, are permitted provided that the following conditions >- * are met: >- * 1. Redistributions of source code must retain the above copyright >- * notice, this list of conditions and the following disclaimer. >- * 2. Redistributions in binary form must reproduce the above copyright >- * notice, this list of conditions and the following disclaimer in the >- * documentation and/or other materials provided with the distribution. >- * >- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY >- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE >- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR >- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR >- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, >- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, >- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR >- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY >- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT >- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE >- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. >- */ >- >-#ifndef ScrollbarEfl_h >-#define ScrollbarEfl_h >- >-#include "Scrollbar.h" >-#include <wtf/PassRefPtr.h> >- >-namespace WebCore { >- >-class ScrollbarEfl final : public Scrollbar { >-public: >- friend class Scrollbar; >- virtual ~ScrollbarEfl(); >- >-protected: >- ScrollbarEfl(ScrollableArea&, ScrollbarOrientation, ScrollbarControlSize); >- >-}; >- >-} >- >-#endif // ScrollbarEfl_h >diff --git a/Source/WebCore/platform/efl/ScrollbarThemeEfl.cpp b/Source/WebCore/platform/efl/ScrollbarThemeEfl.cpp >index f3be5669ce772a272b27be6c7710b596f14e3f71..59a49d04745aa63f9e7f111f51b3ed1bfeebeb7b 100644 >--- a/Source/WebCore/platform/efl/ScrollbarThemeEfl.cpp >+++ b/Source/WebCore/platform/efl/ScrollbarThemeEfl.cpp >@@ -29,6 +29,13 @@ > #include "config.h" > #include "ScrollbarThemeEfl.h" > >+#include "FrameView.h" >+#include "NotImplemented.h" >+#include "Page.h" >+#include "RenderThemeEfl.h" >+ >+#include <wtf/NeverDestroyed.h> >+ > namespace WebCore { > > ScrollbarTheme* ScrollbarTheme::nativeTheme() >@@ -37,5 +44,93 @@ ScrollbarTheme* ScrollbarTheme::nativeTheme() > return &theme; > } > >+static const int defaultThickness = 10; >+static const int scrollbarThumbMin = 2; >+ >+typedef HashSet<Scrollbar*> ScrollbarMap; >+static ScrollbarMap& scrollbarMap() >+{ >+ static NeverDestroyed<ScrollbarMap> map; >+ return map; >+} >+ >+ScrollbarThemeEfl::~ScrollbarThemeEfl() >+{ >+} >+ >+int ScrollbarThemeEfl::scrollbarThickness(ScrollbarControlSize) >+{ >+ return defaultThickness; >+} >+ >+bool ScrollbarThemeEfl::hasThumb(Scrollbar& scrollbar) >+{ >+ return thumbLength(scrollbar) > 0; >+} >+ >+IntRect ScrollbarThemeEfl::backButtonRect(Scrollbar&, ScrollbarPart, bool) >+{ >+ notImplemented(); >+ return IntRect(); >+} >+ >+IntRect ScrollbarThemeEfl::forwardButtonRect(Scrollbar&, ScrollbarPart, bool) >+{ >+ notImplemented(); >+ return IntRect(); >+} >+ >+IntRect ScrollbarThemeEfl::trackRect(Scrollbar& scrollbar, bool) >+{ >+ return scrollbar.frameRect(); >+} >+ >+int ScrollbarThemeEfl::minimumThumbLength(Scrollbar&) >+{ >+ return scrollbarThumbMin; >+} >+ >+void ScrollbarThemeEfl::paintTrackBackground(GraphicsContext& context, Scrollbar& scrollbar, const IntRect& rect) >+{ >+ loadThemeIfNeeded(scrollbar); >+ m_theme->paintThemePart(context, (scrollbar.orientation() == HorizontalScrollbar) ? ScrollbarHorizontalTrackBackground : ScrollbarVerticalTrackBackground, rect); >+} >+ >+void ScrollbarThemeEfl::paintThumb(GraphicsContext& context, Scrollbar& scrollbar, const IntRect& thumbRect) >+{ >+ loadThemeIfNeeded(scrollbar); >+ m_theme->paintThemePart(context, (scrollbar.orientation() == HorizontalScrollbar) ? ScrollbarHorizontalThumb : ScrollbarVerticalThumb, thumbRect); >+} >+ >+void ScrollbarThemeEfl::registerScrollbar(Scrollbar& scrollbar) >+{ >+ scrollbar.setEnabled(true); >+ scrollbarMap().add(&scrollbar); >+} >+ >+void ScrollbarThemeEfl::unregisterScrollbar(Scrollbar& scrollbar) >+{ >+ scrollbarMap().remove(&scrollbar); >+} >+ >+void ScrollbarThemeEfl::loadThemeIfNeeded(Scrollbar& scrollbar) >+{ >+ if (m_theme) >+ return; >+ >+ ScrollView* view = scrollbar.parent(); >+ if (!view) >+ return; >+ >+ if (!is<FrameView>(view)) >+ return; >+ >+ Page* page = downcast<FrameView>(view)->frame().page(); >+ if (!page) >+ return; >+ >+ m_theme = static_cast<RenderThemeEfl*>(&page->theme()); >+} >+ > } > >diff --git a/Source/WebCore/platform/efl/ScrollbarThemeEfl.h b/Source/WebCore/platform/efl/ScrollbarThemeEfl.h >index 4a2352faccd44b0059a816a7f09734dadbe3b51a..8b6104fea737707dd7427d5b28aafe13e35183f3 100644 >--- a/Source/WebCore/platform/efl/ScrollbarThemeEfl.h >+++ b/Source/WebCore/platform/efl/ScrollbarThemeEfl.h >@@ -29,19 +29,40 @@ > #ifndef ScrollbarThemeEfl_h > #define ScrollbarThemeEfl_h > >-#include "ScrollbarTheme.h" >+#include "ScrollbarThemeComposite.h" > > namespace WebCore { > >-class ScrollbarThemeEfl final : public ScrollbarTheme { >+class RenderThemeEfl; >+ >+class ScrollbarThemeEfl final : public ScrollbarThemeComposite { > public: >- ScrollbarThemeEfl() : m_scrollbarThickness(0) { } >+ ~ScrollbarThemeEfl(); >+ >+ virtual int scrollbarThickness(ScrollbarControlSize = RegularScrollbar) override; > void setScrollbarThickness(int thickness) { m_scrollbarThickness = thickness; } >- virtual int scrollbarThickness(ScrollbarControlSize = RegularScrollbar) override { return m_scrollbarThickness; } > >- virtual void registerScrollbar(Scrollbar&) override { } >- virtual void unregisterScrollbar(Scrollbar&) override { } >+protected: >+ virtual bool usesOverlayScrollbars() const override { return true; } >+ virtual bool hasButtons(Scrollbar&) override { return false; } >+ virtual bool hasThumb(Scrollbar&) override; >+ >+ virtual IntRect backButtonRect(Scrollbar&, ScrollbarPart, bool) override; >+ virtual IntRect forwardButtonRect(Scrollbar&, ScrollbarPart, bool) override; >+ virtual IntRect trackRect(Scrollbar&, bool) override; >+ >+ virtual int minimumThumbLength(Scrollbar&) override; >+ >+ virtual void paintTrackBackground(GraphicsContext&, Scrollbar&, const IntRect&) override; >+ virtual void paintThumb(GraphicsContext&, Scrollbar&, const IntRect&) override; >+ >+ virtual void registerScrollbar(Scrollbar&) override; >+ virtual void unregisterScrollbar(Scrollbar&) override; >+ > private: >+ void loadThemeIfNeeded(Scrollbar&); >+ >+ RefPtr<RenderThemeEfl> m_theme; > int m_scrollbarThickness; > }; >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 143566
:
251002
|
251084
|
251227
|
251311
|
251535
|
252459
|
256355
|
256563
|
256764
| 256819