mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-14 19:19:18 +02:00
LCL, gtk2, Primitive implementation of InvalidateRgn, Normalize Rect before invalidating Rect
git-svn-id: trunk@40670 -
This commit is contained in:
parent
323e3534d0
commit
abc6f21f08
@ -6246,6 +6246,21 @@ begin
|
|||||||
Rect^.Top := 0;//PaintWidget^.Allocation.Y;
|
Rect^.Top := 0;//PaintWidget^.Allocation.Y;
|
||||||
Rect^.Right := PaintWidget^.Allocation.Width;
|
Rect^.Right := PaintWidget^.Allocation.Width;
|
||||||
Rect^.Bottom := PaintWidget^.Allocation.Height;
|
Rect^.Bottom := PaintWidget^.Allocation.Height;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
// normalize rect
|
||||||
|
r := Rect^;
|
||||||
|
if r.Left>r.Right then
|
||||||
|
begin
|
||||||
|
r.Left := r.Right;
|
||||||
|
r.Right := Rect^.Left;
|
||||||
|
end;
|
||||||
|
if r.Top>r.Bottom then
|
||||||
|
begin
|
||||||
|
r.Top := r.Bottom;
|
||||||
|
r.Bottom := Rect^.Top;
|
||||||
|
end;
|
||||||
|
Rect := @r;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
gdkRect.X := Rect^.Left;
|
gdkRect.X := Rect^.Left;
|
||||||
@ -6287,6 +6302,16 @@ begin
|
|||||||
GTKAPIWidget_InvalidateCaret(PGTKAPIWidget(Widget));
|
GTKAPIWidget_InvalidateCaret(PGTKAPIWidget(Widget));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TGtk2WidgetSet.InvalidateRgn(Handle: HWND; Rgn: HRGN; Erase: Boolean
|
||||||
|
): Boolean;
|
||||||
|
var
|
||||||
|
R: TRect;
|
||||||
|
begin
|
||||||
|
// TODO: use gdk_window_invalidate_region to implement this function
|
||||||
|
GetRgnBox(Rgn, @R);
|
||||||
|
InvalidateRect(Handle, @R, Erase);
|
||||||
|
end;
|
||||||
|
|
||||||
function TGtk2WidgetSet.IsIconic(handle: HWND): boolean;
|
function TGtk2WidgetSet.IsIconic(handle: HWND): boolean;
|
||||||
var
|
var
|
||||||
GtkWindow: PGtkWindow absolute handle;
|
GtkWindow: PGtkWindow absolute handle;
|
||||||
|
@ -157,6 +157,7 @@ function GetWindowSize(Handle : hwnd; var Width, Height: integer): boolean; over
|
|||||||
|
|
||||||
procedure InitializeCriticalSection(var CritSection: TCriticalSection); override;
|
procedure InitializeCriticalSection(var CritSection: TCriticalSection); override;
|
||||||
function InvalidateRect(aHandle : HWND; Rect : pRect; bErase : Boolean) : Boolean; override;
|
function InvalidateRect(aHandle : HWND; Rect : pRect; bErase : Boolean) : Boolean; override;
|
||||||
|
function InvalidateRgn(Handle: HWND; Rgn: HRGN; Erase: Boolean): Boolean; override;
|
||||||
function IsIconic(handle: HWND): boolean; override;
|
function IsIconic(handle: HWND): boolean; override;
|
||||||
function IsWindow(handle: HWND): boolean; override;
|
function IsWindow(handle: HWND): boolean; override;
|
||||||
function IsWindowEnabled(handle: HWND): boolean; override;
|
function IsWindowEnabled(handle: HWND): boolean; override;
|
||||||
|
Loading…
Reference in New Issue
Block a user