Bug 344006

Summary: Present Windows no longer seems to handle mouse events
Product: [Plasma] kwin Reporter: Eike Hein <hein>
Component: effects-window-managementAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED FIXED    
Severity: normal CC: pulfer, sebas
Priority: NOR Keywords: regression
Version: git masterFlags: mgraesslin: ReviewRequest+
Target Milestone: ---   
Platform: Other   
OS: Linux   
URL: https://git.reviewboard.kde.org/r/123025/
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Debug output

Description Eike Hein 2015-02-10 13:26:29 UTC
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
Comment 1 Thomas Lübking 2015-02-10 14:18:47 UTC
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"
Comment 2 Eike Hein 2015-02-11 22:58:42 UTC
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"
Comment 3 Eike Hein 2015-02-11 23:00:55 UTC
I can't post supportInformation because it hangs reproducably.

5c4f1dffa3, OpenGL 2 compositing, nVidia proprietary. Qt is 5.4 branch git.
Comment 4 Thomas Lübking 2015-02-11 23:07:38 UTC
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?
Comment 5 Eike Hein 2015-02-11 23:12:24 UTC
> 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.
Comment 6 Thomas Lübking 2015-02-11 23:27:26 UTC
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?
Comment 7 Eike Hein 2015-02-11 23:30:05 UTC
> 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!
Comment 8 Eike Hein 2015-02-12 21:10:40 UTC
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:
Comment 9 Eike Hein 2015-02-12 21:10:58 UTC
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
Comment 10 Thomas Lübking 2015-02-12 22:12:05 UTC
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.
Comment 11 Eike Hein 2015-02-12 22:20:31 UTC
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.
Comment 12 Thomas Lübking 2015-02-12 22:57:01 UTC
(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"
Comment 13 Eike Hein 2015-02-12 23:01:48 UTC
- 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
Comment 14 Thomas Lübking 2015-02-12 23:20:40 UTC
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)
Comment 15 Martin Flöser 2015-02-13 07:18:04 UTC
shot into the blue: do you build kwin with the xcb-cursor dependency (it's 
optional for the CI system).
Comment 16 Eike Hein 2015-02-13 13:20:13 UTC
I had xcb-cursor, but I was missing libinput. I rebuilt it with libinput and now satisfy all deps. No changes.
Comment 17 Thomas Lübking 2015-02-13 14:42:28 UTC
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
Comment 18 Eike Hein 2015-02-13 15:06:36 UTC
Created attachment 91053 [details]
Debug output
Comment 19 Thomas Lübking 2015-02-13 15:23:14 UTC
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)
Comment 20 Martin Flöser 2015-03-13 14:38:50 UTC
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?
Comment 21 Eike Hein 2015-03-17 13:26:11 UTC
> * 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
Comment 22 Martin Flöser 2015-03-18 06:44:33 UTC
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
Comment 23 Martin Flöser 2015-03-20 09:39:32 UTC
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
Comment 24 Thomas Lübking 2015-04-14 13:25:25 UTC
*** Bug 346164 has been marked as a duplicate of this bug. ***
Comment 25 Thomas Lübking 2015-04-14 13:31:59 UTC
*** Bug 346164 has been marked as a duplicate of this bug. ***