From a0e957b1fd14a7c74ab28c816420dad7cab54371 Mon Sep 17 00:00:00 2001 From: bfkro Date: Sun, 18 Mar 2018 20:03:05 +0800 Subject: [PATCH] Fix a bug so when user clicks the SeekBarPanel, the x coordinate with the correct x-offset is sent to SeekBar. --- .../main/java/com/hippo/ehviewer/widget/SeekBarPanel.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/widget/SeekBarPanel.java b/app/src/main/java/com/hippo/ehviewer/widget/SeekBarPanel.java index d5ba675aa..a350b7163 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/SeekBarPanel.java +++ b/app/src/main/java/com/hippo/ehviewer/widget/SeekBarPanel.java @@ -21,6 +21,7 @@ import android.graphics.Rect; import android.support.annotation.NonNull; import android.util.AttributeSet; import android.view.MotionEvent; +import android.view.View; import android.widget.LinearLayout; import android.widget.SeekBar; @@ -54,8 +55,9 @@ public class SeekBarPanel extends LinearLayout { if (mSeekBar == null) { return super.onTouchEvent(event); } else { - final float offsetX = -mSeekBar.getLeft(); - final float offsetY = -mSeekBar.getTop(); + View containingView = (View) mSeekBar.getParent(); + final float offsetX = -(containingView.getLeft() + mSeekBar.getLeft()); + final float offsetY = -(containingView.getTop() + mSeekBar.getTop()); event.offsetLocation(offsetX, offsetY); mSeekBar.onTouchEvent(event); event.offsetLocation(-offsetX, -offsetY);