Honor value-mask field in ConfigureRequest event
				
					
				
			Some applications (e.g. JNLP) don't set correct values for fields not mentioned in `value-mask`. This commit corrects this bug together with another Java AWT specific problem.
This commit is contained in:
		
							parent
							
								
									dba43b018d
								
							
						
					
					
						commit
						7bfd429d52
					
				
					 1 changed files with 10 additions and 10 deletions
				
			
		|  | @ -71,7 +71,8 @@ corresponding buffer.") | |||
|                   (memq xcb:Atom:_NET_WM_WINDOW_TYPE_DIALOG exwm-window-type) | ||||
|                   (memq xcb:Atom:_NET_WM_WINDOW_TYPE_NORMAL exwm-window-type))) | ||||
|              ;; For Java applications | ||||
|              (and exwm-instance-name | ||||
|              (and (memq xcb:Atom:_NET_WM_WINDOW_TYPE_NORMAL exwm-window-type) | ||||
|                   exwm-instance-name | ||||
|                   (string-prefix-p "sun-awt-X11-" exwm-instance-name) | ||||
|                   (not (string-suffix-p "XFramePeer" exwm-instance-name)))) | ||||
|         (exwm--log "No need to manage #x%x" id) | ||||
|  | @ -274,9 +275,11 @@ corresponding buffer.") | |||
|   (let ((obj (make-instance 'xcb:ConfigureRequest)) | ||||
|         buffer edges) | ||||
|     (xcb:unmarshal obj data) | ||||
|     (with-slots (window x y width height border-width) obj | ||||
|       (exwm--log "ConfigureRequest from #x%x @%dx%d%+d%+d, border: %d" | ||||
|                  window width height x y border-width) | ||||
|     (with-slots (stack-mode window sibling x y width height border-width | ||||
|                             value-mask) | ||||
|         obj | ||||
|       (exwm--log "ConfigureRequest from #x%x (#x%x) @%dx%d%+d%+d, border: %d" | ||||
|                  value-mask window width height x y border-width) | ||||
|       (if (setq buffer (exwm--id->buffer window)) | ||||
|           ;; Send client message for managed windows | ||||
|           (with-current-buffer buffer | ||||
|  | @ -308,13 +311,10 @@ corresponding buffer.") | |||
|         (xcb:+request exwm--connection | ||||
|             (make-instance 'xcb:ConfigureWindow | ||||
|                            :window window | ||||
|                            :value-mask (logior xcb:ConfigWindow:X | ||||
|                                                xcb:ConfigWindow:Y | ||||
|                                                xcb:ConfigWindow:Width | ||||
|                                                xcb:ConfigWindow:Height | ||||
|                                                xcb:ConfigWindow:BorderWidth) | ||||
|                            :value-mask value-mask | ||||
|                            :x x :y y :width width :height height | ||||
|                            :border-width border-width))))) | ||||
|                            :border-width border-width | ||||
|                            :sibling sibling :stack-mode stack-mode))))) | ||||
|   (xcb:flush exwm--connection)) | ||||
| 
 | ||||
| (defun exwm-manage--on-MapRequest (data synthetic) | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue