mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-07-01 13:50:36 +00:00
Improved focus detection behavior (Windows-only).
Menus are closed when the IDE loses focus.
This commit is contained in:
parent
83c1afdb52
commit
18a43777e7
|
@ -1313,7 +1313,14 @@ FUNCTION ide2 (ignore)
|
||||||
idealthighlight = 0
|
idealthighlight = 0
|
||||||
LOCATE , , 0: COLOR 0, 7: LOCATE 1, 1: PRINT menubar$;
|
LOCATE , , 0: COLOR 0, 7: LOCATE 1, 1: PRINT menubar$;
|
||||||
IF ideentermenu = 1 AND KCONTROL = 0 THEN 'alt was pressed then released
|
IF ideentermenu = 1 AND KCONTROL = 0 THEN 'alt was pressed then released
|
||||||
LOCATE , , , 8, 8: skipdisplay = 0: ideentermenu = 0: GOTO startmenu
|
IF _WINDOWHASFOCUS THEN
|
||||||
|
LOCATE , , , IDENormalCursorStart, IDENormalCursorEnd
|
||||||
|
skipdisplay = 0
|
||||||
|
ideentermenu = 0
|
||||||
|
GOTO startmenu
|
||||||
|
ELSE
|
||||||
|
GOTO ideloop
|
||||||
|
END IF
|
||||||
END IF
|
END IF
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -3854,7 +3861,16 @@ FUNCTION ide2 (ignore)
|
||||||
IF KALT THEN altheld = 1 ELSE altheld = 0
|
IF KALT THEN altheld = 1 ELSE altheld = 0
|
||||||
|
|
||||||
IF altheld <> 0 AND lastaltheld = 0 THEN
|
IF altheld <> 0 AND lastaltheld = 0 THEN
|
||||||
DO: _LIMIT 1000: GetInput: LOOP UNTIL KALT = 0
|
DO
|
||||||
|
_LIMIT 1000
|
||||||
|
GetInput
|
||||||
|
IF _WINDOWHASFOCUS = 0 THEN
|
||||||
|
KALT = 0
|
||||||
|
LOCATE 1, 1: COLOR 0, 7: PRINT menubar$;
|
||||||
|
SCREEN , , 3, 0: PCOPY 3, 0
|
||||||
|
GOTO ideloop
|
||||||
|
END IF
|
||||||
|
LOOP UNTIL KALT = 0
|
||||||
KB = KEY_ESC
|
KB = KEY_ESC
|
||||||
END IF
|
END IF
|
||||||
|
|
||||||
|
@ -4015,11 +4031,26 @@ FUNCTION ide2 (ignore)
|
||||||
IF mB THEN change = 1
|
IF mB THEN change = 1
|
||||||
'revert to previous menuwhen alt pressed again
|
'revert to previous menuwhen alt pressed again
|
||||||
IF altheld <> 0 AND lastaltheld = 0 THEN
|
IF altheld <> 0 AND lastaltheld = 0 THEN
|
||||||
DO: _LIMIT 1000: GetInput: LOOP UNTIL KALT = 0 'wait till alt is released
|
DO
|
||||||
|
_LIMIT 1000
|
||||||
|
GetInput
|
||||||
|
IF _WINDOWHASFOCUS = 0 THEN
|
||||||
|
KALT = 0
|
||||||
|
LOCATE 1, 1: COLOR 0, 7: PRINT menubar$;
|
||||||
|
PCOPY 3, 0: SCREEN , , 3, 0
|
||||||
|
GOTO ideloop
|
||||||
|
END IF
|
||||||
|
LOOP UNTIL KALT = 0 'wait till alt is released
|
||||||
PCOPY 3, 0: SCREEN , , 3, 0
|
PCOPY 3, 0: SCREEN , , 3, 0
|
||||||
GOTO startmenu2
|
GOTO startmenu2
|
||||||
END IF
|
END IF
|
||||||
IF _EXIT THEN ideexit = 1: GOTO ideloop
|
IF _EXIT THEN ideexit = 1: GOTO ideloop
|
||||||
|
IF _WINDOWHASFOCUS = 0 THEN
|
||||||
|
KALT = 0
|
||||||
|
LOCATE 1, 1: COLOR 0, 7: PRINT menubar$;
|
||||||
|
PCOPY 3, 0: SCREEN , , 3, 0
|
||||||
|
GOTO ideloop
|
||||||
|
END IF
|
||||||
_LIMIT 100
|
_LIMIT 100
|
||||||
LOOP UNTIL change
|
LOOP UNTIL change
|
||||||
|
|
||||||
|
@ -12636,10 +12667,6 @@ SUB GetInput
|
||||||
END IF
|
END IF
|
||||||
'End of Edit
|
'End of Edit
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
IF k THEN
|
IF k THEN
|
||||||
IF k < 0 THEN k = -k: release = 1
|
IF k < 0 THEN k = -k: release = 1
|
||||||
'modifiers
|
'modifiers
|
||||||
|
|
Loading…
Reference in a new issue