gtk: cleanup, formatting

git-svn-id: trunk@20098 -
This commit is contained in:
paul 2009-05-21 09:01:38 +00:00
parent 69156f088b
commit a3283dde56
3 changed files with 36 additions and 61 deletions

View File

@ -1678,39 +1678,31 @@ var
begin begin
MessI.Msg := MsgUp; MessI.Msg := MsgUp;
LastMouse.Down := False; LastMouse.Down := False;
Result:=true; Result := True;
end; end;
begin begin
Result:=false; Result := False;
if (Widget=nil) then ; MappedXY := TranslateGdkPointToClientArea(Event^.Window,
MappedXY:=TranslateGdkPointToClientArea(Event^.Window, Point(TruncToInt(Event^.X), TruncToInt(Event^.Y)),
Point(TruncToInt(Event^.X),TruncToInt(Event^.Y)),
PGtkWidget(AWinControl.Handle)); PGtkWidget(AWinControl.Handle));
//DebugLn(['DeliverMouseUpMessage ',GetWidgetDebugReport(Widget),' ',dbgsName(AWinControl),' ',dbgs(MappedXY)]); //DebugLn(['DeliverMouseUpMessage ',GetWidgetDebugReport(Widget),' ',dbgsName(AWinControl),' ',dbgs(MappedXY)]);
case event^.Button of case event^.Button of
1: if not CheckMouseButtonUp(LastLeft, LM_LBUTTONUP) then Exit;
1: if not CheckMouseButtonUp(LastLeft, LM_LBUTTONUP) 2: if not CheckMouseButtonUp(LastMiddle, LM_MBUTTONUP) then Exit;
then exit; 3: if not CheckMouseButtonUp(LastRight, LM_RBUTTONUP) then exit;
2: if not CheckMouseButtonUp(LastMiddle, LM_MBUTTONUP)
then exit;
3: if not CheckMouseButtonUp(LastRight, LM_RBUTTONUP)
then exit;
else else
begin begin
MessI.Msg := LM_NULL; MessI.Msg := LM_NULL;
exit; Exit;
end; end;
end; // case end; // case
MessI.XPos := MappedXY.X; MessI.XPos := MappedXY.X;
MessI.YPos := MappedXY.Y; MessI.YPos := MappedXY.Y;
ShiftState := gtkeventstateToshiftstate(Event^.State); ShiftState := GTKEventStateToShiftState(Event^.State);
MessI.Keys := 0; MessI.Keys := 0;
if ssShift in ShiftState then MessI.Keys := MessI.Keys or MK_SHIFT; if ssShift in ShiftState then MessI.Keys := MessI.Keys or MK_SHIFT;
if ssCtrl in ShiftState then MessI.Keys := MessI.Keys or MK_CONTROL; if ssCtrl in ShiftState then MessI.Keys := MessI.Keys or MK_CONTROL;
@ -1718,18 +1710,20 @@ begin
if ssRight in ShiftState then MessI.Keys := MessI.Keys or MK_RBUTTON; if ssRight in ShiftState then MessI.Keys := MessI.Keys or MK_RBUTTON;
if ssMiddle in ShiftState then MessI.Keys := MessI.Keys or MK_MBUTTON; if ssMiddle in ShiftState then MessI.Keys := MessI.Keys or MK_MBUTTON;
if MessI.Msg <> LM_NULL then begin if MessI.Msg <> LM_NULL then
begin
// send the message directly to the LCL // send the message directly to the LCL
// (Posting the message via queue // (Posting the message via queue
// has the risk of getting out of sync with the gtk) // has the risk of getting out of sync with the gtk)
MessI.Result := 0; MessI.Result := 0;
NotifyApplicationUserInput(MessI.Msg); NotifyApplicationUserInput(MessI.Msg);
DeliverMessage(AWinControl, MessI); DeliverMessage(AWinControl, MessI);
if MessI.Result<>0 then begin if MessI.Result <> 0 then
begin
// handled by the LCL // handled by the LCL
//DebugLn(['DeliverMouseUpMessage msg was handled by the LCL, Stopping signal ...']); //DebugLn(['DeliverMouseUpMessage msg was handled by the LCL, Stopping signal ...']);
g_signal_stop_emission_by_name(PGTKObject(Widget),'button-release-event'); g_signal_stop_emission_by_name(PGTKObject(Widget), 'button-release-event');
Result:=true; Result := True;
end; end;
end; end;
end; end;
@ -1747,7 +1741,7 @@ var
DesignOnlySignal: boolean; DesignOnlySignal: boolean;
begin begin
Result := CallBackDefaultReturn; Result := CallBackDefaultReturn;
MousePositionValid:=false; MousePositionValid := False;
{$IFDEF VerboseMouseBugfix} {$IFDEF VerboseMouseBugfix}
DesignOnlySignal:=GetDesignOnlySignalFlag(Widget,dstMouseRelease); DesignOnlySignal:=GetDesignOnlySignalFlag(Widget,dstMouseRelease);
@ -1765,25 +1759,24 @@ begin
ResetDefaultIMContext; ResetDefaultIMContext;
UpdateMouseCaptureControl; UpdateMouseCaptureControl;
if not (csDesigning in TComponent(Data).ComponentState) then begin if not (csDesigning in TComponent(Data).ComponentState) then
DesignOnlySignal:=GetDesignOnlySignalFlag(Widget,dstMouseRelease); begin
DesignOnlySignal := GetDesignOnlySignalFlag(Widget, dstMouseRelease);
ReleaseMouseCapture; ReleaseMouseCapture;
if DesignOnlySignal or (not ControlGetsMouseUpBefore(TControl(Data))) then if DesignOnlySignal or (not ControlGetsMouseUpBefore(TControl(Data))) then
begin Exit;
exit; end else
end; begin
end else begin
// stop the signal, so that the widget does not auto react // stop the signal, so that the widget does not auto react
if (not (TControl(Data) is TCustomNoteBook)) if (not (TControl(Data) is TCustomNoteBook)) and
and (not (TControl(Data) is TCustomTabControl)) (not (TControl(Data) is TCustomTabControl))
then begin then begin
g_signal_stop_emission_by_name(PGTKObject(Widget),'button-release-event'); g_signal_stop_emission_by_name(PGTKObject(Widget), 'button-release-event');
Result := not CallBackDefaultReturn; Result := not CallBackDefaultReturn;
end; end;
end; end;
if DeliverMouseUpMessage(Widget,Event,TWinControl(Data)) then if DeliverMouseUpMessage(Widget, Event, TWinControl(Data)) then
Result := not CallBackDefaultReturn; Result := not CallBackDefaultReturn;
end; end;

