NO-OP: <tab> after <space> fixes in libs

This commit is contained in:
Robin Gareus 2019-04-13 19:19:29 +02:00
parent 31815b5f26
commit 2f91bdfa53
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
63 changed files with 1013 additions and 1020 deletions

View file

@ -62,5 +62,3 @@ private:
} /* namespace ARDOUR */
#endif /* __ardour_audio_playlist_h__ */

View file

@ -46,8 +46,10 @@ class LIBARDOUR_API IOProcessor : public Processor
IOProcessor (Session&, bool with_input, bool with_output,
const std::string& proc_name, const std::string io_name="",
ARDOUR::DataType default_type = DataType::AUDIO, bool sendish=false);
IOProcessor (Session&, boost::shared_ptr<IO> input, boost::shared_ptr<IO> output,
const std::string& proc_name, ARDOUR::DataType default_type = DataType::AUDIO);
virtual ~IOProcessor ();
bool set_name (const std::string& str);

View file

@ -138,5 +138,3 @@ private:
} /* namespace ARDOUR */
#endif /* __ardour_midi_playlist_h__ */

View file

@ -100,5 +100,3 @@ private:
} /* namespace ARDOUR */
#endif /* __ardour_note_fixer_h__ */

View file

@ -427,5 +427,3 @@ private:
} /* namespace ARDOUR */
#endif /* __ardour_playlist_h__ */

View file

@ -77,8 +77,7 @@ class LIBARDOUR_API PresentationInfo : public PBD::Stateful
* - type will be set during ctor call
*
* - object created in response to user request
* - numeric order will be set by Session, before adding
* to container.
* - numeric order will be set by Session, before adding to container.
* - type set during ctor call
*
*

View file

@ -205,7 +205,7 @@ class LIBARDOUR_API TransportMaster : public PBD::Stateful {
* ARDOURs transport position to the slaves requested transport position.
* </li>
* <li>TransportMaster::locked() should return true, otherwise Session::no_roll will be called</li>
* <li>TransportMaster::starting() should be false, otherwise the transport will not move until it becomes true</li> *
* <li>TransportMaster::starting() should be false, otherwise the transport will not move until it becomes true</li>
* </ul>
*
* @param speed - The transport speed requested

View file

@ -46,5 +46,4 @@ private:
static float _g; // gain factor
};
#endif

View file

@ -261,7 +261,7 @@ AudioRegion::AudioRegion (boost::shared_ptr<const AudioRegion> other)
: Region (other)
, AUDIOREGION_COPY_STATE (other)
/* As far as I can see, the _envelope's times are relative to region position, and have nothing
to do with sources (and hence _start). So when we copy the envelope, we just use the supplied offset.
* to do with sources (and hence _start). So when we copy the envelope, we just use the supplied offset.
*/
, _envelope (Properties::envelope, boost::shared_ptr<AutomationList> (new AutomationList (*other->_envelope.val(), 0, other->_length)))
, _automatable (other->session())

View file

