lyx_mirror/src/update_flags.h
Kornel Benko f8f86a1a81 Next runtime messages to be ommitted if compiled with clang using flag '-fsanitize'.
Prevent the return of impossible values for 'enum flags'.
For instance the result of '~Update::Force' at src/BufferView.cpp:3025 without this patch
is '4294967293'.
2022-01-23 20:13:26 +01:00

56 lines
1.2 KiB
C++

// -*- C++ -*-
/**
* \file update_flags.h
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author The Denmark Cowboys
*
* Full author contact details are available in file CREDITS.
*/
#ifndef UPDATE_FLAGS_H
#define UPDATE_FLAGS_H
namespace lyx {
namespace Update {
enum flags {
/// No screen update is needed.
None = 0,
/// Recenter the screen around the cursor if is found outside the
/// visible area.
FitCursor = 1,
/// Force a full screen metrics update and a full draw.
Force = 2,
/// Force a full redraw (but no metrics computations)
ForceDraw = 4,
/// Try to rebreak only the current paragraph metrics.
SinglePar = 8,
/// Only the inset decorations need to be redrawn, no text metrics
/// update is needed.
Decoration = 16,
/// Force metrics and redraw for all buffers.
ForceAll = 32
};
inline flags operator|(flags const f, flags const g)
{
return static_cast<flags>(int(f) | int(g));
}
inline flags operator&(flags const f, flags const g)
{
return static_cast<flags>(int(f) & int(g));
}
inline flags operator~(flags const f)
{
return static_cast<flags>(~int(f) & 0x3f);
}
} // namespace Update
} // namespace lyx
#endif