fade out exiting task bar buttons and tabs

This commit is contained in:
nakst 2021-11-15 21:28:20 +00:00
parent 626eac1386
commit 6f47e9eb21
5 changed files with 5 additions and 6 deletions

View File

@ -77,9 +77,6 @@ EsError FSDirEnumerate(Folder *folder) {
EsDirectoryChild *buffer = nullptr;
ptrdiff_t _entryCount = EsDirectoryEnumerateChildren(STRING(folder->path), &buffer);
// TODO.
EsSleep(5000);
if (!ES_CHECK_ERROR(_entryCount)) {
for (intptr_t i = 0; i < _entryCount; i++) {
FolderAddEntry(folder, buffer[i].name, buffer[i].nameBytes, &buffer[i]);

View File

@ -580,6 +580,7 @@ void WindowTabDestroy(WindowTab *tab) {
if (container->taskBarButton) {
container->taskBarButton->exiting = true;
container->taskBarButton->containerWindow = nullptr;
EsElementStartTransition(container->taskBarButton, ES_TRANSITION_FADE_OUT, ES_ELEMENT_TRANSITION_HIDE_AFTER_COMPLETE);
EsElementRelayout(container->taskBarButton->parent);
// The button is destroyed by ReorderItemAnimate, once the exit animation completes.
}
@ -599,6 +600,7 @@ void WindowTabDestroy(WindowTab *tab) {
tab->applicationInstance = nullptr;
tab->exiting = true;
tab->SetStyle(ES_STYLE_WINDOW_TAB_INACTIVE);
EsElementStartTransition(tab, ES_TRANSITION_FADE_OUT, ES_ELEMENT_TRANSITION_HIDE_AFTER_COMPLETE);
container->openTabs.FindAndDelete(tab, true);
EsElementRelayout(container->tabBand);
// The tab is destroyed by ReorderItemAnimate, once the exit animation completes.

View File

@ -84,7 +84,7 @@ struct {
bool shutdown;
volatile uint64_t totalHandleCount;
volatile uint64_t fileSystemsUnmounting;
volatile uintptr_t fileSystemsUnmounting;
KEvent fileSystemUnmounted;
} fs = {
.fileSystemUnmounted = { .autoReset = true },

View File

@ -285,7 +285,7 @@ bool KEventWait(KEvent *event, uint64_t timeoutMs = ES_WAIT_NO_TIMEOUT); // See
struct KWriterLock { // One writer or many readers.
K_PRIVATE
LinkedList<Thread> blockedThreads;
volatile int64_t state; // -1: exclusive; >0: shared owners.
volatile intptr_t state; // -1: exclusive; >0: shared owners.
#ifdef DEBUG_BUILD
volatile Thread *exclusiveOwner;
#endif

View File

@ -50,7 +50,7 @@ struct Window {
Process *owner;
void *apiWindow;
EmbeddedWindow *embed;
volatile uint64_t handles;
volatile uint32_t handles;
EsObjectID id;
// Location: