# HG changeset patch # User Andrew McPherson # Date 1393807055 0 # Node ID f3efbf2984c364f8e89cd6865364b1f27856b00e # Parent cfbcd31a54e726056185f628d1a45dfeeedfb628 OpenGL workaround for Linux (will get to the bottom of it later) and a bugfix on virtual ports. diff -r cfbcd31a54e7 -r f3efbf2984c3 Source/Display/OpenGLJuceCanvas.h --- a/Source/Display/OpenGLJuceCanvas.h Sun Mar 02 22:31:54 2014 +0000 +++ b/Source/Display/OpenGLJuceCanvas.h Mon Mar 03 00:37:35 2014 +0000 @@ -39,7 +39,12 @@ OpenGLJuceCanvas(OpenGLDisplayBase& display) : display_(display) { openGLContext_.setRenderer (this); openGLContext_.setComponentPaintingEnabled (false); - openGLContext_.setContinuousRepainting (false); + // Funny OpenGL bugs in Linux version that results in improper drawing when in background + // For other OSes, save the cycles of continuous repainting. + if(SystemStats::getOperatingSystemType() == SystemStats::Linux) + openGLContext_.setContinuousRepainting (true); + else + openGLContext_.setContinuousRepainting (false); openGLContext_.attachTo (*this); display_.setCanvas(this); } diff -r cfbcd31a54e7 -r f3efbf2984c3 Source/GUI/KeyboardZoneComponent.cpp --- a/Source/GUI/KeyboardZoneComponent.cpp Sun Mar 02 22:31:54 2014 +0000 +++ b/Source/GUI/KeyboardZoneComponent.cpp Mon Mar 03 00:37:35 2014 +0000 @@ -594,7 +594,12 @@ } if(!lastSelectedDeviceExists) { +#ifndef JUCE_WINDOWS + if(lastSelectedMidiOutputID_ != MidiOutputController::kMidiVirtualOutputPortNumber) + controller_->disableMIDIOutputPort(keyboardSegment_->outputPort()); +#else // No virtual port on Windows controller_->disableMIDIOutputPort(keyboardSegment_->outputPort()); +#endif } }