mirror of
				https://github.com/rad4day/Waybar.git
				synced 2025-11-01 00:12:42 +01:00 
			
		
		
		
	Merge pull request #898 from alebastr/fix-globals-versions
fix(wlr/taskbar): do not bind to unsupported protocol versions
This commit is contained in:
		| @@ -32,6 +32,8 @@ void waybar::Client::handleGlobal(void *data, struct wl_registry *registry, uint | ||||
|                                   const char *interface, uint32_t version) { | ||||
|   auto client = static_cast<Client *>(data); | ||||
|   if (strcmp(interface, zwlr_layer_shell_v1_interface.name) == 0) { | ||||
|     // limit version to a highest supported by the client protocol file | ||||
|     version = std::min<uint32_t>(version, zwlr_layer_shell_v1_interface.version); | ||||
|     client->layer_shell = static_cast<struct zwlr_layer_shell_v1 *>( | ||||
|         wl_registry_bind(registry, name, &zwlr_layer_shell_v1_interface, version)); | ||||
|   } else if (strcmp(interface, zxdg_output_manager_v1_interface.name) == 0 && | ||||
|   | ||||
| @@ -653,9 +653,11 @@ void Taskbar::register_manager(struct wl_registry *registry, uint32_t name, uint | ||||
|         spdlog::warn("Register foreign toplevel manager again although already existing!"); | ||||
|         return; | ||||
|     } | ||||
|     if (version != 2) { | ||||
|     if (version < ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_STATE_FULLSCREEN_SINCE_VERSION) { | ||||
|         spdlog::warn("Using different foreign toplevel manager protocol version: {}", version); | ||||
|     } | ||||
|     // limit version to a highest supported by the client protocol file | ||||
|     version = std::min<uint32_t>(version, zwlr_foreign_toplevel_manager_v1_interface.version); | ||||
|  | ||||
|     manager_ = static_cast<struct zwlr_foreign_toplevel_manager_v1 *>(wl_registry_bind(registry, name, | ||||
|             &zwlr_foreign_toplevel_manager_v1_interface, version)); | ||||
| @@ -672,6 +674,7 @@ void Taskbar::register_seat(struct wl_registry *registry, uint32_t name, uint32_ | ||||
|         spdlog::warn("Register seat again although already existing!"); | ||||
|         return; | ||||
|     } | ||||
|     version = std::min<uint32_t>(version, wl_seat_interface.version); | ||||
|  | ||||
|     seat_ = static_cast<wl_seat*>(wl_registry_bind(registry, name, &wl_seat_interface, version)); | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Alex
					Alex