Stop terminal updates during processCloseWidget() is working
This commit is contained in:
parent
11a7aad0ee
commit
2b40854e2f
|
@ -1,3 +1,6 @@
|
|||
2016-07-06 Markus Gans <guru.mail@muenster.de>
|
||||
* Stop terminal updates during processCloseWidget() is working
|
||||
|
||||
2016-07-03 Markus Gans <guru.mail@muenster.de>
|
||||
* Add the new class FDialogListMenu to switch between dialog menus
|
||||
* More consistent method names:
|
||||
|
|
|
@ -1244,6 +1244,7 @@ void FApplication::processTerminalUpdate()
|
|||
//----------------------------------------------------------------------
|
||||
void FApplication::processCloseWidget()
|
||||
{
|
||||
updateTerminal(false);
|
||||
if ( close_widget && ! close_widget->empty() )
|
||||
{
|
||||
widgetList::iterator iter;
|
||||
|
@ -1256,6 +1257,7 @@ void FApplication::processCloseWidget()
|
|||
}
|
||||
close_widget->clear();
|
||||
}
|
||||
updateTerminal(true);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
|
|
@ -64,6 +64,7 @@ bool FTerm::linux_terminal;
|
|||
bool FTerm::screen_terminal;
|
||||
bool FTerm::tmux_terminal;
|
||||
bool FTerm::terminal_updates;
|
||||
bool FTerm::stop_terminal_updates;
|
||||
bool FTerm::vterm_updates;
|
||||
bool FTerm::pc_charset_console;
|
||||
bool FTerm::utf8_input;
|
||||
|
@ -129,14 +130,14 @@ FTerm::FTerm()
|
|||
{
|
||||
term_initialized = true;
|
||||
term_object = this;
|
||||
fd_tty = -1;
|
||||
vterm = 0;
|
||||
vdesktop = 0;
|
||||
vmenubar = 0;
|
||||
vstatusbar = 0;
|
||||
last_area = 0;
|
||||
x_term_pos = -1;
|
||||
y_term_pos = -1;
|
||||
fd_tty = -1;
|
||||
vterm = 0;
|
||||
vdesktop = 0;
|
||||
vmenubar = 0;
|
||||
vstatusbar = 0;
|
||||
last_area = 0;
|
||||
x_term_pos = -1;
|
||||
y_term_pos = -1;
|
||||
|
||||
opti_move = new FOptiMove();
|
||||
opti_attr = new FOptiAttr();
|
||||
|
@ -1598,6 +1599,7 @@ void FTerm::init()
|
|||
mintty_terminal = \
|
||||
screen_terminal = \
|
||||
tmux_terminal = \
|
||||
stop_terminal_updates = \
|
||||
background_color_erase = false;
|
||||
|
||||
// term_attribute stores the current state of the terminal
|
||||
|
@ -2996,7 +2998,8 @@ void FTerm::updateTerminal()
|
|||
FApplication* fapp;
|
||||
int term_width, term_height;
|
||||
|
||||
if ( static_cast<FApplication*>(term_object)->isQuit() )
|
||||
if ( stop_terminal_updates
|
||||
|| static_cast<FApplication*>(term_object)->isQuit() )
|
||||
return;
|
||||
|
||||
if ( ! force_terminal_update )
|
||||
|
@ -3078,6 +3081,14 @@ void FTerm::updateTerminal()
|
|||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FTerm::updateTerminal (bool on)
|
||||
{
|
||||
stop_terminal_updates = bool(! on);
|
||||
if ( on )
|
||||
updateTerminal();
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
void FTerm::setKDECursor (fc::kde_konsole_CursorShape style)
|
||||
{
|
||||
|
|
|
@ -137,6 +137,7 @@ class FTerm
|
|||
static bool screen_terminal;
|
||||
static bool tmux_terminal;
|
||||
static bool terminal_updates;
|
||||
static bool stop_terminal_updates;
|
||||
static bool vterm_updates;
|
||||
static bool background_color_erase;
|
||||
static bool automatic_left_margin;
|
||||
|
@ -312,6 +313,7 @@ class FTerm
|
|||
static void resizeVTerm();
|
||||
static void putVTerm();
|
||||
static void updateTerminal();
|
||||
static void updateTerminal (bool);
|
||||
static void setKDECursor (fc::kde_konsole_CursorShape);
|
||||
static FString getXTermFont();
|
||||
static FString getXTermTitle();
|
||||
|
|
Loading…
Reference in New Issue