]> git.sur5r.net Git - i3/i3/blobdiff - src/workspace.c
Handle the EWMH atom _NET_WM_DESKTOP.
[i3/i3] / src / workspace.c
index dc0a596d53780ecf8345dc929f9084211aed6d4b..ba19cb5f38bc68f2b8ef616f8bbbebb3216f737c 100644 (file)
@@ -101,6 +101,7 @@ Con *workspace_get(const char *num, bool *created) {
         ewmh_update_number_of_desktops();
         ewmh_update_desktop_names();
         ewmh_update_desktop_viewport();
+        ewmh_update_wm_desktop();
         if (created != NULL)
             *created = true;
     } else if (created != NULL) {
@@ -442,7 +443,7 @@ static void _workspace_show(Con *workspace) {
 
     DLOG("old = %p / %s\n", old, (old ? old->name : "(null)"));
     /* Close old workspace if necessary. This must be done *after* doing
-     * urgency handling, because tree_close() will do a con_focus() on the next
+     * urgency handling, because tree_close_internal() will do a con_focus() on the next
      * client, which will clear the urgency flag too early. Also, there is no
      * way for con_focus() to know about when to clear urgency immediately and
      * when to defer it. */
@@ -451,7 +452,7 @@ static void _workspace_show(Con *workspace) {
         if (!workspace_is_visible(old)) {
             LOG("Closing old workspace (%p / %s), it is empty\n", old, old->name);
             yajl_gen gen = ipc_marshal_workspace_event("empty", old, NULL);
-            tree_close(old, DONT_KILL_WINDOW, false, false);
+            tree_close_internal(old, DONT_KILL_WINDOW, false, false);
 
             const unsigned char *payload;
             ylength length;
@@ -463,6 +464,7 @@ static void _workspace_show(Con *workspace) {
             ewmh_update_number_of_desktops();
             ewmh_update_desktop_names();
             ewmh_update_desktop_viewport();
+            ewmh_update_wm_desktop();
         }
     }