mirror of
https://github.com/moparisthebest/Simba
synced 2025-02-17 07:40:11 -05:00
MML/Core: Clean up os_linux.
This commit is contained in:
parent
da0de6e4b9
commit
880072d723
@ -23,6 +23,12 @@
|
|||||||
{$mode objfpc}{$H+}
|
{$mode objfpc}{$H+}
|
||||||
unit os_linux;
|
unit os_linux;
|
||||||
|
|
||||||
|
{
|
||||||
|
TODO's:
|
||||||
|
- Allow selecting a different X display
|
||||||
|
- Fix keyboard layout / SendString
|
||||||
|
}
|
||||||
|
|
||||||
interface
|
interface
|
||||||
|
|
||||||
uses
|
uses
|
||||||
@ -126,7 +132,7 @@ implementation
|
|||||||
{
|
{
|
||||||
This is extremely hacky, but also very useful.
|
This is extremely hacky, but also very useful.
|
||||||
We have to install a X error handler, because otherwise X
|
We have to install a X error handler, because otherwise X
|
||||||
will terminate out entire app on error.
|
will terminate our entire app on error.
|
||||||
|
|
||||||
Since we want the right thread to recieve the right error, we have to
|
Since we want the right thread to recieve the right error, we have to
|
||||||
fiddle a bit with threadvars, mutexes / semaphores.
|
fiddle a bit with threadvars, mutexes / semaphores.
|
||||||
@ -413,12 +419,13 @@ implementation
|
|||||||
result := xmask and ButtonP > 0;
|
result := xmask and ButtonP > 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TWindow.SendString(str: string);
|
{ TODO: Check if this supports multiple keyboard layouts, probably not }
|
||||||
var
|
procedure TWindow.SendString(str: string);
|
||||||
|
var
|
||||||
I, L: Integer;
|
I, L: Integer;
|
||||||
K: Byte;
|
K: Byte;
|
||||||
HoldShift: Boolean;
|
HoldShift: Boolean;
|
||||||
begin
|
begin
|
||||||
HoldShift := False;
|
HoldShift := False;
|
||||||
L := Length(str);
|
L := Length(str);
|
||||||
for I := 1 to L do
|
for I := 1 to L do
|
||||||
@ -446,7 +453,7 @@ begin
|
|||||||
ReleaseKey(VK_SHIFT);
|
ReleaseKey(VK_SHIFT);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TWindow.HoldKey(key: integer);
|
procedure TWindow.HoldKey(key: integer);
|
||||||
begin
|
begin
|
||||||
|
Loading…
Reference in New Issue
Block a user