… | |
… | |
183 | |
183 | |
184 | tintSet = (1UL<<8), |
184 | tintSet = (1UL<<8), |
185 | tintNeeded = (1UL<<9), |
185 | tintNeeded = (1UL<<9), |
186 | tintServerSide = (1UL<<10), |
186 | tintServerSide = (1UL<<10), |
187 | tintFlags = (tintSet|tintServerSide|tintNeeded), |
187 | tintFlags = (tintSet|tintServerSide|tintNeeded), |
|
|
188 | blurNeeded = (1UL<<11), |
188 | |
189 | |
189 | isTransparent = (1UL<<16) |
190 | isTransparent = (1UL<<16), |
|
|
191 | isInvalid = (1UL<<17) |
190 | }; |
192 | }; |
191 | |
193 | |
192 | unsigned long flags; |
194 | unsigned long flags; |
|
|
195 | |
|
|
196 | enum { |
|
|
197 | transpPmapTiled = (1UL<<0), |
|
|
198 | transpPmapTinted = tintNeeded, |
|
|
199 | transpPmapBlured = blurNeeded, |
|
|
200 | transpTransformations = (tintNeeded|blurNeeded) |
|
|
201 | }; /* this flags are returned by make_transparency_pixmap if called */ |
193 | |
202 | |
194 | # ifdef XPM_BACKGROUND |
203 | # ifdef XPM_BACKGROUND |
195 | # ifdef HAVE_AFTERIMAGE |
204 | # ifdef HAVE_AFTERIMAGE |
196 | ASImage *original_asim; |
205 | ASImage *original_asim; |
197 | bool render_asim (ASImage *background, ARGB32 background_tint); |
206 | bool render_asim (ASImage *background, ARGB32 background_tint); |
… | |
… | |
228 | bool set_blur_radius (const char *geom); |
237 | bool set_blur_radius (const char *geom); |
229 | bool set_tint (rxvt_color &new_tint); |
238 | bool set_tint (rxvt_color &new_tint); |
230 | bool unset_tint (); |
239 | bool unset_tint (); |
231 | bool set_shade (const char *shade_str); |
240 | bool set_shade (const char *shade_str); |
232 | bool set_root_pixmap (); |
241 | bool set_root_pixmap (); |
233 | bool make_transparency_pixmap (); |
242 | |
|
|
243 | unsigned long make_transparency_pixmap ();/* returns combination of the transpTransformations flags */ |
234 | # endif |
244 | # endif |
|
|
245 | double invalid_since; |
235 | |
246 | |
236 | Pixmap pixmap; |
247 | Pixmap pixmap; |
237 | unsigned int pmap_width, pmap_height; |
248 | unsigned int pmap_width, pmap_height; |
238 | unsigned int pmap_depth; |
249 | unsigned int pmap_depth; |
239 | |
250 | |
240 | bool window_size_sensitive (); |
251 | bool window_size_sensitive (); |
241 | void apply_background (); |
252 | bool need_client_side_rendering (); |
|
|
253 | void apply (); |
242 | bool render_background (); |
254 | bool render (); |
243 | |
255 | void invalidate () { |
|
|
256 | if (!(flags & isInvalid)) |
|
|
257 | { |
|
|
258 | flags |= isInvalid; |
|
|
259 | invalid_since = NOW; |
|
|
260 | } |
|
|
261 | }; |
244 | }; |
262 | }; |
245 | #else |
263 | #else |
246 | # undef HAVE_BG_PIXMAP |
264 | # undef HAVE_BG_PIXMAP |
247 | #endif |
265 | #endif |
248 | |
266 | |
… | |
… | |
953 | struct mbstate mbstate; // current input multibyte state |
971 | struct mbstate mbstate; // current input multibyte state |
954 | |
972 | |
955 | unsigned char want_refresh:1, |
973 | unsigned char want_refresh:1, |
956 | #ifdef ENABLE_TRANSPARENCY |
974 | #ifdef ENABLE_TRANSPARENCY |
957 | want_full_refresh:1, /* awaiting full screen refresh */ |
975 | want_full_refresh:1, /* awaiting full screen refresh */ |
958 | am_transparent:1, /* is a transparent term */ |
|
|
959 | am_pixmap_trans:1, /* transparency w/known root pixmap */ |
|
|
960 | #endif |
976 | #endif |
961 | current_screen:1, /* primary or secondary */ |
977 | current_screen:1, /* primary or secondary */ |
962 | num_scr_allow:1, |
978 | num_scr_allow:1, |
963 | bypass_keystate:1, |
979 | bypass_keystate:1, |
964 | #ifdef CURSOR_BLINK |
980 | #ifdef CURSOR_BLINK |
… | |
… | |
1147 | |
1163 | |
1148 | #if ENABLE_TRANSPARENCY || ENABLE_PERL |
1164 | #if ENABLE_TRANSPARENCY || ENABLE_PERL |
1149 | void rootwin_cb (XEvent &xev); |
1165 | void rootwin_cb (XEvent &xev); |
1150 | xevent_watcher rootwin_ev; |
1166 | xevent_watcher rootwin_ev; |
1151 | #endif |
1167 | #endif |
1152 | #if ENABLE_TRANSPARENCY |
1168 | #ifdef HAVE_BG_PIXMAP |
1153 | int check_our_parents (); |
1169 | int update_background (); |
1154 | void check_our_parents_cb (time_watcher &w); |
1170 | void update_background_cb (time_watcher &w); |
1155 | time_watcher check_our_parents_ev; |
1171 | time_watcher update_background_ev; |
1156 | #endif |
1172 | #endif |
1157 | |
1173 | |
1158 | void x_cb (XEvent &xev); |
1174 | void x_cb (XEvent &xev); |
1159 | void flush (); |
1175 | void flush (); |
1160 | xevent_watcher termwin_ev; |
1176 | xevent_watcher termwin_ev; |