Allow moving to the current desktop, to show the desktop popup
authorMikael Magnusson <mikael.magnusson@sony.com>
Thu, 10 Oct 2019 09:40:53 +0000 (11:40 +0200)
committerMikael Magnusson <mikachu@gmail.com>
Mon, 20 Mar 2023 06:28:02 +0000 (07:28 +0100)
openbox/actions/desktop.c
openbox/screen.c

index c2f73c6b3a82edbd379fa48a897907355b49eb35..ddb888e2a66de27fe744a878d007c9aa80a762de 100644 (file)
@@ -190,9 +190,7 @@ static gboolean run_func(ObActionsData *data, gpointer options)
         g_assert_not_reached();
     }
 
-    if (d < screen_num_desktops &&
-        (d != screen_desktop ||
-         (data->client && data->client->desktop != screen_desktop))) {
+    if (d < screen_num_desktops) {
         gboolean go = TRUE;
 
         actions_client_move(data, TRUE);
index cb690acc533b807a28a36c9a058ea0f8cfaa275d..2aa2c56db94ee98569ea70114f180633356d869a 100644 (file)
@@ -586,6 +586,9 @@ void screen_set_desktop(guint num, gboolean dofocus)
     previous = screen_desktop;
     screen_desktop = num;
 
+    if (ob_state() == OB_STATE_RUNNING)
+        screen_show_desktop_popup(screen_desktop, FALSE);
+
     if (previous == num) return;
 
     OBT_PROP_SET32(obt_root(ob_screen), NET_CURRENT_DESKTOP, CARDINAL, num);
@@ -660,9 +663,6 @@ void screen_set_desktop(guint num, gboolean dofocus)
 
     ob_debug("Moving to desktop %d", num+1);
 
-    if (ob_state() == OB_STATE_RUNNING)
-        screen_show_desktop_popup(screen_desktop, FALSE);
-
     /* ignore enter events caused by the move */
     ignore_start = event_start_ignore_all_enters();