mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-20 11:19:23 +02:00
fixed gtk2 key handle result
git-svn-id: trunk@6813 -
This commit is contained in:
parent
458fb0ea45
commit
6161468c16
@ -3063,7 +3063,8 @@ end;
|
|||||||
Applies a Message to the sender
|
Applies a Message to the sender
|
||||||
------------------------------------------------------------------------------}
|
------------------------------------------------------------------------------}
|
||||||
//TODO: remove ALCLObject when creation splitup is finished
|
//TODO: remove ALCLObject when creation splitup is finished
|
||||||
procedure TGtkWidgetSet.SetCallback(const AMsg: LongInt; const AGTKObject: PGTKObject; const ALCLObject: TObject);
|
procedure TGtkWidgetSet.SetCallback(const AMsg: LongInt;
|
||||||
|
const AGTKObject: PGTKObject; const ALCLObject: TObject);
|
||||||
|
|
||||||
procedure ConnectSenderSignal(const AnObject:PGTKObject; const ASignal: PChar;
|
procedure ConnectSenderSignal(const AnObject:PGTKObject; const ASignal: PChar;
|
||||||
const ACallBackProc: Pointer);
|
const ACallBackProc: Pointer);
|
||||||
@ -3101,6 +3102,7 @@ procedure TGtkWidgetSet.SetCallback(const AMsg: LongInt; const AGTKObject: PGTKO
|
|||||||
|
|
||||||
procedure ConnectKeyPressReleaseEvents(const AnObject: PGTKObject);
|
procedure ConnectKeyPressReleaseEvents(const AnObject: PGTKObject);
|
||||||
begin
|
begin
|
||||||
|
//debugln('ConnectKeyPressReleaseEvents A ALCLObject=',DbgSName(ALCLObject));
|
||||||
ConnectSenderSignal(AnObject,
|
ConnectSenderSignal(AnObject,
|
||||||
'key-press-event', @GTKKeyUpDown, GDK_KEY_PRESS_MASK);
|
'key-press-event', @GTKKeyUpDown, GDK_KEY_PRESS_MASK);
|
||||||
ConnectSenderSignalAfter(AnObject,
|
ConnectSenderSignalAfter(AnObject,
|
||||||
@ -3114,6 +3116,7 @@ procedure TGtkWidgetSet.SetCallback(const AMsg: LongInt; const AGTKObject: PGTKO
|
|||||||
var
|
var
|
||||||
gObject, gFixed, gCore, Scroll, Adjustment: PGTKObject;
|
gObject, gFixed, gCore, Scroll, Adjustment: PGTKObject;
|
||||||
begin
|
begin
|
||||||
|
//debugln('TGtkWidgetSet.SetCallback A ALCLObject=',DbgSName(ALCLObject),' AMsg=',dbgs(AMsg));
|
||||||
if AGTKObject = nil
|
if AGTKObject = nil
|
||||||
then gObject := ObjectToGTKObject(ALCLObject)
|
then gObject := ObjectToGTKObject(ALCLObject)
|
||||||
else gObject := AGTKObject;
|
else gObject := AGTKObject;
|
||||||
@ -3231,6 +3234,7 @@ begin
|
|||||||
LM_SYSCHAR,
|
LM_SYSCHAR,
|
||||||
LM_SYSKEYUP:
|
LM_SYSKEYUP:
|
||||||
begin
|
begin
|
||||||
|
//debugln('TGtkWidgetSet.SetCallback A KEY ALCLObject=',DbgSName(ALCLObject),' AMsg=',dbgs(AMsg));
|
||||||
if (ALCLObject is TCustomComboBox) then begin
|
if (ALCLObject is TCustomComboBox) then begin
|
||||||
ConnectKeyPressReleaseEvents(PgtkObject(PgtkCombo(gObject)^.entry));
|
ConnectKeyPressReleaseEvents(PgtkObject(PgtkCombo(gObject)^.entry));
|
||||||
end
|
end
|
||||||
@ -7010,6 +7014,9 @@ end;
|
|||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.630 2005/02/19 20:33:09 mattias
|
||||||
|
fixed gtk2 key handle result
|
||||||
|
|
||||||
Revision 1.629 2005/02/19 16:30:46 mattias
|
Revision 1.629 2005/02/19 16:30:46 mattias
|
||||||
fixed 1.0.10 compilation
|
fixed 1.0.10 compilation
|
||||||
|
|
||||||
|
@ -2040,7 +2040,8 @@ var
|
|||||||
TargetData: gPointer;
|
TargetData: gPointer;
|
||||||
KeyPressesChar: char;
|
KeyPressesChar: char;
|
||||||
begin
|
begin
|
||||||
Result := True;
|
Result := CallBackDefaultReturn;
|
||||||
|
|
||||||
EventStopped := False;
|
EventStopped := False;
|
||||||
HandledByLCL:=KeyEventWasHandledByLCL(Event,BeforeEvent);
|
HandledByLCL:=KeyEventWasHandledByLCL(Event,BeforeEvent);
|
||||||
|
|
||||||
@ -4463,7 +4464,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
{$ELSE}
|
{$ELSE}
|
||||||
begin
|
begin
|
||||||
Result:= g_signal_handler_find(AnObject,
|
Result:=g_signal_handler_find(AnObject,
|
||||||
G_SIGNAL_MATCH_FUNC or G_SIGNAL_MATCH_DATA,
|
G_SIGNAL_MATCH_FUNC or G_SIGNAL_MATCH_DATA,
|
||||||
0,0,nil,ACallBackProc,ALCLObject)<>0;
|
0,0,nil,ACallBackProc,ALCLObject)<>0;
|
||||||
end;
|
end;
|
||||||
@ -4480,7 +4481,8 @@ var
|
|||||||
RealizeConnected: Boolean;
|
RealizeConnected: Boolean;
|
||||||
HasRealizeSignal: Boolean;
|
HasRealizeSignal: Boolean;
|
||||||
begin
|
begin
|
||||||
if ACallBackProc = nil then exit;
|
if ACallBackProc = nil then
|
||||||
|
RaiseGDBException('ConnectSignal');
|
||||||
|
|
||||||
// first loop through the handlers to:
|
// first loop through the handlers to:
|
||||||
// - check if a handler already exists
|
// - check if a handler already exists
|
||||||
@ -8057,6 +8059,9 @@ end;
|
|||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.338 2005/02/19 20:33:09 mattias
|
||||||
|
fixed gtk2 key handle result
|
||||||
|
|
||||||
Revision 1.337 2005/02/19 16:30:47 mattias
|
Revision 1.337 2005/02/19 16:30:47 mattias
|
||||||
fixed 1.0.10 compilation
|
fixed 1.0.10 compilation
|
||||||
|
|
||||||
|
@ -581,16 +581,18 @@ function GetDesignOnlySignalFlag(Widget: PGtkWidget;
|
|||||||
|
|
||||||
// signals
|
// signals
|
||||||
// new signal procs, these will obsolete the old ones
|
// new signal procs, these will obsolete the old ones
|
||||||
|
// MG: Say who?
|
||||||
procedure SignalConnect(const AWidget: PGTKWidget; const ASignal: PChar;
|
procedure SignalConnect(const AWidget: PGTKWidget; const ASignal: PChar;
|
||||||
const AProc: Pointer; const AInfo: PWidgetInfo);
|
const AProc: Pointer; const AInfo: PWidgetInfo);
|
||||||
procedure SignalConnectAfter(const AWidget: PGTKWidget; const ASignal: PChar;
|
procedure SignalConnectAfter(const AWidget: PGTKWidget; const ASignal: PChar;
|
||||||
const AProc: Pointer; const AInfo: PWidgetInfo);
|
const AProc: Pointer; const AInfo: PWidgetInfo);
|
||||||
|
|
||||||
// old signal procs
|
// old signal procs
|
||||||
procedure ConnectSignal(const AnObject:PGTKObject; const ASignal: PChar;
|
// MG: why old?
|
||||||
|
procedure ConnectSignal(const AnObject: PGTKObject; const ASignal: PChar;
|
||||||
const ACallBackProc: Pointer; const ALCLObject: TObject;
|
const ACallBackProc: Pointer; const ALCLObject: TObject;
|
||||||
const AReqSignalMask: TGdkEventMask; const ASFlags: TConnectSignalFlags);
|
const AReqSignalMask: TGdkEventMask; const ASFlags: TConnectSignalFlags);
|
||||||
procedure ConnectSignal(const AnObject:PGTKObject; const ASignal: PChar;
|
procedure ConnectSignal(const AnObject: PGTKObject; const ASignal: PChar;
|
||||||
const ACallBackProc: Pointer; const ALCLObject: TObject;
|
const ACallBackProc: Pointer; const ALCLObject: TObject;
|
||||||
const AReqSignalMask: TGdkEventMask);
|
const AReqSignalMask: TGdkEventMask);
|
||||||
procedure ConnectSignalAfter(const AnObject:PGTKObject; const ASignal: PChar;
|
procedure ConnectSignalAfter(const AnObject:PGTKObject; const ASignal: PChar;
|
||||||
|
@ -157,7 +157,8 @@ begin
|
|||||||
Result := False;
|
Result := False;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TGtkWSButton.SetCallbacks(const AGtkWidget: PGtkWidget; const AWidgetInfo: PWidgetInfo);
|
procedure TGtkWSButton.SetCallbacks(const AGtkWidget: PGtkWidget;
|
||||||
|
const AWidgetInfo: PWidgetInfo);
|
||||||
begin
|
begin
|
||||||
TGtkWSWinControl.SetCallbacks(PGtkObject(AGtkWidget), TComponent(AWidgetInfo^.LCLObject));
|
TGtkWSWinControl.SetCallbacks(PGtkObject(AGtkWidget), TComponent(AWidgetInfo^.LCLObject));
|
||||||
|
|
||||||
|
@ -60,12 +60,32 @@ begin
|
|||||||
Result := False;
|
Result := False;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function GTK2KeyUpDown(Widget: PGtkWidget; Event : pgdkeventkey;
|
function GTK2KeyDown(Widget: PGtkWidget; Event : pgdkeventkey;
|
||||||
Data: gPointer) : GBoolean; cdecl;
|
Data: gPointer) : GBoolean; cdecl;
|
||||||
begin
|
begin
|
||||||
Result := GtkWidgetIsA(Widget,GTK_APIWIDGETCLIENT_TYPE) and
|
debugln('GTK2KeyDown ',DbgSName(TObject(Data)));
|
||||||
(HandleGtkKeyUpDown(Widget, Event, Data, True) or
|
Result := HandleGtkKeyUpDown(Widget, Event, Data, True);
|
||||||
HandleGtkKeyUpDown(Widget, Event, Data, False));
|
end;
|
||||||
|
|
||||||
|
function GTK2KeyDownAfter(Widget: PGtkWidget; Event : pgdkeventkey;
|
||||||
|
Data: gPointer) : GBoolean; cdecl;
|
||||||
|
begin
|
||||||
|
debugln('GTK2KeyDownAfter ',DbgSName(TObject(Data)));
|
||||||
|
Result := HandleGtkKeyUpDown(Widget, Event, Data, False);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function GTK2KeyUp(Widget: PGtkWidget; Event : pgdkeventkey;
|
||||||
|
Data: gPointer) : GBoolean; cdecl;
|
||||||
|
begin
|
||||||
|
debugln('GTK2KeyUp ',DbgSName(TObject(Data)));
|
||||||
|
Result := HandleGtkKeyUpDown(Widget, Event, Data, True);
|
||||||
|
end;
|
||||||
|
|
||||||
|
function GTK2KeyUpAfter(Widget: PGtkWidget; Event : pgdkeventkey;
|
||||||
|
Data: gPointer) : GBoolean; cdecl;
|
||||||
|
begin
|
||||||
|
debugln('GTK2KeyUpAfter ',DbgSName(TObject(Data)));
|
||||||
|
Result := HandleGtkKeyUpDown(Widget, Event, Data, False);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function GTK2KillFocusCB(widget: PGtkWidget; event:PGdkEventFocus;
|
function GTK2KillFocusCB(widget: PGtkWidget; event:PGdkEventFocus;
|
||||||
@ -974,19 +994,21 @@ procedure TGTK2WidgetSet.SetCallback(const AMsg: LongInt; const AGTKObject: PGTK
|
|||||||
|
|
||||||
procedure ConnectKeyPressReleaseEvents(const AnObject: PGTKObject);
|
procedure ConnectKeyPressReleaseEvents(const AnObject: PGTKObject);
|
||||||
begin
|
begin
|
||||||
|
//debugln('gtk2object ConnectKeyPressReleaseEvents A ALCLObject=',DbgSName(ALCLObject));
|
||||||
ConnectSenderSignal(AnObject,
|
ConnectSenderSignal(AnObject,
|
||||||
'key-press-event', @GTK2KeyUpDown, GDK_KEY_PRESS_MASK);
|
'key-press-event', @GTK2KeyDown, GDK_KEY_PRESS_MASK);
|
||||||
//ConnectSenderSignalAfter(AnObject,
|
//ConnectSenderSignalAfter(AnObject,
|
||||||
// 'key-press-event', @GTK2KeyUpDownAfter, GDK_KEY_PRESS_MASK);
|
// 'key-press-event', @GTK2KeyDownAfter, GDK_KEY_PRESS_MASK);
|
||||||
ConnectSenderSignal(AnObject,
|
//ConnectSenderSignal(AnObject,
|
||||||
'key-release-event', @GTK2KeyUpDown, GDK_KEY_RELEASE_MASK);
|
// 'key-release-event', @GTK2KeyUp, GDK_KEY_RELEASE_MASK);
|
||||||
//ConnectSenderSignalAfter(AnObject,
|
//ConnectSenderSignalAfter(AnObject,
|
||||||
// 'key-release-event', @GTK2KeyUpDownAfter, GDK_KEY_RELEASE_MASK);
|
// 'key-release-event', @GTK2KeyUpAfter, GDK_KEY_RELEASE_MASK);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
var
|
var
|
||||||
gObject, gFixed, gCore: PGTKObject;
|
gObject, gFixed, gCore: PGTKObject;
|
||||||
begin
|
begin
|
||||||
|
//debugln('gtk2object.inc TGtkWidgetSet.SetCallback A ALCLObject=',DbgSName(ALCLObject),' AMsg=',dbgs(AMsg));
|
||||||
gObject := AGTKObject;
|
gObject := AGTKObject;
|
||||||
if gObject = nil then Exit;
|
if gObject = nil then Exit;
|
||||||
|
|
||||||
@ -1011,7 +1033,7 @@ begin
|
|||||||
LM_CHAR,
|
LM_CHAR,
|
||||||
LM_KEYDOWN,
|
LM_KEYDOWN,
|
||||||
LM_KEYUP,
|
LM_KEYUP,
|
||||||
|
|
||||||
LM_SYSCHAR,
|
LM_SYSCHAR,
|
||||||
LM_SYSKEYDOWN,
|
LM_SYSKEYDOWN,
|
||||||
LM_SYSKEYUP:
|
LM_SYSKEYUP:
|
||||||
@ -1499,6 +1521,9 @@ end;
|
|||||||
{ =============================================================================
|
{ =============================================================================
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 1.25 2005/02/19 20:33:10 mattias
|
||||||
|
fixed gtk2 key handle result
|
||||||
|
|
||||||
Revision 1.24 2005/02/16 23:56:51 mattias
|
Revision 1.24 2005/02/16 23:56:51 mattias
|
||||||
fixed some gtk2 intf mem leaks, clean ups
|
fixed some gtk2 intf mem leaks, clean ups
|
||||||
|
|
||||||
|
@ -9,21 +9,21 @@
|
|||||||
<SaveOnlyProjectUnits Value="True"/>
|
<SaveOnlyProjectUnits Value="True"/>
|
||||||
</Flags>
|
</Flags>
|
||||||
<MainUnit Value="0"/>
|
<MainUnit Value="0"/>
|
||||||
<ActiveEditorIndexAtStart Value="0"/>
|
<ActiveEditorIndexAtStart Value="6"/>
|
||||||
<IconPath Value="./"/>
|
<IconPath Value="./"/>
|
||||||
<TargetFileExt Value=""/>
|
<TargetFileExt Value=""/>
|
||||||
<Title Value="test1_2button"/>
|
<Title Value="test1_2button"/>
|
||||||
</General>
|
</General>
|
||||||
<Units Count="1">
|
<Units Count="1">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<CursorPos X="14" Y="210"/>
|
<CursorPos X="14" Y="347"/>
|
||||||
<EditorIndex Value="0"/>
|
<EditorIndex Value="0"/>
|
||||||
<Filename Value="test1_2button.lpr"/>
|
<Filename Value="test1_2button.lpr"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
<Loaded Value="True"/>
|
<Loaded Value="True"/>
|
||||||
<TopLine Value="193"/>
|
<TopLine Value="321"/>
|
||||||
<UnitName Value="test1_2button"/>
|
<UnitName Value="test1_2button"/>
|
||||||
<UsageCount Value="34"/>
|
<UsageCount Value="38"/>
|
||||||
</Unit0>
|
</Unit0>
|
||||||
</Units>
|
</Units>
|
||||||
<PublishOptions>
|
<PublishOptions>
|
||||||
|
Loading…
Reference in New Issue
Block a user