From 12eba79c0de82377ea6a2edbe6ae72e9fc7d2c28 Mon Sep 17 00:00:00 2001 From: mattias Date: Fri, 27 Apr 2007 09:44:42 +0000 Subject: [PATCH] gtk2 intf: fixed widget used for mouse events git-svn-id: trunk@11013 - --- lcl/interfaces/gtk/gtkobject.inc | 19 +++++++++++++------ lcl/interfaces/gtk2/gtk2wscustommemo.inc | 6 ++---- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/lcl/interfaces/gtk/gtkobject.inc b/lcl/interfaces/gtk/gtkobject.inc index a8c6efdb1a..5405f09b01 100644 --- a/lcl/interfaces/gtk/gtkobject.inc +++ b/lcl/interfaces/gtk/gtkobject.inc @@ -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; diff --git a/lcl/interfaces/gtk2/gtk2wscustommemo.inc b/lcl/interfaces/gtk2/gtk2wscustommemo.inc index f386677181..ba0e6c1299 100644 --- a/lcl/interfaces/gtk2/gtk2wscustommemo.inc +++ b/lcl/interfaces/gtk2/gtk2wscustommemo.inc @@ -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;