forked from quickshell/quickshell
		
	layershell: fix protocol error on popup attachment
This commit is contained in:
		
							parent
							
								
									5f9bb9b46c
								
							
						
					
					
						commit
						7a15495e3f
					
				
					 4 changed files with 16 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -26,7 +26,7 @@
 | 
			
		|||
}: stdenv.mkDerivation {
 | 
			
		||||
  pname = "quickshell${lib.optionalString debug "-debug"}";
 | 
			
		||||
  version = "0.1.0";
 | 
			
		||||
  src = nix-gitignore.gitignoreSource [] ./.;
 | 
			
		||||
  src = nix-gitignore.gitignoreSource "/docs\n/examples\n" ./.;
 | 
			
		||||
 | 
			
		||||
  nativeBuildInputs = with pkgs; [
 | 
			
		||||
    cmake
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								docs
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								docs
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -1 +1 @@
 | 
			
		|||
Subproject commit 70989dc619bcdc29dc4880b4ff5257d6ad188a18
 | 
			
		||||
Subproject commit b218d3ec30f8ff2c51d4caf17509b9d21cf0c088
 | 
			
		||||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
#include "surface.hpp"
 | 
			
		||||
#include <any>
 | 
			
		||||
 | 
			
		||||
#include <private/qwaylanddisplay_p.h>
 | 
			
		||||
#include <private/qwaylandscreen_p.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -165,3 +166,14 @@ QSize constrainedSize(const Anchors& anchors, const QSize& size) noexcept {
 | 
			
		|||
	    anchors.verticalConstraint() ? 0 : size.height()
 | 
			
		||||
	);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QSWaylandLayerSurface::attachPopup(QtWaylandClient::QWaylandShellSurface* popup) {
 | 
			
		||||
	std::any role = popup->surfaceRole();
 | 
			
		||||
 | 
			
		||||
	if (auto* popupRole = std::any_cast<::xdg_popup*>(&role)) { // NOLINT
 | 
			
		||||
		this->get_popup(*popupRole);
 | 
			
		||||
	} else {
 | 
			
		||||
		qWarning() << "Cannot attach popup" << popup << "to shell surface" << this
 | 
			
		||||
		           << "as the popup is not an xdg_popup.";
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -27,6 +27,8 @@ public:
 | 
			
		|||
	void applyConfigure() override;
 | 
			
		||||
	void setWindowGeometry(const QRect& geometry) override;
 | 
			
		||||
 | 
			
		||||
	void attachPopup(QtWaylandClient::QWaylandShellSurface* popup) override;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	void zwlr_layer_surface_v1_configure(quint32 serial, quint32 width, quint32 height) override;
 | 
			
		||||
	void zwlr_layer_surface_v1_closed() override;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue