X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/acfd422afac254f4356904275656c0c15685fa1e..ea804aadf91c963d97a56e152d8372c9e689affe:/src/gtk1/app.cpp diff --git a/src/gtk1/app.cpp b/src/gtk1/app.cpp index 315d37194c..b7ed1c12ce 100644 --- a/src/gtk1/app.cpp +++ b/src/gtk1/app.cpp @@ -45,7 +45,6 @@ wxApp *wxTheApp = (wxApp *) NULL; wxAppInitializerFunction wxApp::m_appInitFn = (wxAppInitializerFunction) NULL; -extern wxList wxPendingDelete; #if wxUSE_THREADS extern wxList *wxPendingEvents; extern wxCriticalSection *wxPendingEventsLocker; @@ -193,9 +192,10 @@ gint wxapp_idle_callback( gpointer WXUNUSED(data) ) emptied */ g_isIdle = TRUE; -/* wxMutexGuiLeave(); - wxUsleep(10); - wxMutexGuiEnter(); */ + /* wake up other threads */ + wxMutexGuiLeave(); + wxUsleep(0); + wxMutexGuiEnter(); return TRUE; } @@ -276,8 +276,8 @@ bool wxApp::OnInitGui() m_colorCube = (unsigned char*)malloc(32 * 32 * 32); - for (int r = 0; r < 32; r++) - { + for (int r = 0; r < 32; r++) + { for (int g = 0; g < 32; g++) { for (int b = 0; b < 32; b++) @@ -286,17 +286,24 @@ bool wxApp::OnInitGui() int gg = (g << 3) | (g >> 2); int bb = (b << 3) | (b >> 2); - GdkColor *colors = cmap->colors; - int max = 3 * 65536; int index = -1; - for (int i = 0; i < cmap->size; i++) + GdkColor *colors = cmap->colors; + if(colors) { - int rdiff = ((rr << 8) - colors[i].red); - int gdiff = ((gg << 8) - colors[i].green); - int bdiff = ((bb << 8) - colors[i].blue); - int sum = ABS (rdiff) + ABS (gdiff) + ABS (bdiff); - if (sum < max) { index = i; max = sum; } + int max = 3 * 65536; + + for (int i = 0; i < cmap->size; i++) + { + int rdiff = ((rr << 8) - colors[i].red); + int gdiff = ((gg << 8) - colors[i].green); + int bdiff = ((bb << 8) - colors[i].blue); + int sum = ABS (rdiff) + ABS (gdiff) + ABS (bdiff); + if (sum < max) + { + index = i; max = sum; + } + } } m_colorCube[ (r*1024) + (g*32) + b ] = index; @@ -445,8 +452,8 @@ void wxApp::DeletePendingObjects() delete obj; - if (wxPendingDelete.Member(obj)) - delete node; + if (wxPendingDelete.Find(obj)) + delete node; node = wxPendingDelete.First(); }