Window not redrawn after (un-)shading without animation #28

Open
opened 4 months ago by resi · 0 comments
resi commented 4 months ago

Hi,

I'm running:
enlightenment 0.25.4
efl 1.26.3
RHEL8
tigervnc

I disabled all animations in Settings/Windows/Window Display/Shading and found that windows aren't redrawn after displaying them again. I'm not sure whether this is 'shading' or 'unshading', it's rolled down and should be visible in any case.

Moving it around or resizing it redraws properly, also having animations enabled doesn't expose this issue.

I found that I can force updates with a patch like this, but obviously have no idea what I'm doing...

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 533c49655e10..289d22e5582f 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -2069,6 +2069,10 @@ _e_comp_object_shade_animator(void *data)
           e_comp_object_signal_emit(cw->smart_obj, "e,state,unshaded", "e");
         edje_object_message_signal_process(cw->frame_object);
         _e_comp_smart_cb_frame_recalc(cw, cw->smart_obj, NULL);
+
+        // force redraws since non-animated unshades leave me with unpainted
+        // windows.
+        e_comp_object_damage(cw->smart_obj, 0, 0, cw->w, cw->h);
      }
    return cw->ec->shading;
 }

Hi, I'm running: enlightenment 0.25.4 efl 1.26.3 RHEL8 tigervnc I disabled all animations in Settings/Windows/Window Display/Shading and found that windows aren't redrawn after displaying them again. I'm not sure whether this is 'shading' or 'unshading', it's rolled down and should be visible in any case. Moving it around or resizing it redraws properly, also having animations enabled doesn't expose this issue. I found that I can force updates with a patch like this, but obviously have no idea what I'm doing... ``` diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 533c49655e10..289d22e5582f 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -2069,6 +2069,10 @@ _e_comp_object_shade_animator(void *data) e_comp_object_signal_emit(cw->smart_obj, "e,state,unshaded", "e"); edje_object_message_signal_process(cw->frame_object); _e_comp_smart_cb_frame_recalc(cw, cw->smart_obj, NULL); + + // force redraws since non-animated unshades leave me with unpainted + // windows. + e_comp_object_damage(cw->smart_obj, 0, 0, cw->w, cw->h); } return cw->ec->shading; } ```
resi started working 4 months ago
resi cancelled time tracking 4 months ago
Sign in to join this conversation.
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: enlightenment/enlightenment#28
Loading…
There is no content yet.