@ -158,7 +158,6 @@ ExportProfileManager::prepare_for_export ()
++format_it, ++filename_it) {
ExportFilenamePtr filename = (*filename_it)->filename;
// filename->include_timespan = (ts_list->size() > 1); Disabled for now...
boost::shared_ptr<BroadcastInfo> b;
if ((*format_it)->format->has_broadcast_info()) {
@ -943,8 +942,6 @@ ExportProfileManager::check_config (boost::shared_ptr<Warnings> warnings,
/* Check filenames */
// filename->include_timespan = (timespans->size() > 1); Disabled for now...
std::list<string> paths;
build_filenames(paths, filename, timespans, channel_config, format);

View file

@ -1384,8 +1384,6 @@ IO::enable_connecting ()
void
IO::bundle_changed (Bundle::Change /*c*/)
{
/* XXX */
// connect_input_ports_to_bundle (_input_bundle, this);
}

View file

@ -739,9 +739,6 @@ PluginManager::ladspa_discover (string path)
DEBUG_TRACE (DEBUG::PluginManager, string_compose ("Found LADSPA plugin, name: %1, Inputs: %2, Outputs: %3\n", info->name, info->n_inputs, info->n_outputs));
}
// GDB WILL NOT LIKE YOU IF YOU DO THIS
// dlclose (module);
return 0;
}

View file

@ -260,6 +260,7 @@ RCConfiguration::set_variables (const XMLNode& node)
if (var.set_from_node (node)) { \
ParameterChanged (name); \
}
#define CONFIG_VARIABLE_SPECIAL(type,var,name,value,mutator) \
if (var.set_from_node (node)) { \
ParameterChanged (name); \

View file

@ -301,14 +301,14 @@ Region::Region (boost::shared_ptr<const Region> other)
_quarter_note = other->_quarter_note;
/* sync pos is relative to start of file. our start-in-file is now zero,
so set our sync position to whatever the the difference between
_start and _sync_pos was in the other region.
result is that our new sync pos points to the same point in our source(s)
as the sync in the other region did in its source(s).
since we start at zero in our source(s), it is not possible to use a sync point that
is before the start. reset it to _start if that was true in the other region.
* so set our sync position to whatever the the difference between
* _start and _sync_pos was in the other region.
*
* result is that our new sync pos points to the same point in our source(s)
* as the sync in the other region did in its source(s).
*
* since we start at zero in our source(s), it is not possible to use a sync point that
* is before the start. reset it to _start if that was true in the other region.
*/
if (other->sync_marked()) {
@ -329,9 +329,9 @@ Region::Region (boost::shared_ptr<const Region> other)
}
/** Create a new Region from part of an existing one.
the start within \a other is given by \a offset
(i.e. relative to the start of \a other's sources, the start is \a offset + \a other.start()
*
* the start within \a other is given by \a offset
* (i.e. relative to the start of \a other's sources, the start is \a offset + \a other.start()
*/
Region::Region (boost::shared_ptr<const Region> other, MusicSample offset)
: SessionObject(other->session(), other->name())
@ -369,8 +369,8 @@ Region::Region (boost::shared_ptr<const Region> other, MusicSample offset)
}
/* if the other region had a distinct sync point
set, then continue to use it as best we can.
otherwise, reset sync point back to start.
* set, then continue to use it as best we can.
* otherwise, reset sync point back to start.
*/
if (other->sync_marked()) {
@ -470,7 +470,7 @@ Region::set_length (samplecnt_t len, const int32_t sub_num)
if (_length != len && len != 0) {
/* check that the current _position wouldn't make the new
length impossible.
* length impossible.
*/
if (max_samplepos - len < _position) {
@ -565,7 +565,7 @@ void
Region::special_set_position (samplepos_t pos)
{
/* this is used when creating a whole file region as
a way to store its "natural" or "captured" position.
* a way to store its "natural" or "captured" position.
*/
_position = _position;
@ -606,7 +606,7 @@ Region::update_after_tempo_map_change (bool send)
set_position_internal (pos, false, 0);
/* do this even if the position is the same. this helps out
a GUI that has moved its representation already.
* a GUI that has moved its representation already.
*/
if (send) {
@ -622,7 +622,7 @@ Region::set_position (samplepos_t pos, int32_t sub_num)
}
/* do this even if the position is the same. this helps out
a GUI that has moved its representation already.
* a GUI that has moved its representation already.
*/
PropertyChange p_and_l;
@ -651,8 +651,8 @@ void
Region::set_position_internal (samplepos_t pos, bool allow_bbt_recompute, const int32_t sub_num)
{
/* We emit a change of Properties::position even if the position hasn't changed
(see Region::set_position), so we must always set this up so that
e.g. Playlist::notify_region_moved doesn't use an out-of-date last_position.
* (see Region::set_position), so we must always set this up so that
* e.g. Playlist::notify_region_moved doesn't use an out-of-date last_position.
*/
_last_position = _position;
@ -667,9 +667,9 @@ Region::set_position_internal (samplepos_t pos, bool allow_bbt_recompute, const
}
/* check that the new _position wouldn't make the current
length impossible - if so, change the length.
XXX is this the right thing to do?
* length impossible - if so, change the length.
*
* XXX is this the right thing to do?
*/
if (max_samplepos - _length < _position) {
_last_length = _length;
@ -686,7 +686,7 @@ Region::set_position_music (double qn)
}
/* do this even if the position is the same. this helps out
a GUI that has moved its representation already.
* a GUI that has moved its representation already.
*/
PropertyChange p_and_l;
@ -710,8 +710,8 @@ void
Region::set_position_music_internal (double qn)
{
/* We emit a change of Properties::position even if the position hasn't changed
(see Region::set_position), so we must always set this up so that
e.g. Playlist::notify_region_moved doesn't use an out-of-date last_position.
* (see Region::set_position), so we must always set this up so that
* e.g. Playlist::notify_region_moved doesn't use an out-of-date last_position.
*/
_last_position = _position;
@ -720,9 +720,9 @@ Region::set_position_music_internal (double qn)
_quarter_note = qn;
/* check that the new _position wouldn't make the current
length impossible - if so, change the length.
XXX is this the right thing to do?
* length impossible - if so, change the length.
*
* XXX is this the right thing to do?
*/
if (max_samplepos - _length < _position) {
_last_length = _length;
@ -747,9 +747,9 @@ Region::set_initial_position (samplepos_t pos)
_position = pos;
/* check that the new _position wouldn't make the current
length impossible - if so, change the length.
XXX is this the right thing to do?
* length impossible - if so, change the length.
*
* XXX is this the right thing to do?
*/
if (max_samplepos - _length < _position) {
@ -764,7 +764,7 @@ Region::set_initial_position (samplepos_t pos)
/* do this even if the position is the same. this helps out
a GUI that has moved its representation already.
* a GUI that has moved its representation already.
*/
send_change (Properties::position);
}
@ -824,8 +824,8 @@ Region::set_start (samplepos_t pos)
return;
}
/* This just sets the start, nothing else. It effectively shifts
the contents of the Region within the overall extent of the Source,
without changing the Region's position or length
* the contents of the Region within the overall extent of the Source,
* without changing the Region's position or length
*/
if (_start != pos) {
@ -972,7 +972,6 @@ Region::modify_end (samplepos_t new_endpoint, bool reset_fade, const int32_t sub
/** @param new_endpoint New region end point, such that, for example,
* a region at 0 of length 10 has an endpoint of 9.
*/
void
Region::trim_end (samplepos_t new_endpoint, const int32_t sub_num)
{

View file

@ -1616,11 +1616,6 @@ Session::track_playlist_changed (boost::weak_ptr<Track> wp)
bool
Session::record_enabling_legal () const
{
/* this used to be in here, but survey says.... we don't need to restrict it */
// if (record_status() == Recording) {
// return false;
// }
if (Config->get_all_safe()) {
return false;
}
@ -2010,9 +2005,9 @@ void
Session::_locations_changed (const Locations::LocationList& locations)
{
/* There was some mass-change in the Locations object.
We might be re-adding a location here but it doesn't actually matter
for all the locations that the Session takes an interest in.
*
* We might be re-adding a location here but it doesn't actually matter
* for all the locations that the Session takes an interest in.
*/
{

View file

@ -108,6 +108,7 @@ SessionConfiguration::set_variables (const XMLNode& node)
if (var.set_from_node (node)) { \
ParameterChanged (name); \
}
#define CONFIG_VARIABLE_SPECIAL(type,var,name,value,mutator) \
if (var.set_from_node (node)) { \
ParameterChanged (name); \

View file

@ -642,11 +642,10 @@ Session::mmc_step_timeout ()
return true;
}
/***********************************************************************
OUTBOUND SYSTEM COMMON STUFF
/* *********************************************************************
* OUTBOUND SYSTEM COMMON STUFF
**********************************************************************/
void
Session::send_song_position_pointer (samplepos_t)
{

View file

@ -1426,9 +1426,9 @@ TempoMap::recompute_tempi (Metrics& metrics)
}
/* tempos must be positioned correctly.
the current approach is to use a meter's bbt time as its base position unit.
an audio-locked meter requires a recomputation of pulse and beat (but not bbt),
while a music-locked meter requires recomputations of sample pulse and beat (but not bbt)
* the current approach is to use a meter's bbt time as its base position unit.
* an audio-locked meter requires a recomputation of pulse and beat (but not bbt),
* while a music-locked meter requires recomputations of sample pulse and beat (but not bbt)
*/
void
TempoMap::recompute_meters (Metrics& metrics)
@ -3383,8 +3383,9 @@ TempoMap::gui_stretch_tempo (TempoSection* ts, const samplepos_t sample, const s
TempoSection* next_t = next_tempo_section_locked (future_map, ts_copy);
TempoSection* prev_to_ts_copy = previous_tempo_section_locked (future_map, ts_copy);
/* the change in samples is the result of changing the slope of at most 2 previous tempo sections.
constant to constant is straightforward, as the tempo prev to ts_copy has constant slope.
*/ double contribution = 0.0;
* constant to constant is straightforward, as the tempo prev to ts_copy has constant slope.
*/
double contribution = 0.0;
if (next_t && prev_to_ts_copy && prev_to_ts_copy->type() == TempoSection::Ramp) {
contribution = (ts_copy->pulse() - prev_to_ts_copy->pulse()) / (double) (next_t->pulse() - prev_to_ts_copy->pulse());
}
@ -3951,13 +3952,16 @@ TempoMap::round_to_quarter_note_subdivision (samplepos_t fr, int sub_num, RoundM
ticks += ticks_one_subdivisions_worth - mod;
}
//NOTE: this code intentionally limits the rounding so we don't advance to the next beat.
// For the purposes of "jump-to-next-subdivision", we DO want to advance to the next beat.
// And since the "prev" direction DOES move beats, I assume this code is unintended.
// But I'm keeping it around, until we determine there are no terrible consequences.
// if (ticks >= BBT_Time::ticks_per_beat) {
// ticks -= BBT_Time::ticks_per_beat;
// }
/* NOTE: this code intentionally limits the rounding so we don't advance to the next beat.
* For the purposes of "jump-to-next-subdivision", we DO want to advance to the next beat.
* And since the "prev" direction DOES move beats, I assume this code is unintended.
* But I'm keeping it around, commened out, until we determine there are no terrible consequences.
*/
#if 0
if (ticks >= BBT_Time::ticks_per_beat) {
ticks -= BBT_Time::ticks_per_beat;
}
#endif
} else if (dir < 0) {
@ -4337,7 +4341,7 @@ TempoMap::next_tempo_section_locked (const Metrics& metrics, TempoSection* ts) c
return 0;
}
/* don't use this to calculate length (the tempo is only correct for this sample).
do that stuff based on the beat_at_sample and sample_at_beat api
* do that stuff based on the beat_at_sample and sample_at_beat api
*/
double
TempoMap::samples_per_quarter_note_at (const samplepos_t sample, const samplecnt_t sr) const
@ -4856,7 +4860,7 @@ TempoMap::samplepos_plus_bbt (samplepos_t pos, BBT_Time op) const
}
/** Count the number of beats that are equivalent to distance when going forward,
starting at pos.
* starting at pos.
*/
Temporal::Beats
TempoMap::framewalk_to_qn (samplepos_t pos, samplecnt_t distance) const

View file

@ -47,7 +47,6 @@ private:
std::ostream& operator<< (std::ostream& str, const Backtrace& bt) { return bt.print (str); }
Backtrace::Backtrace()
{
#ifdef HAVE_EXECINFO
@ -83,7 +82,6 @@ struct BTPair {
BTPair (Backtrace* bt) : ref (bt), rel (0) {}
~BTPair () { }
};
std::ostream& operator<<(std::ostream& str, const BTPair& btp) {
@ -121,7 +119,8 @@ typedef std::map<volatile void const*,const char*> IPointerMap;
using namespace std;
static PointerMap* _sptrs;
PointerMap& sptrs() {
PointerMap& sptrs()
{
if (_sptrs == 0) {
_sptrs = new PointerMap;
}
@ -129,7 +128,8 @@ PointerMap& sptrs() {
}
static IPointerMap* _interesting_pointers;
IPointerMap& interesting_pointers() {
IPointerMap& interesting_pointers()
{
if (_interesting_pointers == 0) {
_interesting_pointers = new IPointerMap;
}
@ -137,7 +137,8 @@ IPointerMap& interesting_pointers() {
}
static Glib::Threads::Mutex* _the_lock;
static Glib::Threads::Mutex& the_lock() {
static Glib::Threads::Mutex& the_lock()
{
if (_the_lock == 0) {
_the_lock = new Glib::Threads::Mutex;
}

View file

@ -158,15 +158,16 @@ FPU::FPU ()
return;
#else
/* Get the CPU vendor just for kicks */
// __cpuid with an InfoType argument of 0 returns the number of
// valid Ids in CPUInfo[0] and the CPU identification string in
// the other three array elements. The CPU identification string is
// not in linear order. The code below arranges the information
// in a human readable form. The human readable order is CPUInfo[1] |
// CPUInfo[3] | CPUInfo[2]. CPUInfo[2] and CPUInfo[3] are swapped
// before using memcpy to copy these three array elements to cpu_string.
/* Get the CPU vendor just for kicks
*
* __cpuid with an InfoType argument of 0 returns the number of
* valid Ids in CPUInfo[0] and the CPU identification string in
* the other three array elements. The CPU identification string is
* not in linear order. The code below arranges the information
* in a human readable form. The human readable order is CPUInfo[1] |
* CPUInfo[3] | CPUInfo[2]. CPUInfo[2] and CPUInfo[3] are swapped
* before using memcpy to copy these three array elements to cpu_string.
*/
int cpu_info[4];
char cpu_string[48];

View file

@ -116,7 +116,6 @@ namespace StringPrivate
}
}
// implementation of class Composition
template <typename T>
inline Composition &Composition::arg(const T &obj)
@ -221,9 +220,10 @@ namespace StringPrivate
++i;
}
if (i - b > 0) // add the rest of the string
if (i - b > 0) { // add the rest of the string
output.push_back(fmt.substr(b, i - b));
}
}
inline std::string Composition::str() const
{
@ -239,8 +239,7 @@ namespace StringPrivate
}
// now for the real thing(s)
//namespace PBD
//{
// a series of functions which accept a format string on the form "text %1
// more %2 less %3" and a number of templated parameters and spits out the
// composited string
@ -429,7 +428,5 @@ namespace StringPrivate
.arg(o10).arg(o11).arg(o12).arg(o13).arg(o14).arg(o15);
return c.str();
}
//}
#endif // STRING_COMPOSE_H

View file

@ -121,7 +121,7 @@ extern "C" {
#endif
#ifndef OPEN_MAX
#define OPEN_MAX 32
#define OPEN_MAX (32)
#endif
#ifdef __cplusplus
@ -166,7 +166,7 @@ struct dirent
{
long d_ino; // Always zero
unsigned short d_reclen; // Always zero
unsigned short d_namlen; // Length of name in d_name
unsigned shor d_namlen; // Length of name in d_name
char d_name[FILENAME_MAX]; // File name
};

View file

@ -32,7 +32,9 @@ class /*LIBPBD_API*/ RingBuffer
{
public:
RingBuffer (guint sz) {
// size = ffs(sz); /* find first [bit] set is a single inlined assembly instruction. But it looks like the API rounds up so... */
#if 0
size = ffs(sz); /* find first [bit] set is a single inlined assembly instruction. But it looks like the API rounds up so... */
#endif
guint power_of_two;
for (power_of_two = 1; 1U<<power_of_two < sz; power_of_two++) {}
size = 1<<power_of_two;

View file

@ -29,4 +29,3 @@
} \
} while (0)
#endif

View file

@ -87,5 +87,3 @@ tokenize(const StringType& str,
} // namespace PBD
#endif // PBD_TOKENIZER

View file

@ -665,8 +665,7 @@ XMLNode::remove_nodes_and_delete(const string& propname, const string& val)
}
void
XMLNode::remove_node_and_delete(const string& n, const string& propname,
const string& val)
XMLNode::remove_node_and_delete(const string& n, const string& propname, const string& val)
{
for (XMLNodeIterator i = _children.begin(); i != _children.end(); ++i) {
if ((*i)->name() == n) {

View file

@ -531,8 +531,10 @@ FPGUI::build_proj_action_combo (Gtk::ComboBox& cb, FaderPort::ButtonState bs)
actions.push_back (make_pair (string("Toggle Meterbridge"), string(X_("Common/toggle-meterbridge"))));
actions.push_back (make_pair (string (_("Zoom to Session")), string (X_("Editor/zoom-to-session"))));
// actions.push_back (make_pair (string (_("Zoom In")), string (X_("Editor/temporal-zoom-in"))));
// actions.push_back (make_pair (string (_("Zoom Out")), string (X_("Editor/temporal-zoom-out"))));
#if 0
actions.push_back (make_pair (string (_("Zoom In")), string (X_("Editor/temporal-zoom-in"))));
actions.push_back (make_pair (string (_("Zoom Out")), string (X_("Editor/temporal-zoom-out"))));
#endif
build_action_combo (cb, actions, FaderPort::Proj, bs);
}

View file

@ -109,10 +109,11 @@ DeviceInfo::logic_control_buttons ()
void
DeviceInfo::shared_buttons ()
{
// US-2499 button notes:
// CHAN button sends nothing. it inititates a dumb 0..127 knob mode for the 24 knobs
// PAN sends the regular pan/surround message. this tells our strips to send the pan knob position
// AUX1-6 all send the same 0x29 + 0x21 message, I believe the surface uses this to captures knob info, somehow
/* US-2499 button notes:
* CHAN button sends nothing. it inititates a dumb 0..127 knob mode for the 24 knobs
* PAN sends the regular pan/surround message. this tells our strips to send the pan knob position
* AUX1-6 all send the same 0x29 + 0x21 message, I believe the surface uses this to captures knob info, somehow
*/
_global_buttons[Button::Pan] = GlobalButtonInfo ("Pan/Surround", "assignment", 0x2a); // US-2400: this is sent (on&off in one msg) from the Pan button

View file

@ -263,14 +263,18 @@ Strip::reset_stripable ()
void
Strip::notify_all()
{
// if (!_stripable) {
// zero ();
// return;
// }
#if 0
if (!_stripable) {
zero ();
return;
}
#endif
// The active V-pot control may not be active for this strip
// But if we zero it in the controls function it may erase
// the one we do want
// _surface->write (_vpot->zero());
#if 0
_surface->write (_vpot->zero());
#endif
notify_solo_changed ();
notify_mute_changed ();
@ -281,15 +285,19 @@ Strip::notify_all()
notify_vpot_change ();
notify_panner_width_changed ();
notify_record_enable_changed ();
// notify_processor_changed ();
#if 0
notify_processor_changed ();
#endif
}
void
Strip::notify_solo_changed ()
{
// if (_stripable && _solo) {
// _surface->write (_solo->set_state (_stripable->solo_control()->soloed() ? on : off));
// }
#if 0
if (_stripable && _solo) {
_surface->write (_solo->set_state (_stripable->solo_control()->soloed() ? on : off));
}
#endif
_solo->mark_dirty ();
_trickle_counter = 0;
@ -299,14 +307,16 @@ void
Strip::notify_mute_changed ()
{
DEBUG_TRACE (DEBUG::US2400, string_compose ("Strip %1 mute changed\n", _index));
// if (_stripable && _mute) {
// DEBUG_TRACE (DEBUG::US2400, string_compose ("\tstripable muted ? %1\n", _stripable->mute_control()->muted()));
// DEBUG_TRACE (DEBUG::US2400, string_compose ("mute message: %1\n", _mute->set_state (_stripable->mute_control()->muted() ? on : off)));
//
// _surface->write (_mute->set_state (_stripable->mute_control()->muted() ? on : off));
// } else {
// _surface->write (_mute->zero());
// }
#if 0
if (_stripable && _mute) {
DEBUG_TRACE (DEBUG::US2400, string_compose ("\tstripable muted ? %1\n", _stripable->mute_control()->muted()));
DEBUG_TRACE (DEBUG::US2400, string_compose ("mute message: %1\n", _mute->set_state (_stripable->mute_control()->muted() ? on : off)));
_surface->write (_mute->set_state (_stripable->mute_control()->muted() ? on : off));
} else {
_surface->write (_mute->zero());
}
#endif
_mute->mark_dirty ();
_trickle_counter = 0;
@ -346,10 +356,11 @@ Strip::update_selection_state ()
{
_select->mark_dirty ();
_trickle_counter = 0;
// if(_stripable) {
// _surface->write (_select->set_state (_stripable->is_selected()));
// }
#if 0
if(_stripable) {
_surface->write (_select->set_state (_stripable->is_selected()));
}
#endif
}
void

View file

@ -49,7 +49,6 @@ using namespace std;
ArdourDropdown::ArdourDropdown (Element e)
: _scrolling_disabled(false)
{
// signal_button_press_event().connect (sigc::mem_fun(*this, &ArdourDropdown::on_mouse_pressed));
_menu.signal_size_request().connect (sigc::mem_fun(*this, &ArdourDropdown::menu_size_request));
_menu.set_reserve_toggle_size(false);