Commit 3d00bd5
Don't try to send grants for not realized windows
We rely on composite redirect mode of the X server to get per window
pixmaps. Those are setup/teared-down in compRealizeWindow/
compUnrealizeWindow (via compCheckRedirect).
So not realized windows don't have a per window pixmap. Sending grant
refs for them was always broken since we didn't send the offset into the
screen pixmap in those cases. But with the recent change to not allocate
grant refs for the screen pixmap this leads to a noticable error
message.
So don't try to send grant refs for not realized windows. This means
that the configure before mapping will not contiain grant refs.
We rely here very much on implementation details of the X server. In
particular we require that a damage event is generated after the windows
is realized. Note that the map event is generated before realization.
Additionally we require that no damage event is delivered between the
map notification the window being realized.
Based on experimentation and code reading that seems to hold (what
exactly triggers the first damage event after map depends on background
settings and cursor position). This matches also that we so far haven't
had problems even though this bug has been present for a long time.1 parent c91197f commit 3d00bd5
2 files changed
Lines changed: 32 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
| 153 | + | |
153 | 154 | | |
154 | 155 | | |
155 | 156 | | |
| |||
492 | 493 | | |
493 | 494 | | |
494 | 495 | | |
| 496 | + | |
495 | 497 | | |
496 | 498 | | |
497 | 499 | | |
| |||
911 | 913 | | |
912 | 914 | | |
913 | 915 | | |
| 916 | + | |
914 | 917 | | |
915 | 918 | | |
916 | 919 | | |
| |||
935 | 938 | | |
936 | 939 | | |
937 | 940 | | |
| 941 | + | |
| 942 | + | |
938 | 943 | | |
939 | | - | |
| 944 | + | |
| 945 | + | |
940 | 946 | | |
941 | 947 | | |
942 | 948 | | |
| 949 | + | |
| 950 | + | |
943 | 951 | | |
944 | 952 | | |
| 953 | + | |
945 | 954 | | |
946 | 955 | | |
947 | 956 | | |
| |||
989 | 998 | | |
990 | 999 | | |
991 | 1000 | | |
| 1001 | + | |
992 | 1002 | | |
993 | 1003 | | |
994 | 1004 | | |
995 | 1005 | | |
| 1006 | + | |
996 | 1007 | | |
997 | 1008 | | |
998 | 1009 | | |
999 | 1010 | | |
| 1011 | + | |
1000 | 1012 | | |
1001 | | - | |
| 1013 | + | |
1002 | 1014 | | |
1003 | 1015 | | |
1004 | 1016 | | |
1005 | 1017 | | |
1006 | 1018 | | |
| 1019 | + | |
1007 | 1020 | | |
1008 | 1021 | | |
1009 | 1022 | | |
| |||
1047 | 1060 | | |
1048 | 1061 | | |
1049 | 1062 | | |
1050 | | - | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
| 1066 | + | |
1051 | 1067 | | |
1052 | 1068 | | |
1053 | 1069 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
604 | 604 | | |
605 | 605 | | |
606 | 606 | | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
607 | 620 | | |
608 | 621 | | |
609 | 622 | | |
| |||
0 commit comments