Xnest: move xnestEventmask into struct xnest_upstream_info

This is per upstream connection state, so it's better of in the
upstream information struct.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2024-09-05 15:19:24 +02:00
parent b02a5ebc5e
commit 3802b10cdb
6 changed files with 13 additions and 14 deletions

View File

@ -41,7 +41,6 @@ int xnestNumPixmapFormats;
Drawable xnestDefaultDrawables[MAXDEPTH + 1]; Drawable xnestDefaultDrawables[MAXDEPTH + 1];
Pixmap xnestIconBitmap; Pixmap xnestIconBitmap;
Pixmap xnestScreenSaverPixmap; Pixmap xnestScreenSaverPixmap;
uint32_t xnestEventMask;
void void
xnestOpenDisplay(int argc, char *argv[]) xnestOpenDisplay(int argc, char *argv[])
@ -57,9 +56,9 @@ xnestOpenDisplay(int argc, char *argv[])
FatalError("Unable to open display \"%s\".\n", xnestDisplayName); FatalError("Unable to open display \"%s\".\n", xnestDisplayName);
if (xnestParentWindow != (Window) 0) if (xnestParentWindow != (Window) 0)
xnestEventMask = XCB_EVENT_MASK_STRUCTURE_NOTIFY; xnestUpstreamInfo.eventMask = XCB_EVENT_MASK_STRUCTURE_NOTIFY;
else else
xnestEventMask = 0L; xnestUpstreamInfo.eventMask = 0;
for (i = 0; i <= MAXDEPTH; i++) for (i = 0; i <= MAXDEPTH; i++)
xnestDefaultDrawables[i] = XCB_WINDOW_NONE; xnestDefaultDrawables[i] = XCB_WINDOW_NONE;

View File

@ -26,7 +26,6 @@ extern int xnestNumPixmapFormats;
extern Drawable xnestDefaultDrawables[MAXDEPTH + 1]; extern Drawable xnestDefaultDrawables[MAXDEPTH + 1];
extern Pixmap xnestIconBitmap; extern Pixmap xnestIconBitmap;
extern Pixmap xnestScreenSaverPixmap; extern Pixmap xnestScreenSaverPixmap;
extern uint32_t xnestEventMask;
void xnestOpenDisplay(int argc, char *argv[]); void xnestOpenDisplay(int argc, char *argv[]);
void xnestCloseDisplay(void); void xnestCloseDisplay(void);

View File

@ -215,20 +215,20 @@ xnestKeyboardProc(DeviceIntPtr pDev, int onoff)
break; break;
} }
case DEVICE_ON: case DEVICE_ON:
xnestEventMask |= XNEST_KEYBOARD_EVENT_MASK; xnestUpstreamInfo.eventMask |= XNEST_KEYBOARD_EVENT_MASK;
for (i = 0; i < xnestNumScreens; i++) for (i = 0; i < xnestNumScreens; i++)
xcb_change_window_attributes(xnestUpstreamInfo.conn, xcb_change_window_attributes(xnestUpstreamInfo.conn,
xnest_screen_by_id(i)->upstream_frame_window, xnest_screen_by_id(i)->upstream_frame_window,
XCB_CW_EVENT_MASK, XCB_CW_EVENT_MASK,
&xnestEventMask); &xnestUpstreamInfo.eventMask);
break; break;
case DEVICE_OFF: case DEVICE_OFF:
xnestEventMask &= ~XNEST_KEYBOARD_EVENT_MASK; xnestUpstreamInfo.eventMask &= ~XNEST_KEYBOARD_EVENT_MASK;
for (i = 0; i < xnestNumScreens; i++) for (i = 0; i < xnestNumScreens; i++)
xcb_change_window_attributes(xnestUpstreamInfo.conn, xcb_change_window_attributes(xnestUpstreamInfo.conn,
xnest_screen_by_id(i)->upstream_frame_window, xnest_screen_by_id(i)->upstream_frame_window,
XCB_CW_EVENT_MASK, XCB_CW_EVENT_MASK,
&xnestEventMask); &xnestUpstreamInfo.eventMask);
break; break;
case DEVICE_CLOSE: case DEVICE_CLOSE:
break; break;

View File

@ -104,20 +104,20 @@ xnestPointerProc(DeviceIntPtr pDev, int onoff)
break; break;
} }
case DEVICE_ON: case DEVICE_ON:
xnestEventMask |= XNEST_POINTER_EVENT_MASK; xnestUpstreamInfo.eventMask |= XNEST_POINTER_EVENT_MASK;
for (i = 0; i < xnestNumScreens; i++) for (i = 0; i < xnestNumScreens; i++)
xcb_change_window_attributes(xnestUpstreamInfo.conn, xcb_change_window_attributes(xnestUpstreamInfo.conn,
xnest_screen_by_id(i)->upstream_frame_window, xnest_screen_by_id(i)->upstream_frame_window,
XCB_CW_EVENT_MASK, XCB_CW_EVENT_MASK,
&xnestEventMask); &xnestUpstreamInfo.eventMask);
break; break;
case DEVICE_OFF: case DEVICE_OFF:
xnestEventMask &= ~XNEST_POINTER_EVENT_MASK; xnestUpstreamInfo.eventMask &= ~XNEST_POINTER_EVENT_MASK;
for (i = 0; i < xnestNumScreens; i++) for (i = 0; i < xnestNumScreens; i++)
xcb_change_window_attributes(xnestUpstreamInfo.conn, xcb_change_window_attributes(xnestUpstreamInfo.conn,
xnest_screen_by_id(i)->upstream_frame_window, xnest_screen_by_id(i)->upstream_frame_window,
XCB_CW_EVENT_MASK, XCB_CW_EVENT_MASK,
&xnestEventMask); &xnestUpstreamInfo.eventMask);
break; break;
case DEVICE_CLOSE: case DEVICE_CLOSE:
break; break;

View File

@ -410,7 +410,7 @@ breakout:
xcb_params_cw_t attributes = { xcb_params_cw_t attributes = {
.back_pixel = xnestUpstreamInfo.screenInfo->white_pixel, .back_pixel = xnestUpstreamInfo.screenInfo->white_pixel,
.event_mask = xnestEventMask, .event_mask = xnestUpstreamInfo.eventMask,
.colormap = xnest_visual_to_upstream_cmap(pScreen->rootVisual), .colormap = xnest_visual_to_upstream_cmap(pScreen->rootVisual),
}; };
@ -423,7 +423,7 @@ breakout:
xcb_change_window_attributes(xnestUpstreamInfo.conn, xcb_change_window_attributes(xnestUpstreamInfo.conn,
screenPriv->upstream_frame_window, screenPriv->upstream_frame_window,
XCB_CW_EVENT_MASK, XCB_CW_EVENT_MASK,
&xnestEventMask); &xnestUpstreamInfo.eventMask);
} }
else { else {
screenPriv->upstream_frame_window = xcb_generate_id(xnestUpstreamInfo.conn); screenPriv->upstream_frame_window = xcb_generate_id(xnestUpstreamInfo.conn);

View File

@ -37,6 +37,7 @@ struct xnest_upstream_info {
const xcb_setup_t *setup; const xcb_setup_t *setup;
struct xnest_event_queue eventQueue; struct xnest_event_queue eventQueue;
xcb_gc_t bitmapGC; xcb_gc_t bitmapGC;
uint32_t eventMask;
}; };
extern struct xnest_screen_info xnestScreens[MAXSCREENS]; extern struct xnest_screen_info xnestScreens[MAXSCREENS];