-
Notifications
You must be signed in to change notification settings - Fork 337
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor draw code to use cairo_surface_set_device_scale
#1337
base: master
Are you sure you want to change the base?
Conversation
I think that all the get_icon_width and get_*scale*icon function aren't needed anymore |
I have no clue about why the test are failing 😢 |
I am trying to debug the use of uninitialized variables but even with libAsan I can't find it |
@@ -100,7 +103,8 @@ static void pointer_handle_button(void *data, struct wl_pointer *wl_pointer, | |||
uint32_t button_state) { | |||
struct dunst_seat *seat = data; | |||
|
|||
input_handle_click(button, button_state, seat->pointer.x, seat->pointer.y); | |||
double scale = wl_get_scale(); | |||
input_handle_click(button, button_state, seat->pointer.x/scale, seat->pointer.y/scale); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
before wayland didn't scale the user input
Finally figured it out. Basically I forgot that the test didn't call draw_setup. Since I moved the initialization of the PangoContext in draw_setup it was undefined and thus buggy, but only in tests. |
Codecov ReportAttention: Patch coverage is
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## master #1337 +/- ##
==========================================
- Coverage 65.92% 65.85% -0.08%
==========================================
Files 50 50
Lines 8070 8217 +147
Branches 925 961 +36
==========================================
+ Hits 5320 5411 +91
- Misses 2750 2806 +56
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Everything things to work. I think it is ready for merge. Things we may want to consider
|
This fixes something that has been bugging me for a while.
Basically now dunst is scaling itself when drawing every single shape and text (with cairo and pango).
With this patch we render everything at a uniform scaling factor of 1 and scale everything afterwards using cairo_surface_set_device_scale.
This should have some advantages (apart from conciseness), like making scaling on wayland possible (like I discussed with @alebastr under #1316)
NOTE: Everything works on Xorg, however I can't test it on Wayland and my display is not Hi-Dpi, so I am not sure if the pango dpi scaling is being applied correctly. If someone can test it it would be great 👍🏻