mirror of
https://github.com/SpartanJ/eepp.git
synced 2026-05-29 17:46:29 +03:00
Raise and restore window when loaded file in single-instance.
Added select-single-line command.
This commit is contained in:
@@ -327,6 +327,8 @@ class EE_API TextDocument {
|
||||
|
||||
void selectLine();
|
||||
|
||||
void selectSingleLine();
|
||||
|
||||
void selectToNextWord();
|
||||
|
||||
void selectToPreviousLine();
|
||||
|
||||
@@ -193,12 +193,18 @@ class EE_API Window {
|
||||
/** @return true if the window is maximized */
|
||||
virtual bool isMaximized();
|
||||
|
||||
/** @return true if the window is minimized */
|
||||
virtual bool isMinimized();
|
||||
|
||||
/** This will attempt to hide the window */
|
||||
virtual void hide();
|
||||
|
||||
/** This will attempt to raise the window */
|
||||
virtual void raise();
|
||||
|
||||
/** This will attempt to restore the window */
|
||||
virtual void restore();
|
||||
|
||||
/** Request a window to demand attention from the user. */
|
||||
virtual void flash( WindowFlashOperation op );
|
||||
|
||||
|
||||
@@ -2031,6 +2031,16 @@ void TextDocument::selectLine() {
|
||||
mergeSelection();
|
||||
}
|
||||
|
||||
void TextDocument::selectSingleLine() {
|
||||
for ( size_t i = 0; i < mSelection.size(); ++i ) {
|
||||
auto sel = getSelectionIndex( i );
|
||||
setSelection( i, { { sel.start().line(), 0 },
|
||||
{ sel.start().line(),
|
||||
eemax( (Int64)line( sel.start().line() ).size() - 1, (Int64)0 ) } } );
|
||||
}
|
||||
mergeSelection();
|
||||
}
|
||||
|
||||
void TextDocument::selectToPreviousLine() {
|
||||
for ( size_t i = 0; i < mSelection.size(); ++i ) {
|
||||
TextPosition pos = getSelectionIndex( i ).start();
|
||||
@@ -3520,6 +3530,7 @@ void TextDocument::initializeCommands() {
|
||||
mCommands["select-word"] = [this] { selectWord(); };
|
||||
mCommands["select-all-words"] = [this] { selectAllWords(); };
|
||||
mCommands["select-line"] = [this] { selectLine(); };
|
||||
mCommands["select-single-line"] = [this] { selectSingleLine(); };
|
||||
mCommands["select-to-start-of-line"] = [this] { selectToStartOfLine(); };
|
||||
mCommands["select-to-end-of-line"] = [this] { selectToEndOfLine(); };
|
||||
mCommands["select-to-start-of-doc"] = [this] { selectToStartOfDoc(); };
|
||||
|
||||
@@ -777,6 +777,10 @@ bool WindowSDL::isMaximized() {
|
||||
return SDL_GetWindowFlags( mSDLWindow ) & SDL_WINDOW_MAXIMIZED;
|
||||
}
|
||||
|
||||
bool WindowSDL::isMinimized() {
|
||||
return SDL_GetWindowFlags( mSDLWindow ) & SDL_WINDOW_MINIMIZED;
|
||||
}
|
||||
|
||||
void WindowSDL::hide() {
|
||||
SDL_HideWindow( mSDLWindow );
|
||||
}
|
||||
@@ -785,6 +789,10 @@ void WindowSDL::raise() {
|
||||
SDL_RaiseWindow( mSDLWindow );
|
||||
}
|
||||
|
||||
void WindowSDL::restore() {
|
||||
SDL_RestoreWindow( mSDLWindow );
|
||||
}
|
||||
|
||||
void WindowSDL::flash( WindowFlashOperation op ) {
|
||||
#if EE_PLATFORM != EE_PLATFORM_EMSCRIPTEN
|
||||
#if SDL_VERSION_ATLEAST( 2, 0, 16 )
|
||||
|
||||
@@ -63,10 +63,14 @@ class EE_API WindowSDL : public Window {
|
||||
|
||||
virtual bool isMaximized();
|
||||
|
||||
virtual bool isMinimized();
|
||||
|
||||
virtual void hide();
|
||||
|
||||
virtual void raise();
|
||||
|
||||
virtual void restore();
|
||||
|
||||
virtual void flash( WindowFlashOperation op );
|
||||
|
||||
virtual void show();
|
||||
|
||||
@@ -534,10 +534,16 @@ bool Window::isMaximized() {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Window::isMinimized() {
|
||||
return false;
|
||||
}
|
||||
|
||||
void Window::hide() {}
|
||||
|
||||
void Window::raise() {}
|
||||
|
||||
void Window::restore() {}
|
||||
|
||||
void Window::flash( WindowFlashOperation ) {}
|
||||
|
||||
void Window::show() {}
|
||||
|
||||
@@ -3560,8 +3560,11 @@ void App::init( const LogLevel& logLevel, std::string file, const Float& pidelDe
|
||||
loadFileFromPathOrFocus( path, true, nullptr,
|
||||
getForcePositionFn( initialPosition ) );
|
||||
} );
|
||||
if ( !mWindow->hasFocus() )
|
||||
if ( !mWindow->hasFocus() ) {
|
||||
if ( mWindow->isMinimized() )
|
||||
mWindow->restore();
|
||||
mWindow->raise();
|
||||
}
|
||||
}
|
||||
FileSystem::fileRemove( fi.getFilepath() );
|
||||
} );
|
||||
|
||||
Reference in New Issue
Block a user