mirror of
				https://github.com/rad4day/Waybar.git
				synced 2025-11-04 01:32: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