Changeset 269721 in webkit


Ignore:
Timestamp:
Nov 12, 2020 12:47:01 AM (3 years ago)
Author:
commit-queue@webkit.org
Message:

[GTK] Swipe navigation shadow is blurry on hidpi
https://bugs.webkit.org/show_bug.cgi?id=218800

Patch by Alexander Mikhaylenko <exalm7659@gmail.com> on 2020-11-12
Reviewed by Carlos Garcia Campos.

  • UIProcess/gtk/ViewGestureControllerGtk.cpp:

(WebKit::createElementPattern): Scale surface size and set its scale factor.
(WebKit::ViewGestureController::beginSwipeGesture): Pass scale factor to createElementPattern().

Location:
trunk/Source/WebKit
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r269718 r269721  
     12020-11-12  Alexander Mikhaylenko  <exalm7659@gmail.com>
     2
     3        [GTK] Swipe navigation shadow is blurry on hidpi
     4        https://bugs.webkit.org/show_bug.cgi?id=218800
     5
     6        Reviewed by Carlos Garcia Campos.
     7
     8        * UIProcess/gtk/ViewGestureControllerGtk.cpp:
     9        (WebKit::createElementPattern): Scale surface size and set its scale factor.
     10        (WebKit::ViewGestureController::beginSwipeGesture): Pass scale factor to createElementPattern().
     11
    1122020-11-11  Brian Burg  <bburg@apple.com>
    213
  • trunk/Source/WebKit/UIProcess/gtk/ViewGestureControllerGtk.cpp

    r263941 r269721  
    301301}
    302302
    303 static RefPtr<cairo_pattern_t> createElementPattern(GtkStyleContext* context, int width, int height)
    304 {
    305     RefPtr<cairo_surface_t> surface = adoptRef(cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height));
     303static RefPtr<cairo_pattern_t> createElementPattern(GtkStyleContext* context, int width, int height, int scale)
     304{
     305    RefPtr<cairo_surface_t> surface = adoptRef(cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width * scale, height * scale));
    306306    RefPtr<cairo_t> cr = adoptRef(cairo_create(surface.get()));
     307
     308    cairo_surface_set_device_scale(surface.get(), scale, scale);
    307309
    308310    gtk_render_background(context, cr.get(), 0, 0, width, height);
     
    362364    }
    363365
     366    int scale = gtk_widget_get_scale_factor(m_webPageProxy.viewWidget());
     367
    364368    GRefPtr<GtkStyleContext> context = createStyleContext("dimming");
    365     m_swipeDimmingPattern = createElementPattern(context.get(), size.width(), size.height());
     369    m_swipeDimmingPattern = createElementPattern(context.get(), size.width(), size.height(), scale);
    366370
    367371    context = createStyleContext("shadow");
    368372    m_swipeShadowSize = elementWidth(context.get());
    369373    if (m_swipeShadowSize)
    370         m_swipeShadowPattern = createElementPattern(context.get(), m_swipeShadowSize, size.height());
     374        m_swipeShadowPattern = createElementPattern(context.get(), m_swipeShadowSize, size.height(), scale);
    371375
    372376    context = createStyleContext("border");
    373377    m_swipeBorderSize = elementWidth(context.get());
    374378    if (m_swipeBorderSize)
    375         m_swipeBorderPattern = createElementPattern(context.get(), m_swipeBorderSize, size.height());
     379        m_swipeBorderPattern = createElementPattern(context.get(), m_swipeBorderSize, size.height(), scale);
    376380
    377381    context = createStyleContext("outline");
    378382    m_swipeOutlineSize = elementWidth(context.get());
    379383    if (m_swipeOutlineSize)
    380         m_swipeOutlinePattern = createElementPattern(context.get(), m_swipeOutlineSize, size.height());
     384        m_swipeOutlinePattern = createElementPattern(context.get(), m_swipeOutlineSize, size.height(), scale);
    381385}
    382386
Note: See TracChangeset for help on using the changeset viewer.