mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-18 23:39:40 +02:00
IDE: unselect all component palette buttons in mouse up handler. Patch from Max Vlasov, issue #19657
git-svn-id: trunk@31688 -
This commit is contained in:
parent
0aca30545d
commit
a3f3aa5439
@ -80,8 +80,11 @@ type
|
|||||||
procedure SelectionToolClick(Sender: TObject);
|
procedure SelectionToolClick(Sender: TObject);
|
||||||
procedure ComponentBtnMouseDown(Sender: TObject; Button: TMouseButton;
|
procedure ComponentBtnMouseDown(Sender: TObject; Button: TMouseButton;
|
||||||
Shift: TShiftState; X, Y: Integer);
|
Shift: TShiftState; X, Y: Integer);
|
||||||
|
procedure ComponentBtnMouseUp(Sender: TObject; Button: TMouseButton;
|
||||||
|
Shift: TShiftState; X, Y: Integer);
|
||||||
procedure ComponentBtnDblClick(Sender: TObject);
|
procedure ComponentBtnDblClick(Sender: TObject);
|
||||||
procedure CreatePopupMenu;
|
procedure CreatePopupMenu;
|
||||||
|
procedure UnselectAllButtons;
|
||||||
protected
|
protected
|
||||||
procedure DoBeginUpdate; override;
|
procedure DoBeginUpdate; override;
|
||||||
procedure DoEndUpdate(Changed: boolean); override;
|
procedure DoEndUpdate(Changed: boolean); override;
|
||||||
@ -259,6 +262,16 @@ begin
|
|||||||
SelectButton(TComponent(Sender));
|
SelectButton(TComponent(Sender));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TComponentPalette.ComponentBtnMouseUp(Sender: TObject; Button: TMouseButton;
|
||||||
|
Shift: TShiftState; X, Y: Integer);
|
||||||
|
begin
|
||||||
|
{ If the visual state is down, but internal "no selection" then
|
||||||
|
just do visual unselection of all buttons
|
||||||
|
This trick is for double-click handling (to unselect the button visually ). }
|
||||||
|
if ((Sender as TCustomSpeedButton).Down) and (Selected = Nil) then
|
||||||
|
UnselectAllButtons;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TComponentPalette.ComponentBtnDblClick(Sender: TObject);
|
procedure TComponentPalette.ComponentBtnDblClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
TypeClass: TComponentClass;
|
TypeClass: TComponentClass;
|
||||||
@ -294,11 +307,23 @@ begin
|
|||||||
Selected:=nil;
|
Selected:=nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TComponentPalette.SetSelected(const AValue: TRegisteredComponent);
|
// unselect all other buttons on all other PageControl pages
|
||||||
|
procedure TComponentPalette.UnselectAllButtons;
|
||||||
var
|
var
|
||||||
SelectButtonOnPage: TSpeedButton;
|
|
||||||
CurPage: TBaseComponentPage;
|
|
||||||
i: Integer;
|
i: Integer;
|
||||||
|
CurPage: TBaseComponentPage;
|
||||||
|
SelectButtonOnPage: TSpeedButton;
|
||||||
|
begin
|
||||||
|
for i:=0 to Count-1 do begin
|
||||||
|
CurPage:=Pages[i];
|
||||||
|
if (FSelected=nil) or (FSelected.Page<>CurPage) then begin
|
||||||
|
SelectButtonOnPage:=TSpeedButton(CurPage.SelectButton);
|
||||||
|
if SelectButtonOnPage<>nil then SelectButtonOnPage.Down:=true;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TComponentPalette.SetSelected(const AValue: TRegisteredComponent);
|
||||||
begin
|
begin
|
||||||
if FSelected=AValue then exit;
|
if FSelected=AValue then exit;
|
||||||
FSelected:=AValue;
|
FSelected:=AValue;
|
||||||
@ -309,14 +334,7 @@ begin
|
|||||||
FSelected:=nil;
|
FSelected:=nil;
|
||||||
end;
|
end;
|
||||||
if FPageControl=nil then exit;
|
if FPageControl=nil then exit;
|
||||||
// unselect all other buttons on all other PageControl pages
|
UnselectAllButtons;
|
||||||
for i:=0 to Count-1 do begin
|
|
||||||
CurPage:=Pages[i];
|
|
||||||
if (FSelected=nil) or (FSelected.Page<>CurPage) then begin
|
|
||||||
SelectButtonOnPage:=TSpeedButton(CurPage.SelectButton);
|
|
||||||
if SelectButtonOnPage<>nil then SelectButtonOnPage.Down:=true;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
// select button
|
// select button
|
||||||
if (FSelected<>nil) and (FPageControl<>nil) then begin
|
if (FSelected<>nil) and (FPageControl<>nil) then begin
|
||||||
TSpeedButton(FSelected.Button).Down:=true;
|
TSpeedButton(FSelected.Button).Down:=true;
|
||||||
@ -677,6 +695,7 @@ begin
|
|||||||
GroupIndex := 1;
|
GroupIndex := 1;
|
||||||
Flat := true;
|
Flat := true;
|
||||||
OnMouseDown:= @ComponentBtnMouseDown;
|
OnMouseDown:= @ComponentBtnMouseDown;
|
||||||
|
OnMouseUp:=@ComponentBtnMouseUp;
|
||||||
OnDblClick := @ComponentBtnDblClick;
|
OnDblClick := @ComponentBtnDblClick;
|
||||||
ShowHint := true;
|
ShowHint := true;
|
||||||
Hint := CurComponent.ComponentClass.ClassName;
|
Hint := CurComponent.ComponentClass.ClassName;
|
||||||
|
Loading…
Reference in New Issue
Block a user