mirror of
				https://github.com/rad4day/Waybar.git
				synced 2025-10-31 07:52:42 +01:00 
			
		
		
		
	Merge branch 'master' into bugfix/pipewire-pulse
This commit is contained in:
		| @@ -25,7 +25,7 @@ | ||||
|     THIS SOFTWARE. | ||||
|   </copyright> | ||||
|  | ||||
|   <interface name="zwlr_foreign_toplevel_manager_v1" version="2"> | ||||
|   <interface name="zwlr_foreign_toplevel_manager_v1" version="3"> | ||||
|     <description summary="list and control opened apps"> | ||||
|       The purpose of this protocol is to enable the creation of taskbars | ||||
|       and docks by providing them with a list of opened applications and | ||||
| @@ -68,7 +68,7 @@ | ||||
|     </event> | ||||
|   </interface> | ||||
|  | ||||
|   <interface name="zwlr_foreign_toplevel_handle_v1" version="2"> | ||||
|   <interface name="zwlr_foreign_toplevel_handle_v1" version="3"> | ||||
|     <description summary="an opened toplevel"> | ||||
|       A zwlr_foreign_toplevel_handle_v1 object represents an opened toplevel | ||||
|       window. Each app may have multiple opened toplevels. | ||||
| @@ -255,5 +255,16 @@ | ||||
|         actually changes, this will be indicated by the state event. | ||||
|       </description> | ||||
|     </request> | ||||
|  | ||||
|     <!-- Version 3 additions --> | ||||
|  | ||||
|     <event name="parent" since="3"> | ||||
|       <description summary="parent change"> | ||||
|         This event is emitted whenever the parent of the toplevel changes. | ||||
|  | ||||
|         No event is emitted when the parent handle is destroyed by the client. | ||||
|       </description> | ||||
|       <arg name="parent" type="object" interface="zwlr_foreign_toplevel_handle_v1" allow-null="true"/> | ||||
|     </event> | ||||
|   </interface> | ||||
| </protocol> | ||||
|   | ||||
| @@ -291,6 +291,12 @@ std::string Workspaces::getIcon(const std::string &name, const Json::Value &node | ||||
| } | ||||
|  | ||||
| bool Workspaces::handleScroll(GdkEventScroll *e) { | ||||
|   if (gdk_event_get_pointer_emulated((GdkEvent *)e)) { | ||||
|     /** | ||||
|      * Ignore emulated scroll events on window | ||||
|      */ | ||||
|     return false; | ||||
|   } | ||||
|   auto dir = AModule::getScrollDir(e); | ||||
|   if (dir == SCROLL_DIR::NONE) { | ||||
|     return true; | ||||
|   | ||||
| @@ -187,6 +187,12 @@ static void tl_handle_done(void *data, struct zwlr_foreign_toplevel_handle_v1 *h | ||||
|     return static_cast<Task*>(data)->handle_done(); | ||||
| } | ||||
|  | ||||
| static void tl_handle_parent(void *data, struct zwlr_foreign_toplevel_handle_v1 *handle, | ||||
|         struct zwlr_foreign_toplevel_handle_v1 *parent) | ||||
| { | ||||
|     /* This is explicitly left blank */ | ||||
| } | ||||
|  | ||||
| static void tl_handle_closed(void *data, struct zwlr_foreign_toplevel_handle_v1 *handle) | ||||
| { | ||||
|     return static_cast<Task*>(data)->handle_closed(); | ||||
| @@ -200,6 +206,7 @@ static const struct zwlr_foreign_toplevel_handle_v1_listener toplevel_handle_imp | ||||
|     .state = tl_handle_state, | ||||
|     .done = tl_handle_done, | ||||
|     .closed = tl_handle_closed, | ||||
|     .parent = tl_handle_parent, | ||||
| }; | ||||
|  | ||||
| Task::Task(const waybar::Bar &bar, const Json::Value &config, Taskbar *tbar, | ||||
| @@ -539,6 +546,11 @@ void Task::activate() | ||||
|  | ||||
| void Task::fullscreen(bool set) | ||||
| { | ||||
|     if (zwlr_foreign_toplevel_handle_v1_get_version(handle_) < ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_SET_FULLSCREEN_SINCE_VERSION) { | ||||
|         spdlog::warn("Foreign toplevel manager server does not support for set/unset fullscreen."); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     if (set) | ||||
|         zwlr_foreign_toplevel_handle_v1_set_fullscreen(handle_, nullptr); | ||||
|     else | ||||
| @@ -661,9 +673,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 < ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_STATE_FULLSCREEN_SINCE_VERSION) { | ||||
|         spdlog::warn("Using different foreign toplevel manager protocol version: {}", version); | ||||
|     if (version < ZWLR_FOREIGN_TOPLEVEL_HANDLE_V1_SET_FULLSCREEN_SINCE_VERSION) { | ||||
|         spdlog::warn("Foreign toplevel manager server does not have the appropriate version." | ||||
|                 " To be able to use all features, you need at least version 2, but server is 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); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Andrea Scarpino
					Andrea Scarpino