diff options
| author | lukefromdc <[email protected]> | 2025-09-20 22:31:09 -0400 |
|---|---|---|
| committer | Luke from DC <[email protected]> | 2025-09-28 16:33:41 +0000 |
| commit | 96613f26127df84440d2d7adf2be570725f483b3 (patch) | |
| tree | 49aeb6faf3402d30112cfa02fa5c868349a33833 /applets/wncklet/wayland-backend.c | |
| parent | cf2f458dd8b70450c3fdffb10d4a45c8c369b3e9 (diff) | |
| download | mate-panel-96613f26127df84440d2d7adf2be570725f483b3.tar.bz2 mate-panel-96613f26127df84440d2d7adf2be570725f483b3.tar.xz | |
Show desktop: support wayland use
Diffstat (limited to 'applets/wncklet/wayland-backend.c')
| -rw-r--r-- | applets/wncklet/wayland-backend.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/applets/wncklet/wayland-backend.c b/applets/wncklet/wayland-backend.c index f10b2d65..b80f78a7 100644 --- a/applets/wncklet/wayland-backend.c +++ b/applets/wncklet/wayland-backend.c @@ -79,6 +79,8 @@ static ToplevelTask *toplevel_task_new (TasklistManager *tasklist, struct zwlr_f guint buttons, tasklist_width; +gboolean window_hidden; + static void wl_registry_handle_global (void *_data, struct wl_registry *registry, @@ -494,6 +496,34 @@ toplevel_task_disconnected_from_widget (ToplevelTask *task) g_free (task); } +/*We have to use the "activate" signal here + *as only signals valid for GtkButton work, + *"clicked" is taken, and we need to separate + *showing the desktop from mouse clicks on window buttons + */ +void +toggle_show_desktop(GtkWidget *button, gboolean desktop_showing) +{ + window_hidden = desktop_showing; + g_signal_emit_by_name (button, "activate"); +} + +static void +toggle_window(GtkButton *button, ToplevelTask *task) +{ + if (task->toplevel) + { + if (window_hidden) + { + zwlr_foreign_toplevel_handle_v1_set_minimized (task->toplevel); + } + else + { + zwlr_foreign_toplevel_handle_v1_unset_minimized (task->toplevel); + } + } +} + static void toplevel_task_handle_clicked (GtkButton *button, ToplevelTask *task) { @@ -551,6 +581,7 @@ toplevel_task_new (TasklistManager *tasklist, struct zwlr_foreign_toplevel_handl orient = gtk_orientable_get_orientation (GTK_ORIENTABLE (tasklist->outer_box)); task->button = gtk_button_new (); g_signal_connect (task->button, "clicked", G_CALLBACK (toplevel_task_handle_clicked), task); + g_signal_connect (task->button, "activate", G_CALLBACK (toggle_window), task); task->icon = gtk_image_new_from_icon_name ("unknown", icon_size); |
