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

View File

@ -3566,30 +3566,13 @@ end;
------------------------------------------------------------------------------}
function DeliverMessage(const Target: Pointer; var AMessage): PtrInt;
begin
if Target=nil then DebugLn('[DeliverMessage] Target = nil');
{$IFDEF VerboseDeliverMessage}
if (TLMessage(AMessage).Msg <>LM_MOUSEMOVE)
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;
if (TLMessage(AMessage).Msg = LM_PAINT) or
(TLMessage(AMessage).Msg = LM_GTKPAINT) then
CurrentSentPaintMessageTarget := TObject(Target);
Result := TLMessage(AMessage).Result;
CurrentSentPaintMessageTarget:=nil;
Result := LCLMessageGlue.DeliverMessage(TObject(Target), AMessage);
CurrentSentPaintMessageTarget := nil;
end;
{------------------------------------------------------------------------------

View File

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