diff --git a/build/win32/platform_specific_code/juce_win32_Windowing.cpp b/build/win32/platform_specific_code/juce_win32_Windowing.cpp index 854952d7b3..da94623f87 100644 --- a/build/win32/platform_specific_code/juce_win32_Windowing.cpp +++ b/build/win32/platform_specific_code/juce_win32_Windowing.cpp @@ -825,7 +825,7 @@ public: if (! hasCreatedCaret) { hasCreatedCaret = true; - CreateCaret (hwnd, 0, 0, 0); + CreateCaret (hwnd, (HBITMAP) 1, 0, 0); } ShowCaret (hwnd); diff --git a/src/juce_appframework/gui/components/layout/juce_TabbedComponent.cpp b/src/juce_appframework/gui/components/layout/juce_TabbedComponent.cpp index 362578a05a..bd7e7e6cef 100644 --- a/src/juce_appframework/gui/components/layout/juce_TabbedComponent.cpp +++ b/src/juce_appframework/gui/components/layout/juce_TabbedComponent.cpp @@ -315,6 +315,13 @@ void TabbedComponent::resized() contentComponents.getUnchecked (i)->setBounds (bounds); } +void TabbedComponent::lookAndFeelChanged() +{ + for (int i = contentComponents.size(); --i >= 0;) + if (contentComponents.getUnchecked (i) != 0) + contentComponents.getUnchecked (i)->lookAndFeelChanged(); +} + void TabbedComponent::changeCallback (const int newCurrentTabIndex, const String& newTabName) { diff --git a/src/juce_appframework/gui/components/layout/juce_TabbedComponent.h b/src/juce_appframework/gui/components/layout/juce_TabbedComponent.h index 8e9b408739..9b392ca451 100644 --- a/src/juce_appframework/gui/components/layout/juce_TabbedComponent.h +++ b/src/juce_appframework/gui/components/layout/juce_TabbedComponent.h @@ -201,6 +201,8 @@ public: void paint (Graphics& g); /** @internal */ void resized(); + /** @internal */ + void lookAndFeelChanged(); juce_UseDebuggingNewOperator diff --git a/src/juce_appframework/gui/components/special/juce_AudioDeviceSelectorComponent.cpp b/src/juce_appframework/gui/components/special/juce_AudioDeviceSelectorComponent.cpp index ca33f4d689..c2c0e92874 100644 --- a/src/juce_appframework/gui/components/special/juce_AudioDeviceSelectorComponent.cpp +++ b/src/juce_appframework/gui/components/special/juce_AudioDeviceSelectorComponent.cpp @@ -321,7 +321,8 @@ public: if (sampleRateDropDown != 0) { - sampleRateDropDown->setVisible (! showAdvancedSettingsButton->isVisible()); + sampleRateDropDown->setVisible (showAdvancedSettingsButton == 0 + || ! showAdvancedSettingsButton->isVisible()); sampleRateDropDown->setBounds (lx, y, w, h); y += dh; @@ -329,14 +330,16 @@ public: if (bufferSizeDropDown != 0) { - bufferSizeDropDown->setVisible (! showAdvancedSettingsButton->isVisible()); + bufferSizeDropDown->setVisible (showAdvancedSettingsButton == 0 + || ! showAdvancedSettingsButton->isVisible()); bufferSizeDropDown->setBounds (lx, y, w, h); y += dh; } if (showUIButton != 0) { - showUIButton->setVisible (! showAdvancedSettingsButton->isVisible()); + showUIButton->setVisible (showAdvancedSettingsButton == 0 + || ! showAdvancedSettingsButton->isVisible()); showUIButton->changeWidthToFitText (h); showUIButton->setTopLeftPosition (lx, y); } diff --git a/src/juce_appframework/gui/graphics/drawables/juce_SVGParser.cpp b/src/juce_appframework/gui/graphics/drawables/juce_SVGParser.cpp index 065b9cb9ec..d0cc29b889 100644 --- a/src/juce_appframework/gui/graphics/drawables/juce_SVGParser.cpp +++ b/src/juce_appframework/gui/graphics/drawables/juce_SVGParser.cpp @@ -860,11 +860,13 @@ private: const String text (e->getText()); Path path; - parseShape (*e, path); + Drawable* s = parseShape (*e, path); + delete s; } else if (e->hasTagName (T("tspan"))) { - parseText (*e); + Drawable* s = parseText (*e); + delete s; } } diff --git a/src/juce_core/io/streams/juce_GZIPDecompressorInputStream.cpp b/src/juce_core/io/streams/juce_GZIPDecompressorInputStream.cpp index 20353b6b3e..ad1c8b006d 100644 --- a/src/juce_core/io/streams/juce_GZIPDecompressorInputStream.cpp +++ b/src/juce_core/io/streams/juce_GZIPDecompressorInputStream.cpp @@ -277,17 +277,24 @@ bool GZIPDecompressorInputStream::setPosition (int64 newPos) { if (newPos != currentPos) { - // reset the stream and start again.. - GZIPDecompressHelper* const h = (GZIPDecompressHelper*) helper; - delete h; + if (newPos > currentPos) + { + skipNextBytes (newPos - currentPos); + } + else + { + // reset the stream and start again.. + GZIPDecompressHelper* const h = (GZIPDecompressHelper*) helper; + delete h; - isEof = false; - activeBufferSize = 0; - currentPos = 0; - helper = new GZIPDecompressHelper (noWrap); + isEof = false; + activeBufferSize = 0; + currentPos = 0; + helper = new GZIPDecompressHelper (noWrap); - sourceStream->setPosition (originalSourcePos); - skipNextBytes (newPos); + sourceStream->setPosition (originalSourcePos); + skipNextBytes (newPos); + } } return true;