import { Client } from 'westfield-runtime-server'; import { Composite, Render, SCREEN, WINDOW, XConnection, XFixes } from 'xtsb'; import Session from '../Session'; import Surface from '../Surface'; import XWaylandShell from './XWaylandShell'; import { XWindow } from './XWindow'; import { XWindowTheme } from './XWindowFrame'; import { XWindowManagerConnection } from './XWindowManagerConnection'; import { GWebFD } from '../WebFS'; declare type ConfigureValueList = Parameters[1]; declare type XWMAtoms = { WM_PROTOCOLS: number; WM_NORMAL_HINTS: number; WM_TAKE_FOCUS: number; WM_DELETE_WINDOW: number; WM_STATE: number; WM_S0: number; WM_CLIENT_MACHINE: number; _NET_WM_CM_S0: number; _NET_WM_NAME: number; _NET_WM_PID: number; _NET_WM_ICON: number; _NET_WM_STATE: number; _NET_WM_STATE_MAXIMIZED_VERT: number; _NET_WM_STATE_MAXIMIZED_HORZ: number; _NET_WM_STATE_FULLSCREEN: number; _NET_WM_STATE_FOCUSED: number; _NET_WM_USER_TIME: number; _NET_WM_ICON_NAME: number; _NET_WM_DESKTOP: number; _NET_WM_WINDOW_TYPE: number; _NET_WM_WINDOW_TYPE_DESKTOP: number; _NET_WM_WINDOW_TYPE_DOCK: number; _NET_WM_WINDOW_TYPE_TOOLBAR: number; _NET_WM_WINDOW_TYPE_MENU: number; _NET_WM_WINDOW_TYPE_UTILITY: number; _NET_WM_WINDOW_TYPE_SPLASH: number; _NET_WM_WINDOW_TYPE_DIALOG: number; _NET_WM_WINDOW_TYPE_DROPDOWN_MENU: number; _NET_WM_WINDOW_TYPE_POPUP_MENU: number; _NET_WM_WINDOW_TYPE_TOOLTIP: number; _NET_WM_WINDOW_TYPE_NOTIFICATION: number; _NET_WM_WINDOW_TYPE_COMBO: number; _NET_WM_WINDOW_TYPE_DND: number; _NET_WM_WINDOW_TYPE_NORMAL: number; _NET_WM_MOVERESIZE: number; _NET_SUPPORTING_WM_CHECK: number; _NET_SUPPORTED: number; _NET_ACTIVE_WINDOW: number; _MOTIF_WM_HINTS: number; CLIPBOARD: number; CLIPBOARD_MANAGER: number; TARGETS: number; UTF8_STRING: number; _WL_SELECTION: number; INCR: number; TIMESTAMP: number; MULTIPLE: number; COMPOUND_TEXT: number; TEXT: number; STRING: number; 'text/plain;charset=utf-8': number; 'text/plain': number; XdndSelection: number; XdndAware: number; XdndEnter: number; XdndLeave: number; XdndDrop: number; XdndStatus: number; XdndFinished: number; XdndTypeList: number; XdndActionCopy: number; _XWAYLAND_ALLOW_COMMITS: number; WL_SURFACE_ID: number; _NET_REQUEST_FRAME_EXTENTS: number; _NET_FRAME_EXTENTS: number; _NET_WORKAREA: number; _NET_DESKTOP_GEOMETRY: number; _NET_DESKTOP_VIEWPORT: number; _NET_CURRENT_DESKTOP: number; WM_HINTS: number; }; interface XWindowManagerResources { xFixes: XFixes.XFixes; composite: Composite.Composite; render: Render.Render; xwmAtoms: XWMAtoms; formatRgb: Render.PICTFORMINFO; formatRgba: Render.PICTFORMINFO; } interface VisualAndColormap { visualId: number; colormap: number; } export declare function setNetActiveWindow(xConnection: XConnection, screen: SCREEN, xwmAtoms: XWMAtoms, window: WINDOW): void; export declare class XWindowManager { readonly session: Session; readonly xConnection: XConnection; readonly client: Client; readonly xWaylandShell: XWaylandShell; readonly screen: SCREEN; readonly wmWindow: WINDOW; readonly selectionWindow: WINDOW; readonly windowHash: { [key: number]: XWindow; }; focusWindow?: XWindow; readonly atoms: XWMAtoms; readonly visualId: number; readonly colormap: number; unpairedWindowList: XWindow[]; readonly theme: XWindowTheme; private incr; private readonly composite; private readonly render; private readonly formatRgb; private readonly formatRgba; private readonly imageDecodingCanvas; private readonly imageDecodingContext; private cursors; private lastCursor; private doubleClickPeriod; private readonly xFixes; private selectionRequest; private selectionOwner?; private selectionTimestamp; private selectionTarget; dataSourceFd?: GWebFD; private selectionPropertySet; private flushPropertyOnDelete; private sourceData?; constructor(session: Session, xConnection: XConnection, client: Client, xWaylandShell: XWaylandShell, screen: SCREEN, { xwmAtoms, composite, render, xFixes, formatRgb, formatRgba }: XWindowManagerResources, { visualId, colormap }: VisualAndColormap, wmWindow: WINDOW, selectionWindow: WINDOW); static create(session: Session, xWaylandConnetion: XWindowManagerConnection, client: Client, xWaylandShell: XWaylandShell): Promise; lookupXWindow(window: WINDOW): XWindow | undefined; configureWindow(id: WINDOW, valueList: ConfigureValueList): void; private createCursors; private handleCreateSurface; private setNetActiveWindow; private handleButton; private handleEnter; private handleLeave; private handleMotion; private handleCreateNotify; private handleMapRequest; private handleMapNotify; private handleUnmapNotify; private handleReparentNotify; private handleConfigureRequest; private handleConfigureNotify; private handleDestroyNotify; private handlePropertyNotify; private handleClientMessage; private handleFocusIn; private isOurResource; private createXWindow; private getAtomName; private wmWindowSetCursor; private loadCursor; private loadCursorImage; private sendFocusWindow; activate(surface: Surface): void; private setSelection; private handleXFixesSelectionNotify; private handleSelectionNotify; private handleSelectionPropertyNotify; private handleSelectionRequest; private sendSelectionNotify; private sendTargets; private sendTimestamp; private sendData; private readDataSource; private readDataSourceData; private readDataSourceDone; private flushSourceData; private getIncrChunk; private writeProperty; private sendIncrChunk; private getSelectionTargets; private getSelectionData; private handleSelectionEvent; private selectionInit; } export {};