mirror of https://gitlab.com/nakst/essence
fade out exiting task bar buttons and tabs
This commit is contained in:
parent
626eac1386
commit
6f47e9eb21
|
@ -77,9 +77,6 @@ EsError FSDirEnumerate(Folder *folder) {
|
||||||
EsDirectoryChild *buffer = nullptr;
|
EsDirectoryChild *buffer = nullptr;
|
||||||
ptrdiff_t _entryCount = EsDirectoryEnumerateChildren(STRING(folder->path), &buffer);
|
ptrdiff_t _entryCount = EsDirectoryEnumerateChildren(STRING(folder->path), &buffer);
|
||||||
|
|
||||||
// TODO.
|
|
||||||
EsSleep(5000);
|
|
||||||
|
|
||||||
if (!ES_CHECK_ERROR(_entryCount)) {
|
if (!ES_CHECK_ERROR(_entryCount)) {
|
||||||
for (intptr_t i = 0; i < _entryCount; i++) {
|
for (intptr_t i = 0; i < _entryCount; i++) {
|
||||||
FolderAddEntry(folder, buffer[i].name, buffer[i].nameBytes, &buffer[i]);
|
FolderAddEntry(folder, buffer[i].name, buffer[i].nameBytes, &buffer[i]);
|
||||||
|
|
|
@ -580,6 +580,7 @@ void WindowTabDestroy(WindowTab *tab) {
|
||||||
if (container->taskBarButton) {
|
if (container->taskBarButton) {
|
||||||
container->taskBarButton->exiting = true;
|
container->taskBarButton->exiting = true;
|
||||||
container->taskBarButton->containerWindow = nullptr;
|
container->taskBarButton->containerWindow = nullptr;
|
||||||
|
EsElementStartTransition(container->taskBarButton, ES_TRANSITION_FADE_OUT, ES_ELEMENT_TRANSITION_HIDE_AFTER_COMPLETE);
|
||||||
EsElementRelayout(container->taskBarButton->parent);
|
EsElementRelayout(container->taskBarButton->parent);
|
||||||
// The button is destroyed by ReorderItemAnimate, once the exit animation completes.
|
// The button is destroyed by ReorderItemAnimate, once the exit animation completes.
|
||||||
}
|
}
|
||||||
|
@ -599,6 +600,7 @@ void WindowTabDestroy(WindowTab *tab) {
|
||||||
tab->applicationInstance = nullptr;
|
tab->applicationInstance = nullptr;
|
||||||
tab->exiting = true;
|
tab->exiting = true;
|
||||||
tab->SetStyle(ES_STYLE_WINDOW_TAB_INACTIVE);
|
tab->SetStyle(ES_STYLE_WINDOW_TAB_INACTIVE);
|
||||||
|
EsElementStartTransition(tab, ES_TRANSITION_FADE_OUT, ES_ELEMENT_TRANSITION_HIDE_AFTER_COMPLETE);
|
||||||
container->openTabs.FindAndDelete(tab, true);
|
container->openTabs.FindAndDelete(tab, true);
|
||||||
EsElementRelayout(container->tabBand);
|
EsElementRelayout(container->tabBand);
|
||||||
// The tab is destroyed by ReorderItemAnimate, once the exit animation completes.
|
// The tab is destroyed by ReorderItemAnimate, once the exit animation completes.
|
||||||
|
|
|
@ -84,7 +84,7 @@ struct {
|
||||||
bool shutdown;
|
bool shutdown;
|
||||||
|
|
||||||
volatile uint64_t totalHandleCount;
|
volatile uint64_t totalHandleCount;
|
||||||
volatile uint64_t fileSystemsUnmounting;
|
volatile uintptr_t fileSystemsUnmounting;
|
||||||
KEvent fileSystemUnmounted;
|
KEvent fileSystemUnmounted;
|
||||||
} fs = {
|
} fs = {
|
||||||
.fileSystemUnmounted = { .autoReset = true },
|
.fileSystemUnmounted = { .autoReset = true },
|
||||||
|
|
|
@ -285,7 +285,7 @@ bool KEventWait(KEvent *event, uint64_t timeoutMs = ES_WAIT_NO_TIMEOUT); // See
|
||||||
struct KWriterLock { // One writer or many readers.
|
struct KWriterLock { // One writer or many readers.
|
||||||
K_PRIVATE
|
K_PRIVATE
|
||||||
LinkedList<Thread> blockedThreads;
|
LinkedList<Thread> blockedThreads;
|
||||||
volatile int64_t state; // -1: exclusive; >0: shared owners.
|
volatile intptr_t state; // -1: exclusive; >0: shared owners.
|
||||||
#ifdef DEBUG_BUILD
|
#ifdef DEBUG_BUILD
|
||||||
volatile Thread *exclusiveOwner;
|
volatile Thread *exclusiveOwner;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -50,7 +50,7 @@ struct Window {
|
||||||
Process *owner;
|
Process *owner;
|
||||||
void *apiWindow;
|
void *apiWindow;
|
||||||
EmbeddedWindow *embed;
|
EmbeddedWindow *embed;
|
||||||
volatile uint64_t handles;
|
volatile uint32_t handles;
|
||||||
EsObjectID id;
|
EsObjectID id;
|
||||||
|
|
||||||
// Location:
|
// Location:
|
||||||
|
|
Loading…
Reference in New Issue