View File

@ -3566,30 +3566,13 @@ end;
------------------------------------------------------------------------------} ------------------------------------------------------------------------------}
function DeliverMessage(const Target: Pointer; var AMessage): PtrInt; function DeliverMessage(const Target: Pointer; var AMessage): PtrInt;
begin begin
if Target=nil then DebugLn('[DeliverMessage] Target = nil'); if (TLMessage(AMessage).Msg = LM_PAINT) or
{$IFDEF VerboseDeliverMessage} (TLMessage(AMessage).Msg = LM_GTKPAINT) then
if (TLMessage(AMessage).Msg <>LM_MOUSEMOVE) CurrentSentPaintMessageTarget := TObject(Target);
and (TLMessage(AMessage).Msg <>LM_PAINT)
and (TLMessage(AMessage).Msg <>LM_KEYDOWN)
and (TLMessage(AMessage).Msg <>LM_KEYUP)
and (TLMessage(AMessage).Msg <CN_KEYDOWN ) then
DebugLn('DeliverMessage ',DbgS(Target),
' ',TComponent(Target).Name,':',TObject(Target).ClassName,
' Message=',GetMessageName(TLMessage(AMessage).Msg));
{$ENDIF}
if (TLMessage(AMessage).Msg=LM_PAINT)
or (TLMessage(AMessage).Msg=LM_GTKPAINT) then
CurrentSentPaintMessageTarget:=TObject(Target);
try
if TObject(Target) is TControl
then TControl(Target).WindowProc(TLMessage(AMessage))
else TObject(Target).Dispatch(TLMessage(AMessage));
except
Application.HandleException(nil);
end;
Result := TLMessage(AMessage).Result; Result := LCLMessageGlue.DeliverMessage(TObject(Target), AMessage);
CurrentSentPaintMessageTarget:=nil;
CurrentSentPaintMessageTarget := nil;
end; end;
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------

View File

@ -53,11 +53,10 @@ uses
glib, gdk, gtk, gdkpixbuf, glib, gdk, gtk, gdkpixbuf,
{$ENDIF} {$ENDIF}
Math, // Math after gtk to get the correct Float type Math, // Math after gtk to get the correct Float type
LMessages, LCLProc, LCLStrConsts, LCLIntf, LCLType, DynHashArray, Maps, Masks, LMessages, LCLMessageGlue, LCLProc, LCLStrConsts, LCLIntf, LCLType,
GraphType, GraphMath, Graphics, LResources, Controls, Forms, DynHashArray, Masks, GraphType, GraphMath, Graphics, Controls,
Buttons, Menus, StdCtrls, ComCtrls, ExtCtrls, Dialogs, ExtDlgs, Forms, Menus, StdCtrls, ComCtrls, ExtCtrls, Dialogs, ExtDlgs,
FileUtil, ImgList, GtkFontCache, GTKGlobals, gtkDef, GtkExtra, GtkDebug; FileUtil, ImgList, GtkFontCache, GTKGlobals, GtkDef, GtkExtra, GtkDebug;
const const
GtkListItemGtkListTag = 'GtkList'; GtkListItemGtkListTag = 'GtkList';