@@ -249,7 +249,6 @@ export class WorkbenchThemeService extends Disposable implements IWorkbenchTheme
249249 await this . migrateAutoDetectColorScheme ( ) ;
250250 const result = await Promise . all ( [ initializeColorTheme ( ) , initializeFileIconTheme ( ) , initializeProductIconTheme ( ) ] ) ;
251251 this . showNewDefaultThemeNotification ( ) ;
252- this . showThemeAutoUpdatedNotification ( ) ;
253252 return result ;
254253 }
255254
@@ -277,56 +276,6 @@ export class WorkbenchThemeService extends Disposable implements IWorkbenchTheme
277276 } ) ) ;
278277 }
279278
280- private static readonly THEME_AUTO_UPDATED_NOTIFICATION_KEY = 'workbench.themeAutoUpdatedNotification' ;
281-
282- /**
283- * Shows a one-time notification to existing users whose color theme changed
284- * because the product default was updated (e.g. Dark Modern → VS Code Dark).
285- * Offers the option to browse themes or revert to the previous default.
286- */
287- private showThemeAutoUpdatedNotification ( ) : void {
288- if ( this . storageService . getBoolean ( WorkbenchThemeService . THEME_AUTO_UPDATED_NOTIFICATION_KEY , StorageScope . APPLICATION ) ) {
289- return ; // already shown
290- }
291- if ( this . storageService . isNew ( StorageScope . APPLICATION ) ) {
292- return ; // new user, no migration happened
293- }
294-
295- // Target existing users whose theme changed because the default changed.
296- // These users have no explicit user-scoped theme value — they inherited the default.
297- const newDefaultThemes = new Set ( [ ThemeSettingDefaults . COLOR_THEME_DARK , ThemeSettingDefaults . COLOR_THEME_LIGHT ] ) ;
298- if ( ! newDefaultThemes . has ( this . currentColorTheme . settingsId ) ) {
299- return ; // not using a new default theme
300- }
301- if ( ! this . settings . isDefaultColorTheme ( ) ) {
302- return ; // user explicitly chose this theme
303- }
304-
305- const previousSettingsId = this . currentColorTheme . type === ColorScheme . LIGHT ? 'Light Modern' : 'Dark Modern' ;
306-
307- const handle = this . notificationService . prompt (
308- Severity . Info ,
309- nls . localize ( { key : 'newDefaultThemeAutoUpdated' , comment : [ '{0} is the name of the current color theme, e.g. "VS Code Dark"' ] } , "VS Code has a new look! You can keep {0}, switch to another theme, or go back to your previous one." , this . currentColorTheme . label ) ,
310- [ {
311- label : nls . localize ( 'browseThemes' , "Browse Themes" ) ,
312- run : ( ) => this . commandService . executeCommand ( 'workbench.action.selectTheme' )
313- } , {
314- label : nls . localize ( 'revertTheme' , "Revert" ) ,
315- run : ( ) => {
316- const previousTheme = this . colorThemeRegistry . findThemeBySettingsId ( previousSettingsId ) ;
317- if ( previousTheme ) {
318- this . setColorTheme ( previousTheme . id , 'auto' ) ;
319- }
320- }
321- } ]
322- ) ;
323- this . _register ( Event . once ( handle . onDidClose ) ( ( ) => {
324- this . storageService . store ( WorkbenchThemeService . THEME_AUTO_UPDATED_NOTIFICATION_KEY , true , StorageScope . APPLICATION , StorageTarget . USER ) ;
325- // Also suppress the "try new themes" notification — this user is already aware of the new themes.
326- this . storageService . store ( WorkbenchThemeService . NEW_THEME_NOTIFICATION_KEY , true , StorageScope . APPLICATION , StorageTarget . USER ) ;
327- } ) ) ;
328- }
329-
330279 /**
331280 * Migrates legacy theme setting values to their current equivalents,
332281 * writing back the migrated value so settings sync distributes the correct ID.
0 commit comments