mirror of
https://github.com/yshui/picom.git
synced 2024-12-02 14:15:41 -05:00
Bug fix: Client window event mask not restored in map_win()
- Fix a bug that client window event masks are not restored in map_win(), causing further property changes to be ignored, for example. - Misc changes.
This commit is contained in:
parent
59e54b0665
commit
aaeafbd19d
2 changed files with 9 additions and 5 deletions
|
@ -1979,10 +1979,9 @@ map_win(Display *dpy, Window id,
|
||||||
mark_client_win(dpy, w, cw);
|
mark_client_win(dpy, w, cw);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (opts.frame_opacity) {
|
else {
|
||||||
// Refetch frame extents just in case it changes when the window is
|
// Re-mark client window here
|
||||||
// unmapped
|
mark_client_win(dpy, w, w->client_win);
|
||||||
get_frame_extents(dpy, w, w->client_win);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Workaround for _NET_WM_WINDOW_TYPE for Openbox menus, which is
|
// Workaround for _NET_WM_WINDOW_TYPE for Openbox menus, which is
|
||||||
|
|
|
@ -343,6 +343,7 @@ typedef struct _win {
|
||||||
struct _win *prev_trans;
|
struct _win *prev_trans;
|
||||||
} win;
|
} win;
|
||||||
|
|
||||||
|
/// VSync modes.
|
||||||
typedef enum {
|
typedef enum {
|
||||||
VSYNC_NONE,
|
VSYNC_NONE,
|
||||||
VSYNC_DRM,
|
VSYNC_DRM,
|
||||||
|
@ -354,7 +355,7 @@ typedef int (*f_WaitVideoSync) (int, int, unsigned *);
|
||||||
typedef int (*f_GetVideoSync) (unsigned *);
|
typedef int (*f_GetVideoSync) (unsigned *);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef struct _options {
|
typedef struct {
|
||||||
// General
|
// General
|
||||||
char *display;
|
char *display;
|
||||||
/// Whether to try to detect WM windows and mark them as focused.
|
/// Whether to try to detect WM windows and mark them as focused.
|
||||||
|
@ -958,6 +959,10 @@ wid_bounding_shaped(Display *dpy, Window wid) {
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine if a window change affects reg_ignore and set
|
||||||
|
* reg_ignore_expire accordingly.
|
||||||
|
*/
|
||||||
static inline void
|
static inline void
|
||||||
update_reg_ignore_expire(const win *w) {
|
update_reg_ignore_expire(const win *w) {
|
||||||
if (w->to_paint && WINDOW_SOLID == w->mode)
|
if (w->to_paint && WINDOW_SOLID == w->mode)
|
||||||
|
|
Loading…
Reference in a new issue