Skip to content

Commit 4bc90fb

Browse files
committed
fix: query tab closed by mouse-down on X-button plus mouse-up somewhere else
Closes #2274
1 parent 971d56b commit 4bc90fb

File tree

1 file changed

+3
-18
lines changed

1 file changed

+3
-18
lines changed

source/main.pas

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1008,8 +1008,7 @@ TMainForm = class(TExtForm)
10081008
procedure actCloseQueryTabExecute(Sender: TObject);
10091009
procedure menuCloseQueryTabClick(Sender: TObject);
10101010
procedure CloseQueryTab(PageIndex: Integer);
1011-
procedure CloseButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
1012-
procedure CloseButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
1011+
procedure CloseButtonOnClick(Sender: TObject);
10131012
function GetMainTabAt(X, Y: Integer): Integer;
10141013
procedure FixQueryTabCloseButtons;
10151014
function GetOrCreateEmptyQueryTab(DoFocus: Boolean): TQueryTab;
@@ -12537,8 +12536,7 @@ procedure TMainForm.actNewQueryTabExecute(Sender: TObject);
1253712536
QueryTab.CloseButton.Height := 16;
1253812537
QueryTab.CloseButton.Flat := True;
1253912538
VirtualImageListMain.GetBitmap(134, QueryTab.CloseButton.Glyph);
12540-
QueryTab.CloseButton.OnMouseDown := CloseButtonOnMouseDown;
12541-
QueryTab.CloseButton.OnMouseUp := CloseButtonOnMouseUp;
12539+
QueryTab.CloseButton.OnClick := CloseButtonOnClick;
1254212540
SetTabCaption(QueryTab.TabSheet.PageIndex, '');
1254312541

1254412542
// Dumb code which replicates all controls from tabQuery
@@ -13083,22 +13081,9 @@ procedure TMainForm.editDatabaseTableFilterExit(Sender: TObject);
1308313081
end;
1308413082

1308513083

13086-
procedure TMainForm.CloseButtonOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
13084+
procedure TMainForm.CloseButtonOnClick(Sender: TObject);
1308713085
begin
1308813086
FLastMouseDownCloseButton := Sender;
13089-
end;
13090-
13091-
13092-
procedure TMainForm.CloseButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
13093-
begin
13094-
// Click on "Close" button of Query tab
13095-
if Button <> mbLeft then
13096-
Exit;
13097-
// Between MousDown and MouseUp it is possible that the focused tab has switched. As we simulate a mouse-click
13098-
// here, we must check if also the MouseDown event was fired on this particular button. See issue #1469.
13099-
if (Sender <> FLastMouseDownCloseButton) then
13100-
Exit;
13101-
// Prevent EAccessViolation in TControl.GetClientWidth, see issue #1640
1310213087
TimerCloseTabByButton.Enabled := True;
1310313088
end;
1310413089

0 commit comments

Comments
 (0)