mirror of
				https://github.com/rad4day/Waybar.git
				synced 2025-11-04 01:32:42 +01:00 
			
		
		
		
	Merge pull request #1294 from Anakael/pr/anakael/ignore-by-title
feat: Ignore by title
This commit is contained in:
		@@ -61,8 +61,8 @@ class Task
 | 
			
		||||
    Gtk::Image icon_;
 | 
			
		||||
    Gtk::Label text_before_;
 | 
			
		||||
    Gtk::Label text_after_;
 | 
			
		||||
    bool button_visible_;
 | 
			
		||||
    bool ignored_;
 | 
			
		||||
    bool button_visible_ = false;
 | 
			
		||||
    bool ignored_ = false;
 | 
			
		||||
 | 
			
		||||
    bool with_icon_;
 | 
			
		||||
    std::string format_before_;
 | 
			
		||||
@@ -77,6 +77,7 @@ class Task
 | 
			
		||||
   private:
 | 
			
		||||
    std::string repr() const;
 | 
			
		||||
    std::string state_string(bool = false) const;
 | 
			
		||||
    void hide_if_ignored();
 | 
			
		||||
 | 
			
		||||
   public:
 | 
			
		||||
    /* Getter functions */
 | 
			
		||||
 
 | 
			
		||||
@@ -70,7 +70,7 @@ Addressed by *wlr/taskbar*
 | 
			
		||||
 | 
			
		||||
*ignore-list*: ++
 | 
			
		||||
	typeof: array ++
 | 
			
		||||
	List of app_id to be invisible.
 | 
			
		||||
	List of app_id/titles to be invisible.
 | 
			
		||||
 | 
			
		||||
# FORMAT REPLACEMENTS
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -276,8 +276,7 @@ Task::Task(const waybar::Bar &bar, const Json::Value &config, Taskbar *tbar,
 | 
			
		||||
        struct zwlr_foreign_toplevel_handle_v1 *tl_handle, struct wl_seat *seat) :
 | 
			
		||||
    bar_{bar}, config_{config}, tbar_{tbar}, handle_{tl_handle}, seat_{seat},
 | 
			
		||||
    id_{global_id++},
 | 
			
		||||
    content_{bar.vertical ? Gtk::ORIENTATION_VERTICAL : Gtk::ORIENTATION_HORIZONTAL, 0},
 | 
			
		||||
    button_visible_{false}, ignored_{false}
 | 
			
		||||
    content_{bar.vertical ? Gtk::ORIENTATION_VERTICAL : Gtk::ORIENTATION_HORIZONTAL, 0}
 | 
			
		||||
{
 | 
			
		||||
    zwlr_foreign_toplevel_handle_v1_add_listener(handle_, &toplevel_handle_impl, this);
 | 
			
		||||
 | 
			
		||||
@@ -377,13 +376,12 @@ std::string Task::state_string(bool shortened) const
 | 
			
		||||
void Task::handle_title(const char *title)
 | 
			
		||||
{
 | 
			
		||||
    title_ = title;
 | 
			
		||||
    hide_if_ignored();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Task::handle_app_id(const char *app_id)
 | 
			
		||||
void Task::hide_if_ignored()
 | 
			
		||||
{
 | 
			
		||||
    app_id_ = app_id;
 | 
			
		||||
 | 
			
		||||
    if (tbar_->ignore_list().count(app_id)) {
 | 
			
		||||
    if (tbar_->ignore_list().count(app_id_) || tbar_->ignore_list().count(title_)) {
 | 
			
		||||
        ignored_ = true;
 | 
			
		||||
        if (button_visible_) {
 | 
			
		||||
          auto output = gdk_wayland_monitor_get_wl_output(bar_.output->monitor->gobj());
 | 
			
		||||
@@ -397,6 +395,12 @@ void Task::handle_app_id(const char *app_id)
 | 
			
		||||
          handle_output_enter(output);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Task::handle_app_id(const char *app_id)
 | 
			
		||||
{
 | 
			
		||||
    app_id_ = app_id;
 | 
			
		||||
    hide_if_ignored();
 | 
			
		||||
 | 
			
		||||
    if (!with_icon_)
 | 
			
		||||
        return;
 | 
			
		||||
@@ -418,13 +422,13 @@ void Task::handle_app_id(const char *app_id)
 | 
			
		||||
 | 
			
		||||
void Task::handle_output_enter(struct wl_output *output)
 | 
			
		||||
{
 | 
			
		||||
    spdlog::debug("{} entered output {}", repr(), (void*)output);
 | 
			
		||||
 | 
			
		||||
    if (ignored_) {
 | 
			
		||||
      spdlog::debug("{} is ignored", repr());
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    spdlog::debug("{} entered output {}", repr(), (void*)output);
 | 
			
		||||
 | 
			
		||||
    if (!button_visible_ && (tbar_->all_outputs() || tbar_->show_output(output))) {
 | 
			
		||||
        /* The task entered the output of the current bar make the button visible */
 | 
			
		||||
        tbar_->add_button(button_);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user