From 8c6bab574fa1d39d39e24e4e437428cb2786b38e Mon Sep 17 00:00:00 2001 From: Photon89 Date: Sun, 25 Jan 2026 16:19:56 +0100 Subject: [PATCH] Apply patch by muktupavels that restores window list functionality --- bin/shutter | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/bin/shutter b/bin/shutter index 756deb05..435979ef 100755 --- a/bin/shutter +++ b/bin/shutter @@ -593,7 +593,33 @@ sub STARTUP { if ($x11_supported) { $wnck_screen = Wnck::Screen::get_default(); - $wnck_screen->force_update if $wnck_screen; + } + + if ($wnck_screen) { + $wnck_screen->signal_connect('window-manager-changed' => sub { + $st->{_full}->set_menu(fct_ret_workspace_menu(FALSE)); + }); + + $wnck_screen->signal_connect('viewports-changed' => sub { + $st->{_full}->set_menu(fct_ret_workspace_menu(FALSE)); + }); + + $wnck_screen->signal_connect('workspace-created' => sub { + $st->{_full}->set_menu(fct_ret_workspace_menu(FALSE)); + }); + + $wnck_screen->signal_connect('workspace-destroyed' => sub { + $st->{_full}->set_menu(fct_ret_workspace_menu(FALSE)); + }); + + $wnck_screen->signal_connect('active-workspace-changed' => sub { + $st->{_full}->set_menu(fct_ret_workspace_menu(FALSE)); + }); + + $wnck_screen->signal_connect('window-stacking-changed' => sub { + $st->{_window}->set_menu(fct_ret_window_menu()); + fct_update_tray_menu(@_); + }); } #TRAY ICON AND MENU @@ -968,10 +994,8 @@ sub STARTUP { $st->{_window}->set_menu(fct_ret_window_menu()); #and attach signal handlers - $st->{_full}->signal_connect('show-menu' => sub { $st->{_full}->set_menu(fct_ret_workspace_menu(FALSE)) }); $st->{_window}->signal_connect('clicked' => \&evt_take_screenshot, 'window'); - $st->{_window}->signal_connect('show-menu' => sub { $st->{_window}->set_menu(fct_ret_window_menu()) }); #$st->{_section}->signal_connect('clicked' => \&evt_take_screenshot, 'section'); $st->{_menu}->signal_connect('clicked' => \&evt_take_screenshot, 'menu'); $st->{_tooltip}->signal_connect('clicked' => \&evt_take_screenshot, 'tooltip'); @@ -2904,14 +2928,6 @@ sub STARTUP { if ($cmdname && $folder_to_save) { evt_take_screenshot('global_keybinding', $cmdname, $folder_to_save, $extra); } - - #keep list of windows up-to-date (tray) - Glib::Idle->add( - sub { - $wnck_screen->signal_connect('window-stacking-changed' => sub { fct_update_tray_menu(@_); }); - return FALSE; - }) if $wnck_screen; - } #events @@ -8442,7 +8458,6 @@ sub STARTUP { $current_monitor_active = Gtk3::CheckMenuItem->new_with_label($d->get("Limit to current monitor")); return $menu_wrksp; } - $wnck_screen->force_update(); #we determine the wm name but on older #version of libwnck (or the bindings) @@ -8607,7 +8622,7 @@ sub STARTUP { # Check if we can retrieve the list of stacked windows first, otherwise we will run into a crash, see issue 659 unless ($wnck_screen->get_windows_stacked) { - print "ERROR: The window list could not be retrieved and has been disabled, see https://github.com/shutter-project/shutter/issues/659"; + $menu_windows->show_all; return $menu_windows; }