mirror of
https://github.com/clangen/musikcube.git
synced 2024-10-02 04:52:32 +00:00
Ensure old focus is cleared when showing an overlay.
This commit is contained in:
parent
a4dd717c37
commit
6a742b950e
3
src/3rdparty/win32_include/curses.h
vendored
3
src/3rdparty/win32_include/curses.h
vendored
@ -1789,7 +1789,8 @@ PDCEX int PDC_set_function_key( const unsigned function,
|
||||
const int new_key);
|
||||
|
||||
PDCEX int PDC_set_preferred_fontface( const wchar_t* fontface);
|
||||
PDCEX void PDC_set_default_menu_visibility(int visible);
|
||||
PDCEX void PDC_set_default_menu_visibility( int visible);
|
||||
PDCEX void PDC_set_color_intensify_enabled( bool enabled);
|
||||
PDCEX WINDOW *Xinitscr(int, char **);
|
||||
|
||||
#ifdef XCURSES
|
||||
|
9
src/3rdparty/win32_src/pdcurses/pdcdisp.c
vendored
9
src/3rdparty/win32_src/pdcurses/pdcdisp.c
vendored
@ -356,8 +356,17 @@ int PDC_choose_a_new_font( void)
|
||||
/* This should lead to proper handling of bold text in legacy */
|
||||
/* apps, where "bold" means "high intensity". */
|
||||
|
||||
static bool enable_color_intensification = TRUE;
|
||||
void PDC_set_color_intensify_enabled(bool enabled) {
|
||||
enable_color_intensification = enabled;
|
||||
}
|
||||
|
||||
static COLORREF intensified_color( COLORREF ival)
|
||||
{
|
||||
if ( !enable_color_intensification) {
|
||||
return ival;
|
||||
}
|
||||
|
||||
int rgb, i;
|
||||
COLORREF oval = 0;
|
||||
|
||||
|
@ -133,6 +133,7 @@ void App::InitCurses() {
|
||||
PDC_set_function_key(FUNCTION_KEY_SHUT_DOWN, 4);
|
||||
PDC_set_default_menu_visibility(0);
|
||||
PDC_set_title(this->appTitle.c_str());
|
||||
PDC_set_color_intensify_enabled(false);
|
||||
#endif
|
||||
|
||||
initscr();
|
||||
|
@ -46,7 +46,9 @@ using namespace cursespp;
|
||||
DialogOverlay::DialogOverlay() {
|
||||
this->SetFrameVisible(true);
|
||||
this->SetFrameColor(Color::OverlayFrame);
|
||||
this->SetFocusedFrameColor(Color::OverlayFrame);
|
||||
this->SetContentColor(Color::OverlayContent);
|
||||
this->SetFocusedContentColor(Color::OverlayContent);
|
||||
|
||||
this->width = this->height = 0;
|
||||
this->autoDismiss = true;
|
||||
|
@ -56,7 +56,9 @@ ToastOverlay::ToastOverlay(const std::string& text, long durationMs) {
|
||||
this->ticking = false;
|
||||
this->SetFrameVisible(true);
|
||||
this->SetFrameColor(Color::OverlayFrame);
|
||||
this->SetFocusedFrameColor(Color::OverlayFrame);
|
||||
this->SetContentColor(Color::OverlayContent);
|
||||
this->SetFocusedContentColor(Color::OverlayContent);
|
||||
}
|
||||
|
||||
ToastOverlay::~ToastOverlay() {
|
||||
|
@ -74,6 +74,15 @@ namespace cursespp {
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual IWindowPtr FocusFirst() override {
|
||||
auto focus = LayoutBase::FocusFirst();
|
||||
if (!focus) {
|
||||
focus = shared_from_this();
|
||||
this->Focus();
|
||||
}
|
||||
return focus;
|
||||
}
|
||||
|
||||
protected:
|
||||
static void style(TextLabel& label) {
|
||||
label.SetContentColor(Color::OverlayContent);
|
||||
|
Loading…
Reference in New Issue
Block a user