| @@ -303,8 +303,20 @@ | ||
| 303 | 303 | if ( openstation_is_chromeless_request() ) { |
| 304 | 304 | return; |
| 305 | 305 | } |
| 306 | 306 | |
| 307 | + // The items are `display: flex`, never `inline-flex`. An | |
| 308 | + // inline-level box sits on a line box the <li> lays out at its | |
| 309 | + // 32px line-height and aligns on the baseline, so the line grows | |
| 310 | + // by the descender: the item became 37px inside a 32px bar. Under | |
| 311 | + // Core's float layout that overflow was invisible. On a host that | |
| 312 | + // lays the secondary group out as a flex row (WordPress.com's Debug | |
| 313 | + // Bar does, to order its own item first) every sibling stretched | |
| 314 | + // to the tallest one and the group's background painted 5px into | |
| 315 | + // the shell, under the windows' title bars. Block-level, the item | |
| 316 | + // is exactly the bar. `Tests_OpenStation_AdminBarDesktopToggle` | |
| 317 | + // pins it; `desktop.css` caps the group as well, for items we do | |
| 318 | + // not own. | |
| 307 | 319 | $css = ' |
| 308 | 320 | #wpadminbar #wp-admin-bar-os-toggle > .ab-item, |
| 309 | 321 | #wpadminbar #wp-admin-bar-desktop-layout-menu > .ab-item, |
| 310 | 322 | #wpadminbar #wp-admin-bar-desktop-fullscreen > .ab-item, |
| @@ -309,9 +321,9 @@ | ||
| 309 | 321 | #wpadminbar #wp-admin-bar-desktop-layout-menu > .ab-item, |
| 310 | 322 | #wpadminbar #wp-admin-bar-desktop-fullscreen > .ab-item, |
| 311 | 323 | #wpadminbar #wp-admin-bar-desktop-bug-report > .ab-item, |
| 312 | 324 | #wpadminbar #wp-admin-bar-desktop-help > .ab-item { |
| 313 | - display: inline-flex; | |
| 325 | + display: flex; | |
| 314 | 326 | align-items: center; |
| 315 | 327 | gap: 6px; |
| 316 | 328 | } |
| 317 | 329 | #wpadminbar #wp-admin-bar-os-toggle .ab-icon, |
| @@ -695,10 +707,16 @@ | ||
| 695 | 707 | 'var openStationAdminBar = ' . wp_json_encode( |
| 696 | 708 | array( |
| 697 | 709 | 'nonce' => wp_create_nonce( 'save-openstation' ), |
| 698 | 710 | 'active' => openstation_is_enabled() && ! openstation_is_classic_request(), |
| 699 | - 'classicUrl' => esc_url_raw( admin_url() ), | |
| 711 | + // `self_admin_url()`: switching off from the network | |
| 712 | + // admin returns there, not to the main site. | |
| 713 | + 'classicUrl' => esc_url_raw( self_admin_url() ), | |
| 700 | 714 | 'portalUrl' => esc_url_raw( openstation_portal_url() ), |
| 715 | + // Passed back on the toggle's AJAX call: the handler | |
| 716 | + // runs on `admin-ajax.php`, where `is_network_admin()` | |
| 717 | + // is always false. | |
| 718 | + 'network' => is_network_admin(), | |
| 701 | 719 | 'ajaxUrl' => esc_url_raw( admin_url( 'admin-ajax.php' ) ), |
| 702 | 720 | 'i18n' => array( |
| 703 | 721 | 'enterFullscreen' => __( 'Fullscreen', 'desktop-mode' ), |
| 704 | 722 | 'exitFullscreen' => __( 'Exit fullscreen', 'desktop-mode' ), |
| @@ -774,8 +792,12 @@ | ||
| 774 | 792 | ), |
| 775 | 793 | array( |
| 776 | 794 | 'keys' => array( '⌘/Ctrl', 'K' ), |
| 777 | 795 | 'description' => __( 'Open the command palette / Ask AI overlay.', 'desktop-mode' ), |
| 796 | + ), | |
| 797 | + array( | |
| 798 | + 'keys' => array( '⌥/Alt', '⌘/Ctrl', 'W' ), | |
| 799 | + 'description' => __( 'Close every open window on the current desktop (asks first).', 'desktop-mode' ), | |
| 778 | 800 | ), |
| 779 | 801 | array( |
| 780 | 802 | 'keys' => array( 'Esc' ), |
| 781 | 803 | 'description' => __( 'Exit Overview (or Snap Overview) without changing window state.', 'desktop-mode' ), |