- float rate_diff = mode.rate;
- for(list<VideoMode>::const_iterator i=modes.begin(); i!=modes.end(); ++i)
+ float rate_diff = 0.0f;
+
+ float target_rate = mode.rate;
+ if(!target_rate && mode.monitor)
+ if(const VideoMode *current_mode = mode.monitor->current_settings.mode)
+ target_rate = current_mode->rate;
+
+ for(const VideoMode &m: modes)