gtk2 intf: fixed widget used for mouse events

git-svn-id: trunk@11013 -
This commit is contained in:
mattias 2007-04-27 09:44:42 +00:00
parent 0cbf3340ac
commit 12eba79c0d
2 changed files with 15 additions and 10 deletions

View File

@ -3675,6 +3675,7 @@ var
gObject, gFixed, gCore, Adjustment: PGTKObject;
Info: PWidgetInfo;
gMain: PGtkObject;
MouseWidget: PGtkObject;
begin
//debugln('TGtkWidgetSet.SetCallback A ALCLObject=',DbgSName(ALCLObject),' AMsg=',dbgs(AMsg));
if AGTKObject = nil
@ -3694,6 +3695,12 @@ begin
gMain:=gObject;
if (gMain<>gObject) then
DebugLn(['TGtkWidgetSet.SetCallback WARNING: gObject<>MainWidget ',DbgSName(ALCLObject)]);
if gFixed<>gMain then
MouseWidget:=gFixed
else
MouseWidget:=gCore;
if MouseWidget=nil then
DebugLn(['TGtkWidgetSet.SetCallback WARNING: gMouseWidget=nil ',DbgSName(ALCLObject)]);
case AMsg of
LM_SHOWWINDOW :
@ -3864,9 +3871,9 @@ begin
else
{$ENDIF}
begin
ConnectSenderSignal(gFixed, 'motion-notify-event', @GTKMotionNotify,
ConnectSenderSignal(MouseWidget, 'motion-notify-event', @GTKMotionNotify,
GDK_POINTER_MOTION_MASK);
ConnectSenderSignalAfter(gFixed, 'motion-notify-event',
ConnectSenderSignalAfter(MouseWidget, 'motion-notify-event',
@GTKMotionNotifyAfter, GDK_POINTER_MOTION_MASK);
end;
end;
@ -3896,9 +3903,9 @@ begin
else
{$ENDIF}
begin
ConnectSenderSignal(gFixed, 'button-press-event', @gtkMouseBtnPress,
ConnectSenderSignal(MouseWidget, 'button-press-event', @gtkMouseBtnPress,
GDK_BUTTON_PRESS_MASK);
ConnectSenderSignalAfter(gFixed, 'button-press-event',
ConnectSenderSignalAfter(MouseWidget, 'button-press-event',
@gtkMouseBtnPressAfter, GDK_BUTTON_PRESS_MASK);
end;
end;
@ -3929,9 +3936,9 @@ begin
else
{$ENDIF}
begin
ConnectSenderSignal(gFixed, 'button-release-event', @gtkMouseBtnRelease,
ConnectSenderSignal(MouseWidget, 'button-release-event', @gtkMouseBtnRelease,
GDK_BUTTON_RELEASE_MASK);
ConnectSenderSignalAfter(gFixed, 'button-release-event',
ConnectSenderSignalAfter(MouseWidget, 'button-release-event',
@gtkMouseBtnReleaseAfter,GDK_BUTTON_RELEASE_MASK);
end;
end;

View File

@ -74,13 +74,13 @@ end;
class procedure TGtk2WSCustomMemo.SetCallbacks(const AGtkWidget: PGtkWidget;
const AWidgetInfo: PWidgetInfo);
var
TextBuf: PGtkTextBuffer;
TextBuf: PGtkTextBuffer;
begin
TextBuf := gtk_text_view_get_buffer(PGtkTextView(AWidgetInfo^.CoreWidget));
//TGtkWSBaseScrollingWinControl.SetCallbacks(AGtkWidget, AWidgetInfo);
TGtkWSWinControl.SetCallbacks(PGtkObject(AWidgetInfo^.CoreWidget), TComponent(AWidgetInfo^.LCLObject));
TGtkWSWinControl.SetCallbacks(PGtkObject(AGtkWidget), TComponent(AWidgetInfo^.LCLObject));
SignalConnect(PGtkWidget(TextBuf), 'changed', @Gtk2WS_MemoChanged, AWidgetInfo);
SignalConnect(PGtkWidget(TextBuf), 'insert-text', @Gtk2WS_MemoTextInserting, AWidgetInfo);
@ -90,8 +90,6 @@ begin
SignalConnect(AWidgetInfo^.CoreWidget, 'cut-clipboard', @Gtk2WS_MemoCutToClip, AWidgetInfo);
SignalConnect(AWidgetInfo^.CoreWidget, 'copy-clipboard', @Gtk2WS_MemoCopyToClip, AWidgetInfo);
SignalConnect(AWidgetInfo^.CoreWidget, 'paste-clipboard', @Gtk2WS_MemoPasteFromClip, AWidgetInfo);
end;
class function TGtk2WSCustomMemo.CreateHandle(const AWinControl: TWinControl;