Fixed mouse clipping bug when loading a new language.
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
* This code is called by the UI frontend modules, and, also,
|
||||
* depends on those same modules for lower-level functions.
|
||||
*
|
||||
* Version: @(#)ui_main.c 1.0.19 2018/10/16
|
||||
* Version: @(#)ui_main.c 1.0.20 2018/10/26
|
||||
*
|
||||
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
*
|
||||
@@ -346,8 +346,6 @@ main_reset_all(void)
|
||||
void
|
||||
ui_reset(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* Maybe the underlying (platform) UI has to rebuild. */
|
||||
ui_plat_reset();
|
||||
|
||||
@@ -358,9 +356,7 @@ ui_reset(void)
|
||||
ui_sb_reset();
|
||||
|
||||
/* Reset the mouse-capture message. */
|
||||
i = mouse_capture;
|
||||
mouse_capture = !mouse_capture;
|
||||
ui_mouse_capture(i);
|
||||
ui_mouse_capture(-1);
|
||||
}
|
||||
|
||||
|
||||
@@ -673,40 +669,33 @@ void
|
||||
ui_mouse_capture(int on)
|
||||
{
|
||||
const wchar_t *str = NULL;
|
||||
int state = mouse_capture;
|
||||
|
||||
/* Do not try to capture the mouse if no mouse configured. */
|
||||
if (mouse_type == MOUSE_NONE) return;
|
||||
|
||||
if ((on == 1) && !mouse_capture) {
|
||||
/* Disable the local cursor. */
|
||||
ui_show_cursor(0);
|
||||
state = 1;
|
||||
} else if (!on && mouse_capture) {
|
||||
state = 0;
|
||||
}
|
||||
|
||||
if (state != mouse_capture) {
|
||||
/* State changed. */
|
||||
plat_mouse_capture(state);
|
||||
ui_show_cursor(!state);
|
||||
mouse_capture = state;
|
||||
}
|
||||
|
||||
if (state) {
|
||||
if (mouse_get_buttons() > 2)
|
||||
str = get_string(IDS_MSG_MRLS_1);
|
||||
else
|
||||
str = get_string(IDS_MSG_MRLS_2);
|
||||
|
||||
/* Enable and clip the in-app mouse. */
|
||||
plat_mouse_capture(1);
|
||||
|
||||
/* We got the mouse. */
|
||||
mouse_capture = 1;
|
||||
} else if ((on == -1) || (!on && mouse_capture)) {
|
||||
/* Unclip the in-app mouse. */
|
||||
if (! on) {
|
||||
plat_mouse_capture(0);
|
||||
|
||||
/* Restore the local cursor. */
|
||||
ui_show_cursor(1);
|
||||
}
|
||||
|
||||
} else {
|
||||
str = get_string(IDS_MSG_CAPTURE);
|
||||
|
||||
/* We (no longer) have the mouse. */
|
||||
mouse_capture = 0;
|
||||
}
|
||||
|
||||
/* Set the correct message on the status bar. */
|
||||
if (str != NULL)
|
||||
ui_sb_text_set_w(SB_TEXT, str);
|
||||
ui_sb_text_set_w(SB_TEXT, str);
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* Implementation of the Settings dialog.
|
||||
*
|
||||
* Version: @(#)win_settings.c 1.0.37 2018/10/25
|
||||
* Version: @(#)win_settings.c 1.0.38 2018/10/26
|
||||
*
|
||||
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
* Miran Grca, <mgrca8@gmail.com>
|
||||
@@ -755,9 +755,12 @@ dlg_settings(int ask)
|
||||
int i;
|
||||
|
||||
#ifdef USE_MANAGER
|
||||
if (source_hwnd)
|
||||
if (source_hwnd) {
|
||||
pc_pause(1);
|
||||
|
||||
PostMessage((HWND) (uintptr_t) source_hwnd,
|
||||
WM_SEND_SSTATUS, (WPARAM)1, (LPARAM)hwndMain;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user