mirror of
				https://github.com/libsdl-org/SDL.git
				synced 2025-10-26 12:27:44 +00:00 
			
		
		
		
	Revert "Add SDL_IsTraySupported"
This reverts commit 47d8bdd1c3.
There are runtime reasons why creating a tray can fail, so the correct approach is not to assume that just because a platform supports a tray that trays are available. Instead, you should create a tray at application startup, for the lifetime of the application, and handle failures at that point.
Closes https://github.com/libsdl-org/SDL/pull/13632
			
			
This commit is contained in:
		| @@ -96,25 +96,6 @@ typedef Uint32 SDL_TrayEntryFlags; | ||||
|  */ | ||||
| typedef void (SDLCALL *SDL_TrayCallback)(void *userdata, SDL_TrayEntry *entry); | ||||
|  | ||||
| /** | ||||
|  * Check whether or not tray icons can be created. | ||||
|  * | ||||
|  * Note that this function does not guarantee that SDL_CreateTray() will or | ||||
|  * will not work; you should still check SDL_CreateTray() for errors. | ||||
|  * | ||||
|  * Using tray icons require the video subsystem. | ||||
|  * | ||||
|  * \returns true if trays are available, false otherwise. | ||||
|  * | ||||
|  * \threadsafety This function should only be called on the main thread. It | ||||
|  *               will return false if not called on the main thread. | ||||
|  * | ||||
|  * \since This function is available since SDL 3.4.0. | ||||
|  * | ||||
|  * \sa SDL_CreateTray | ||||
|  */ | ||||
| extern SDL_DECLSPEC bool SDLCALL SDL_IsTraySupported(void); | ||||
|  | ||||
| /** | ||||
|  * Create an icon to be placed in the operating system's tray, or equivalent. | ||||
|  * | ||||
|   | ||||
| @@ -1253,7 +1253,6 @@ SDL3_0.0.0 { | ||||
|     SDL_PutAudioStreamPlanarData; | ||||
|     SDL_GetEventDescription; | ||||
|     SDL_PutAudioStreamDataNoCopy; | ||||
|     SDL_IsTraySupported; | ||||
|     # extra symbols go here (don't modify this line) | ||||
|   local: *; | ||||
| }; | ||||
|   | ||||
| @@ -1278,4 +1278,3 @@ | ||||
| #define SDL_PutAudioStreamPlanarData SDL_PutAudioStreamPlanarData_REAL | ||||
| #define SDL_GetEventDescription SDL_GetEventDescription_REAL | ||||
| #define SDL_PutAudioStreamDataNoCopy SDL_PutAudioStreamDataNoCopy_REAL | ||||
| #define SDL_IsTraySupported SDL_IsTraySupported_REAL | ||||
|   | ||||
| @@ -1286,4 +1286,3 @@ SDL_DYNAPI_PROC(SDL_Renderer*,SDL_CreateGPURenderer,(SDL_Window *a,SDL_GPUShader | ||||
| SDL_DYNAPI_PROC(bool,SDL_PutAudioStreamPlanarData,(SDL_AudioStream *a,const void * const*b,int c,int d),(a,b,c,d),return) | ||||
| SDL_DYNAPI_PROC(int,SDL_GetEventDescription,(const SDL_Event *a,char *b,int c),(a,b,c),return) | ||||
| SDL_DYNAPI_PROC(bool,SDL_PutAudioStreamDataNoCopy,(SDL_AudioStream *a,const void *b,int c,SDL_AudioStreamDataCompleteCallback d,void *e),(a,b,c,d,e),return) | ||||
| SDL_DYNAPI_PROC(bool,SDL_IsTraySupported,(void),(),return) | ||||
|   | ||||
| @@ -82,16 +82,6 @@ void SDL_UpdateTrays(void) | ||||
| { | ||||
| } | ||||
|  | ||||
| bool SDL_IsTraySupported(void) | ||||
| { | ||||
|     if (!SDL_IsMainThread()) { | ||||
|         SDL_SetError("This function should be called on the main thread"); | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     return true; | ||||
| } | ||||
|  | ||||
| SDL_Tray *SDL_CreateTray(SDL_Surface *icon, const char *tooltip) | ||||
| { | ||||
|     if (!SDL_IsMainThread()) { | ||||
|   | ||||
| @@ -29,11 +29,6 @@ void SDL_UpdateTrays(void) | ||||
| { | ||||
| } | ||||
|  | ||||
| bool SDL_IsTraySupported(void) | ||||
| { | ||||
|     return false; | ||||
| } | ||||
|  | ||||
| SDL_Tray *SDL_CreateTray(SDL_Surface *icon, const char *tooltip) | ||||
| { | ||||
|     SDL_Unsupported(); | ||||
|   | ||||
| @@ -240,24 +240,6 @@ void SDL_UpdateTrays(void) | ||||
|     SDL_UpdateGtk(); | ||||
| } | ||||
|  | ||||
| bool SDL_IsTraySupported(void) | ||||
| { | ||||
|     if (!SDL_IsMainThread()) { | ||||
|         SDL_SetError("This function should be called on the main thread"); | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     static bool has_trays = false; | ||||
|     static bool has_been_detected_once = false; | ||||
|  | ||||
|     if (!has_been_detected_once) { | ||||
|         has_trays = init_appindicator() && SDL_Gtk_Init(); | ||||
|         has_been_detected_once = true; | ||||
|     } | ||||
|  | ||||
|     return has_trays; | ||||
| } | ||||
|  | ||||
| SDL_Tray *SDL_CreateTray(SDL_Surface *icon, const char *tooltip) | ||||
| { | ||||
|     if (!SDL_IsMainThread()) { | ||||
|   | ||||
| @@ -216,16 +216,6 @@ void SDL_UpdateTrays(void) | ||||
| { | ||||
| } | ||||
|  | ||||
| bool SDL_IsTraySupported(void) | ||||
| { | ||||
|     if (!SDL_IsMainThread()) { | ||||
|         SDL_SetError("This function should be called on the main thread"); | ||||
|         return false; | ||||
|     } | ||||
|  | ||||
|     return true; | ||||
| } | ||||
|  | ||||
| SDL_Tray *SDL_CreateTray(SDL_Surface *icon, const char *tooltip) | ||||
| { | ||||
|     if (!SDL_IsMainThread()) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Sam Lantinga
					Sam Lantinga