What I'm seeing on my system lately is that Present Windows will no longer react to mouse clicks onto window thumbnails, instead letting clicks fall through to whatever is "below" (so to speak) the effect, which is pretty scary. Steps to reproduce: 1. I use the default hot corner trigger to cumbersomely launch the Present Windows mode 2. Try switching to a window by clicking its thumbnail 3. Instead of exiting Present Windows with the chosen window raised, you might see one of the window thumbnails change content in response to your click onto whatever UI was at the cursor position prior to Present Windows Reproducible: Always
please run "sleep 10; xwininfo > scary.info; xprop > scary.prop" and trigger the effect w/i the next 10 seconds. Wait until the cursor changes to a "+" shape and click a thumbnail (2x, once for info, once for prop) Attach the resulting output as well as a dump of "qdbus org.kde.KWin /KWin supportInformation"
xwininfo: _NET_WM_USER_TIME(CARDINAL) = 40767592 _NET_WM_ICON_GEOMETRY(CARDINAL) = 571, 1169, 254, 27 _NET_WM_ALLOWED_ACTIONS(ATOM) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE _KDE_NET_WM_FRAME_STRUT(CARDINAL) = 0, 0, 37, 0 _NET_FRAME_EXTENTS(CARDINAL) = 0, 0, 37, 0 _NET_WM_DESKTOP(CARDINAL) = 0 _KDE_NET_WM_ACTIVITIES(STRING) = "26233829-97e2-4c1c-b32a-4d4d6e15a6e1" WM_STATE(WM_STATE): window state: Normal icon window: 0x0 _NET_WM_STATE(ATOM) = _NET_WM_STATE_MAXIMIZED_VERT, _NET_WM_STATE_MAXIMIZED_HORZ WM_HINTS(WM_HINTS): Client accepts input or input focus: True Initial state is Normal State. bitmap id # to use for icon: 0x30000bf bitmap id # of mask for icon: 0x30000c0 window id # of group leader: 0x3000001 WM_WINDOW_ROLE(STRING) = "browser" _KDE_NET_WM_USER_CREATION_TIME(CARDINAL) = 31769976 XdndAware(ATOM) = BITMAP _MOTIF_DRAG_RECEIVER_INFO(_MOTIF_DRAG_RECEIVER_INFO) = 0x6c, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0 _NET_WM_ICON(CARDINAL) = Icon (16 x 16): ░░░▒░ ░░▒▒▒▒▒▒░ ░░░▒▒▒▒▒▒▓░ ░░░░▒▒▒▒▒▓▓▒ ░░░▒▒▒▒▒▒▓▓▒▒ ░▒▒▒▒▒▒▒▒▓▓▒▒▒ ░▒▒▒▒▒▒▒▒▒▓▒▓▒ ▒▒▒▒▒▒▒▓▒▓▓▓▒▒ ▒▒▒▒▒▒▓▓▓▒▒▓▓▒ ░▒▓▒▒▒▓▓▓▓▓▓▒▒ ▒▒▓▒▒▓▓▓▓▒▓▒ ░▒▒▓▒▒▓▓▓▒▒░ ▒▓▓▓▓▓▒▒▒▒ ░▒▒▒▒▒▒▒░ ░░░░ Icon (32 x 32): ░░░░░░░░ ░░░░░░▒▒▒▒▒▒▒░ ░░░░▒▒▒▒▒▒▒▒▒▒▒▒ ░░░░▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓░ ░░░░░░▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▒ ░░░░░░░▒▒▒▒▒▒▒▒▒▓▓▒▒▓▓▓░ ░░░░░░░▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓░ ░░░░░░░░▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▒ ░░░░░░░░▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓░ ░░░▒░░░▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓ ░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▒▓▓▓▓▓▒▓▓░ ░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▒ ░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▒▓▓▓▓▓▓▓▓▓▒ ░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▒▓▓▓▒▓▓▓▓▓▒ ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▒▓▓▓▓▓▓▓▓▓▒▓ ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓ ░▒▒▒▒▒▒▓▓▒▒▒▒▓▓▓▓▓▓▓▒▒▓▓▓▓▓▓▓▒ ░▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒ ▒▒▒▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ ▒▒▒▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓ ░▒▒▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▒ ▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░▒▓▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ ▒▓▒▒▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▒▓▓▓▒ ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒ ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒ ▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░ ░▒▓▓▓▓▓▓▓▓▓▓▓▓▒░░ ░▒▒▓▓▓▓▓▓▒▒░ ░░ Icon (48 x 48): ░░░░░░░ ░░░░░░░▒▒▒▒▒▒░░ ░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒░ ░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░ ░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▒▒ ░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▒ ░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▒ ░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▒▓▓▓▓▓▒ ░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▒▓▓▓▓▓▓▒ ░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓░ ░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓ ░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▒ ░░░░░░░░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░░░░▒░░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒ ░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓ ░░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓░ ░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ ░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒ ░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▒▓▓▓▓▓▒▒▓▓▓▓▓▓▒▓ ░░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░▒▒▒▒▒▒░▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓ ░▒▒▒▒▒▒▒▒▒▒▓▓▒▒▒▒▓▓▓▓▓▓▓▓▓▓▓▒▒▓▓▓▓▓▓▓▓▓▓▓▒ ▒▒▒▒▒▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒ ▒▒▒▒▒▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ ▒▒▒▒▒▓▓▓▓▓▓▒▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ ░▒▒▓▒▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒ ▒▒▒▓▓▓▓▓▓▓▓▓▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ ░▒▒▓▓▓▓▓▓▓▓▓▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▒ ▒▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ ░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒ ▒▒▓▒▒▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓ ▒▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓ ░▒▓▓▓▓▓▓▓▓▓▓▓▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ ░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░ ░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░ ░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒░░ ░░░▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒░░ ░░░▒▒▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▒▒░░░ ░░░░▒▒▒▓▓▓▓▓▓▓▓▒▒▒▒░░░ ░░░░░░░░░░░░░░░░ _NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 50331838 _NET_WM_WINDOW_TYPE(ATOM) = _NET_WM_WINDOW_TYPE_NORMAL _NET_WM_USER_TIME_WINDOW(WINDOW): window id # 0x30000bd WM_CLIENT_LEADER(WINDOW): window id # 0x3000001 _NET_WM_PID(CARDINAL) = 9544 WM_LOCALE_NAME(STRING) = "en_US.UTF-8" WM_CLIENT_MACHINE(STRING) = "ehw1.ehn" WM_NORMAL_HINTS(WM_SIZE_HINTS): program specified minimum size: 300 by 128 program specified maximum size: 32767 by 32767 window gravity: NorthWest WM_PROTOCOLS(ATOM): protocols WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST WM_CLASS(STRING) = "Navigator", "Firefox" WM_ICON_NAME(COMPOUND_TEXT) = "Bug 344006 – Present Windows no longer seems to handle mouse events - Nightly" _NET_WM_ICON_NAME(UTF8_STRING) = "Bug 344006 – Present Windows no longer seems to handle mouse events - Nightly" WM_NAME(COMPOUND_TEXT) = "Bug 344006 – Present Windows no longer seems to handle mouse events - Nightly" _NET_WM_NAME(UTF8_STRING) = "Bug 344006 – Present Windows no longer seems to handle mouse events - Nightly"
I can't post supportInformation because it hangs reproducably. 5c4f1dffa3, OpenGL 2 compositing, nVidia proprietary. Qt is 5.4 branch git.
That's xprop, but sufficient: you clicked the browser, ie. the input window (for effects) isn't there. Does the same happen for the desktop grid as well? > supportInformation because it hangs reproducably General dbus issue? Does "qdbus" print anything?
> Does the same happen for the desktop grid as well? Yes and no: Clicking desktop thumbnails doesn't work, but the add/remove desktop buttons do. > General dbus issue? No, other apps respond fine on the bus.
That means "yes" - the +/- buttons are extra windows. Not responding on dbus might point a bigger issue (and the missing input window only being a symptom) Do you have the same problems w/ XRender compositing?
> That means "yes" - the +/- buttons are extra windows. Yeah, I figured but it's good to be complete :) My guess is that the D-Bus issue is actually caused by restarting kwin from a tty earlier today because another tty switch screwed up rendering, although restarting kwin from within the session didn't help either. I've got to crash to bed right now; I'll try again tomorrow with a fresh login and if that doesn't help, XRender. Thanks!
KWin Support Information: The following information should be used when requesting support on e.g. http://forum.kde.org. It provides information about the currently running instance, which options are used, what OpenGL driver and which effects are running. Please post the information provided underneath this introductory text to a paste bin service like http://paste.kde.org instead of pasting into support threads. ========================== Version ======= KWin version: 5.2.90 Qt Version: 5.4.2 Qt compile version: 5.4.2 XCB compile version: 1.11 Operation Mode: X11 only Decoration ========== Plugin: org.kde.breeze Theme: Blur: 0 onAllDesktopsAvailable: true alphaChannelSupported: true closeOnDoubleClickOnMenu: false decorationButtonsLeft: 0 decorationButtonsRight: 9, 3, 4, 5 borderSize: 2 gridUnit: 8 font: Fira Sans OT,8,-1,5,50,0,0,0,0,0 smallSpacing: 2 largeSpacing: 8 Options ======= focusPolicy: 0 nextFocusPrefersMouse: false clickRaise: true autoRaise: false autoRaiseInterval: 0 delayFocusInterval: 0 shadeHover: false shadeHoverInterval: 250 separateScreenFocus: false placement: 6 focusPolicyIsReasonable: true borderSnapZone: 10 windowSnapZone: 10 centerSnapZone: 0 snapOnlyWhenOverlapping: false showDesktopIsMinimizeAll: false rollOverDesktops: true focusStealingPreventionLevel: 1 legacyFullscreenSupport: false operationTitlebarDblClick: 5000 operationMaxButtonLeftClick: 5000 operationMaxButtonMiddleClick: 5015 operationMaxButtonRightClick: 5014 commandActiveTitlebar1: 0 commandActiveTitlebar2: 30 commandActiveTitlebar3: 2 commandInactiveTitlebar1: 4 commandInactiveTitlebar2: 30 commandInactiveTitlebar3: 2 commandWindow1: 7 commandWindow2: 8 commandWindow3: 8 commandWindowWheel: 31 commandAll1: 10 commandAll2: 3 commandAll3: 14 keyCmdAllModKey: 16777251 showGeometryTip: false condensedTitle: false electricBorderMaximize: true electricBorderTiling: true electricBorderCornerRatio: 0.25 borderlessMaximizedWindows: false killPingTimeout: 5000 hideUtilityWindowsForInactive: true inactiveTabsSkipTaskbar: false autogroupSimilarWindows: false autogroupInForeground: true compositingMode: 1 useCompositing: true compositingInitialized: true hiddenPreviews: 1 unredirectFullscreen: false glSmoothScale: 2 colorCorrected: false xrenderSmoothScale: false maxFpsInterval: 16666666 refreshRate: 0 vBlankTime: 6000000 glStrictBinding: false glStrictBindingFollowsDriver: true glCoreProfile: true glPreferBufferSwap: 0 glPlatformInterface: 1 Screen Edges ============ desktopSwitching: false desktopSwitchingMovingClients: false cursorPushBackDistance: 1x1 timeThreshold: 150 reActivateThreshold: 350 actionTopLeft: 0 actionTop: 0 actionTopRight: 0 actionRight: 0 actionBottomRight: 0 actionBottom: 0 actionBottomLeft: 0 actionLeft: 0 Screens ======= Multi-Head: no Active screen follows mouse: yes Number of Screens: 1 Screen 0 Geometry: 0,0,1920x1200 Compositing =========== Compositing is active Compositing Type: OpenGL OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce GTX 660 Ti/PCIe/SSE2 OpenGL version string: 3.1.0 NVIDIA 346.35 OpenGL platform interface: GLX OpenGL shading language version string: 1.40 NVIDIA via Cg compiler Driver: NVIDIA Driver version: 346.35 GPU class: Unknown OpenGL version: 3.1 GLSL version: 1.40 Linux kernel version: 3.18.5 Direct rendering: Requires strict binding: no GLSL shaders: yes Texture NPOT support: yes Virtual Machine: no OpenGL 2 Shaders are used Painting blocks for vertical retrace: yes Loaded Effects: --------------- zoom slidingpopups kwin4_effect_login slide screenshot magiclamp kwin4_effect_translucency desktopgrid kwin4_effect_maximize kwin4_effect_fade presentwindows highlightwindow kwin4_effect_dialogparent blur contrast logout dashboard startupfeedback screenedge kscreen Currently Active Effects: ------------------------- blur contrast Effect Settings: ---------------- zoom: zoomFactor: 1.2 mousePointer: 0 mouseTracking: 0 enableFocusTracking: false followFocus: true focusDelay: 350 moveFactor: 20 targetZoom: 1 slidingpopups: fadeInTime: 150 fadeOutTime: 250 kwin4_effect_login: slide: screenshot: magiclamp: animationDuration: 250 kwin4_effect_translucency: desktopgrid: zoomDuration: 300 border: 10 desktopNameAlignment: 0 layoutMode: 0 customLayoutRows: 2 usePresentWindows: true kwin4_effect_maximize: kwin4_effect_fade: presentwindows: layoutMode: 0 showCaptions: true showIcons: true doNotCloseWindows: false ignoreMinimized: false accuracy: 20 fillGaps: true fadeDuration: 150 showPanel: false leftButtonWindow: 1 rightButtonWindow: 2 middleButtonWindow: 0 leftButtonDesktop: 2 middleButtonDesktop: 0 rightButtonDesktop: 0 highlightwindow: kwin4_effect_dialogparent: blur: blurRadius: 12 cacheTexture: true contrast: logout: useBlur: true dashboard: brightness: 0.5 saturation: 0.5 blur: false startupfeedback: type: 0 screenedge: kscreen:
And the missing xwininfo: xwininfo: Please select the window about which you would like information by clicking the mouse in that window. xwininfo: Window id: 0x30000bc "Bug 344006 – Present Windows no longer seems to handle mouse events - Nightly" Absolute upper-left X: 0 Absolute upper-left Y: 37 Relative upper-left X: 0 Relative upper-left Y: 0 Width: 1920 Height: 1128 Depth: 24 Visual: 0x21 Visual Class: TrueColor Border width: 0 Class: InputOutput Colormap: 0x20 (installed) Bit Gravity State: NorthWestGravity Window Gravity State: NorthWestGravity Backing Store State: NotUseful Save Under State: no Map State: IsViewable Override Redirect State: no Corners: +0+37 -0+37 -0-35 +0-35 -geometry 1920x1128+0+0
Did you also try xrender? Screen Edges ============ timeThreshold: 150 reActivateThreshold: 350 $ kcmshell5 kwinscreenedges try to lower the first and raise the second - or alternatively whether this also happens when invoking the effect by a keyboard shortcut. If none significance by the above and if you want to have a look yourself: kwin/effects.cpp:665 EffectsHandlerImpl::startMouseInterception(.) 684: if (!m_mouseInterceptionWindow.isValid()) { should be entered at some point.
Yep, happens with XRender as as well as with keyboard activation (both GL and XRender). I also just noticed the config button for Present Windows in the effects list doesn't bring up the config UI for the effect.
(In reply to Eike Hein from comment #11) > I also just noticed the config button for Present Windows in > the effects list doesn't bring up the config UI for the effect. - Does it for other effects? - ran "kbuildsycoca5"? - Do you have a mixed installation (ie. kwin AND kwin_x11 installed - in the same place)? $ strace kcmshell5 kwineffects 2>&1 | grep open | grep present should open some "kwin_presentwindows_config.so"
- I do have a mixed install (KDE 4 in /usr, Qt 5 + KF5 + Plasma 5 in $HOME, with environment giving preference to the latter) - sycoca is current - strace sees the .so - The config e.g. for Login and Translucency opens fine, but also not for, say, Zoom and Magic Lamp
Those are both kcm_kwin4_genericscripted.so which existed in KWin4 as well (while there all other effects configs were in kcm_kwin4_effect_builtins.so)
shot into the blue: do you build kwin with the xcb-cursor dependency (it's optional for the CI system).
I had xcb-cursor, but I was missing libinput. I rebuilt it with libinput and now satisfy all deps. No changes.
This patch should print some output and guide us where it fails. If it seems to be alright, Martin might still have a track on bogus InputOnly windows - we'll see then. diff --git a/effects.cpp b/effects.cpp index 3cccf31..2eb70bd 100644 --- a/effects.cpp +++ b/effects.cpp @@ -664,13 +664,16 @@ void EffectsHandlerImpl::grabbedKeyboardEvent(QKeyEvent* e) void EffectsHandlerImpl::startMouseInterception(Effect *effect, Qt::CursorShape shape) { + qDebug() << "startMouseInterception"; if (m_grabbedMouseEffects.contains(effect)) { return; } + qDebug() << "need new for effect"; m_grabbedMouseEffects.append(effect); if (m_grabbedMouseEffects.size() != 1) { return; } + qDebug() << "need window"; if (kwinApp()->operationMode() != Application::OperationModeX11) { #if HAVE_WAYLAND if (Wayland::WaylandBackend *w = Wayland::WaylandBackend::self()) { @@ -679,9 +682,11 @@ void EffectsHandlerImpl::startMouseInterception(Effect *effect, Qt::CursorShape #endif return; } + qDebug() << "is X11"; // NOTE: it is intended to not perform an XPointerGrab on X11. See documentation in kwineffects.h // The mouse grab is implemented by using a full screen input only window if (!m_mouseInterceptionWindow.isValid()) { + qDebug() << "need NEW window"; const QSize &s = screens()->size(); const QRect geo(0, 0, s.width(), s.height()); const uint32_t mask = XCB_CW_OVERRIDE_REDIRECT | XCB_CW_EVENT_MASK | XCB_CW_CURSOR; @@ -694,6 +699,7 @@ void EffectsHandlerImpl::startMouseInterception(Effect *effect, Qt::CursorShape } else { defineCursor(shape); } + qDebug() << "map, raise, update edges"; m_mouseInterceptionWindow.map(); m_mouseInterceptionWindow.raise(); // Raise electric border windows above the input windows
Created attachment 91053 [details] Debug output
Wellwellwell... kwin(8943)/default KWin::EffectsHandlerImpl::startMouseInterception: startMouseInterception kwin(8943)/default KWin::EffectsHandlerImpl::startMouseInterception: need new for effect kwin(8943)/default KWin::EffectsHandlerImpl::startMouseInterception: need window kwin(8943)/default KWin::EffectsHandlerImpl::startMouseInterception: is X11 kwin(8943)/default KWin::EffectsHandlerImpl::startMouseInterception: need NEW window kwin(8943)/default KWin::EffectsHandlerImpl::startMouseInterception: map, raise, update edges kwin(8943)/default QXcbConnection::handleXcbError: QXcbConnection: XCB error: 2 (BadValue), sequence: 5822, resource id: 65535, major code: 94 (CreateGlyphCursor), minor code: 0 kwin(8943)/default QXcbConnection::handleXcbError: QXcbConnection: XCB error: 6 (BadCursor), sequence: 5823, resource id: 83886462, major code: 1 (CreateWindow), minor code: 0 kwin(8943)/default QXcbConnection::handleXcbError: QXcbConnection: XCB error: 3 (BadWindow), sequence: 5824, resource id: 83886463, major code: 8 (MapWindow), minor code: 0 kwin(8943)/default QXcbConnection::handleXcbError: QXcbConnection: XCB error: 3 (BadWindow), sequence: 5825, resource id: 83886463, major code: 12 (ConfigureWindow), minor code: 0 kwin(8943)/default QXcbConnection::handleXcbError: QXcbConnection: XCB error: 6 (BadCursor), sequence: 5831, resource id: 83886447, major code: 2 (ChangeWindowAttributes), minor code: 0 As everything starts wit a BadCursor, I'd say it is indeed xcb_cursor (related) Try to revert commit 8d2cd20c190bf854e1cb1bd556c30a88da3113e5 commit 0faf2fbcf8645b8affb9501e353dcdd61ad10644 commit e5d0e1a339e39ac2fef5b5711d9ece12bb6c408a (The zoom commit was the last hook to XCursor and removed the dependency from CMake, but should otherwise be irrelevant)
I was just able to reproduce the issue on latest Kubuntu weekly iso. Findings so far: it seems to be related to kwin not picking up the default cursor theme (BadCursor values in debug output) . Eike, could you please verify whether you see: * BadCursor debug output when trying to activate Present Window * run "xprop -root | grep -i cursor" and check whether there are any Xcursor.size and/or Xcursor.theme values?
> * BadCursor debug output when trying to activate Present Window kwin(10659)/default QXcbConnection::handleXcbError: QXcbConnection: XCB error: 6 (BadCursor), sequence: 6125, resource id: 39845982, major code: 2 (ChangeWindowAttributes), minor code: 0 kwin(10659)/default QXcbConnection::handleXcbError: QXcbConnection: XCB error: 6 (BadCursor), sequence: 6128, resource id: 39845982, major code: 2 (ChangeWindowAttributes), minor code: 0 kwin(10659)/default QXcbConnection::handleXcbError: QXcbConnection: XCB error: 6 (BadCursor), sequence: 6289, resource id: 39846110, major code: 2 (ChangeWindowAttributes), minor code: 0 kwin(10659)/default QXcbConnection::handleXcbError: QXcbConnection: XCB error: 6 (BadCursor), sequence: 6324, resource id: 39846110, major code: 2 (ChangeWindowAttributes), minor code: 0 kwin(10659)/default QXcbConnection::handleXcbError: QXcbConnection: XCB error: 6 (BadCursor), sequence: 6349, resource id: 39846110, major code: 2 (ChangeWindowAttributes), minor code: 0 > * run "xprop -root | grep -i cursor" and check whether there are any Xcursor.size and/or Xcursor.theme values? Xcursor.size:\t24\nXcursor.theme:\tdmz
The problem is now fully understood: the root problem is a bug in xcb/util-cursor library when doing a fallback to the core font. This returns an invalid cursor and we (as the users) have no chance to see that it failed. The problem in xcb/util-cursor is addressed with the patch send to [1]. With that patch in place we can do proper fallback handling. But as it is unlikely that xcb/util-cursor will be fixed in all distributions (I intend to inform distros about it) when we release, we will also need a workaround. [1] http://lists.freedesktop.org/archives/xcb/2015-March/010215.html
Git commit e2c422dcb54317acc42ca252d449f096ad78d7ea by Martin Gräßlin. Committed on 18/03/2015 at 06:47. Pushed by graesslin into branch 'master'. Woraround possible broken cursor when creating mouse interception window The xcb_cursor_t returned by xcb-cursor library might be broken. If we set such a broken cursor directly in the create window call it will fail with a BadCursor value causing effects to break. This change works around this problem by creating just the window and moving the possible breaking call into a change window call. That will still fail, but the window is working. In addition it performs a safety check by only installing the cursor if it's not XCB_CURSOR_NONE. REVIEW: 123025 M +7 -4 effects.cpp http://commits.kde.org/kwin/e2c422dcb54317acc42ca252d449f096ad78d7ea
*** Bug 346164 has been marked as a duplicate of this bug. ***